add diffusion simulation algorithm