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: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)