##### It has been **334** days since a new Decapodes world record.

##### It has been **33** days since a new Decapodes entry.

Date | Initials | Multiphysics | Dev Time |
---|---|---|---|

Mar 10, 2022 | AB | Navier-Stokes | 18 months¹ |

July 21, 2023 | GR | Teacup Brusselator | 15 minutes* |

Apr 7, 2023 | LM | Gray-Scott | 15 minutes |

Feb 17, 2023 | GR | Icosphere-Brusselator | 15 minutes* |

Sep 1, 2023 | LM & GR | Burger's | 30 minutes |

July 13, 2023 | LM | Nonhydrostatic Buoyant Seawater | 4 hours |

July 12, 2023 | LM | Halfar | 2 hours |

July 11, 2023 | LM | Budyko-Sellers | 2 hours |

Feb 16, 2023 | LM & GR | Brusselator | 2 hours |

May 17, 2024 | LM | Navier-Stokes, Vorticity | 2 hours |

Feb 7, 2023 | LM & JC & JG | Multispecies Navier-Stokes | 5 hours** |

*Multispecies Navier-Stokes*

*Brusselator Reaction*

*Icosphere Brusselator Reaction*

*Teapot Brusselator Reaction*

*Gray-Scott Reaction*

*Budyko-Sellers Climate Model*

*Burger's Equation*

### What is a Decapode?

*The Diffusion Decapode*

A **Decapode** is a diagram of a system of multiphysics equations. That's all you need to know to start if you are a physicist looking to model fluid flow, or a chemist looking to model the reaction of some chemical species. However, people familiar with graph theory can understand these as something like directed acyclic graphs (**DAGs**), where nodes are physical quantities, and edges are operators that relate them. People familiar with category theory will suspect that *diagram* carries a connotation with it of **composability** of morphisms. That is, an arrow from A to B, and an arrow from B to C, can be understood as an arrow from A to C in its own right. People even more familiar with category can understand these as copresheaves from some category acting like a database schema. Or, as people familiar with Catlab.jl will understand them, as a certain type of Acset. But that's just what a Decapode is. What else is there to Decapodes?

### What makes constructing Decapodes fast?

Constructing Decapodes is fast because you specify them exactly how you write your PDEs written in the Discrete Exterior Calculus.

For example, we can write the equations for the Brusselator reaction like so:

```
# Here, we declare our variables.
(U, V)::Form0 # State variables.
(U2V, One)::Form0 # Named intermediate variables.
(U̇, V̇)::Form0 # Tangent variables.
(γ, β, α)::Constant # Scalars.
F::Parameter # Time-varying parameter.
# These equations relate our physical quantities.
U2V == (U .* U) .* V
U̇ == One + U2V - (γ * U) + (α * Δ(U)) + F
V̇ == (β * U) - U2V + (α * Δ(U))
# These equations specify the derivatives with
# respect to time of our state variables.
∂ₜ(U) == U̇
∂ₜ(V) == V̇
```

Constructing complex multiphysics systems from simpler, component systems is fast because we use the technique of operadic composition. That is, we can describe complex multiphysics systems from which variables are shared between component systems.

Rather than slowing us down, having formal descriptions of multiphysics diagrams enables us to develop models more quickly by providing all the information that you need to encode your multiphysics upfront.

### What makes Decapodes simulations fast?

Decapodes simulations are fast because their operators are implemented as matrix-matrix and matrix-vector multiplications. This is a property of the Discrete Exterior Calculus. Compounding on this, the auto-generated simulations consist of performant Julia code, and interface nicely with Julia packages like OrdinaryDiffEq.jl and MultiScaleArrays.jl.

### What makes Decapodes accurate?

Decapodes simulations are accurate because they use the Discrete Exterior Calculus (DEC). The DEC has the amazing property that the operators obey the same useful laws that they obey in the continuous case. One is that the exterior derivative, d, exhibits the property that dd = 0.

### What makes Decapodes iterable?

Decapodes are iterable because new models can be written quickly. You do not have to worry about time spent in developing a simulator for your new model because Decapodes.jl will automatically generate the simulator for you! They allow a scientist to use the scientific method of creating a hypothesis model and then seek to validate (or rather disprove) it quickly.

Furthermore, a Decapodes simulation generalizes over any well-constructed mesh. Once you define your physics, you can run your automatically-generated simulation on the plane, the sphere, and so on.

### What is the Decapodes Leader Board?

I (Luke Morris) created the Decapodes Leader Board (DLB) initially as a hobby project to keep track of the models that we built for a friend over coffee. However, we soon recognized that the DLB captured the essence of a new workflow that the Decapodes project enables. We emphasize the speed in which accurate simulations for novel models can be created. Of course, modelers are interested in having good models, so we always make sure that our physics are well-formed, but as developers, we want this modeling process to be as efficient as possible. We want it to be so efficient, that one could in fact "race" their friends in building them!

### What does Decapodes stand for?

**D**iscrete **E**xterior **C**alculus **A**pplied to **P**artial and **O**rdinary **D**ifferential **E**quations