Skip to content

Automatic separation of equations into all possible sequential stages #13

Description

@hersle

The code currently separates the full Einstein-Boltzmann system into background and perturbation stages automatically. This separation is always guaranteed by the perturbative nature of the problem. However, these stages can usually be broken down into more stages. For example:

  1. Background (differential equations)
  2. Thermodynamics (differential equations)
  3. Sound horizon (integral equation)
  4. Perturbations (differential equations)
  5. Line-of-sight integration (integral equation)

The symbolic-to-numeric compilation process in SymBoltz should automatically identify and separate all computational stages for the model at hand. This can be done by investigating the structure of the Jacobian matrix, which gives a directed dependency graph between all variables in the model. Leaves should be handled by integral equations, while cycles (isolated from other cycles with a one-directional dependency) should be handled as ODE blocks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions