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:10<?, ?it/s]
1%| | 0.1/10.0 [00:11<18:16, 110.74s/it]
2%|▏ | 0.2/10.0 [00:11<09:02, 55.37s/it]
4%|▍ | 0.4/10.0 [00:11<04:25, 27.69s/it]
4%|▍ | 0.4/10.0 [00:11<04:25, 27.69s/it]
100%|██████████| 10.0/10.0 [00:11<00:00, 1.11s/it]
100%|██████████| 10.0/10.0 [00:11<00:00, 1.11s/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 11.176 seconds)