Capabilities

What you can do with Conatus

Write the equations, run them where you like, and let Conatus find the structure of the solutions: instabilities, orbits, bifurcations. Everything below is available from the same language of equations.

Write

The language of equations

You write the problem the way it is written on paper. Conatus understands it as mathematics and explains what it built.

  • Equations as on paper

    Domains, fields, parameters and equations in their usual form; boundary conditions by the name of the boundary. What Conatus places for you, it lists.

  • Refused, not repaired

    A missing or extra boundary condition, an ill-posed split or an undeclared choice is refused with a message that says what, where and why, and proposes a fix it never applies itself.

  • Exact derivatives, for free

    Every expression knows its derivative and its adjoint, so linearisations, tangents and adjoints follow from the equations you wrote.

Discretise

Spectral accuracy, in any geometry

Sparse spectral methods, from the channel to the ball, with bases that are regular by construction.

  • Boxes, channels and infinite lines

    Fourier and Chebyshev directions; sine and cosine series for stress-free or fixed-temperature walls, with no boundary terms at all; Hermite and Laguerre functions on the whole and the half line; compound intervals for interior layers; mapped bases and complex paths for inviscid modes.

    Geometries

  • Disks, pipes, spheres, shells and balls

    Curved geometries without axis conditions or fixes at the poles: every field is regular by construction. Rigid or stress-free walls are one declaration.

    Geometries

  • Symmetries that halve the work

    Declare a reflection or a rotation and Conatus solves in the symmetric subspace, after checking that the equations respect it.

Run

On a laptop or a GPU

The same model runs on a CPU or a GPU. Resolution, scheme and time step are yours to choose, never guessed.

  • Time integration

    Implicit–explicit schemes, multistep (backward differentiation and Crank–Nicolson) and Runge–Kutta: the schemes of Dedalus, with the same numbers. Boundary values that move in time are imposed at every stage: second order or better for every scheme (RK443 about 2.8), where the usual convention falls to first order. Exact restarts from a checkpoint.

    Tutorial 0, step 6

  • GPU-native

    One keyword moves a simulation to the GPU, in a box, a channel, a disk, a pipe, on a sphere, in a ball or a spherical shell; nonlinear terms become fused kernels, and in boxes, channels and shells whole steps can be replayed as one graph.

Analyse

The dynamical system behind the equations

The problem you simulate is also a dynamical system: Conatus finds its structure.

  • Stability

    Eigenvalues with their residuals, critical parameters and sensitivities, with spurious modes removed in the open.

    Dynamics

  • Orbits and bifurcations

    Equilibria, travelling waves and periodic orbits; branches followed through folds, pitchforks and Hopf points.

    Dynamics

  • Time-periodic flows

    Floquet exponents and optimal transient growth about any flow that repeats in time, written as a function of time, such as pulsatile flow in a channel.

    Dynamics

  • Adjoints and transient growth

    Exact adjoints of the time stepper, in boxes, channels and the spherical shell, for gradients and optimisation; linear and nonlinear optimal perturbations of non-normal flows.

    Dynamics

Keep track

Observable and reproducible

A computation you can find again afterwards.

  • Runs recorded on request

    With record=True or cn.runs.track, the parameters, code version and results of a run are kept; find, compare and reproduce them later. Nothing is recorded unless you ask.

  • Files any tool can read

    Snapshots and checkpoints in HDF5, with the provenance of the run inside; a run split over several jobs continues exactly as if it had never stopped.

    Input and output

  • A number with its error bar

    From the resolutions and time steps you declare, a computed quantity is reported with an error estimate and the checks behind it; time averages come with their statistical error.

    Numerical uncertainty

  • A Methods paragraph, written for you

    Each computation can describe itself: the discretisation, the scheme and the references, ready for a paper.

How these capabilities compare with published results and independent codes is on the validation page.