Note
Go to the end to download the full example code.
Simple PDE
Demonstrates a minimal example involving the diffusion equation

0%| | 0/10.0 [00:00<?, ?it/s]
Initializing: 0%| | 0/10.0 [00:00<?, ?it/s]
0%| | 0/10.0 [00:11<?, ?it/s]
1%| | 0.1/10.0 [00:12<20:35, 124.79s/it]
2%|▏ | 0.2/10.0 [00:12<10:11, 62.40s/it]
4%|▍ | 0.4/10.0 [00:12<04:59, 31.20s/it]
4%|▍ | 0.4/10.0 [00:12<04:59, 31.20s/it]
100%|██████████| 10.0/10.0 [00:12<00:00, 1.25s/it]
100%|██████████| 10.0/10.0 [00:12<00:00, 1.25s/it]
from pde import DiffusionPDE, ScalarField, UnitGrid
import emulsim
# set up state
field = ScalarField.random_uniform(UnitGrid([32, 32], periodic=True))
element = emulsim.ScalarFieldElement.from_field(field)
state = emulsim.State({"field": element})
# set up simulation
simulation = emulsim.Simulation(state)
eq = DiffusionPDE(diffusivity=0.1)
simulation.add_actor("field", emulsim.ScalarPDEActor(eq))
# run simulation
result = simulation.run(t_range=10, dt=0.1)
result.plot()
Total running time of the script: (0 minutes 12.609 seconds)