Simple PDE

Demonstrates a minimal example involving the diffusion equation

pde simple
  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)