particle update