# Problem Formulations

Dedalus parses all equations, including constraints and boundary conditions, into common forms based on the problem type.

## Linear Boundary-Value Problems (LBVPs)

Equations in linear boundary-value problems must all take the form:

where \(X\) is the state-vector of problem variables, \(L\) are linear operators, and \(F\) are inhomogeneous terms that are independent of \(X\). LBVPs are solved by explicitly evaluating the RHS and solving the sparse-matrix representation of the LHS to find \(X\).

## Initial-Value Problems (IVPs)

Equations in initial value problems must all take the form:

where \(X(t)\) is the state-vector of problem variables, \(M\) and \(L\) are time-independent linear operators, and \(F\) are inhomogeneous terms or nonlinear terms. Initial conditions \(X(t=0)\) are set for the state, and the state is then evolved forward in time using mixed implicit-explicit timesteppers. During this process, the RHS is explicitly evaluated using \(X(t)\) and the LHS is implicitly solved using the sparse-matrix representations of \(M\) and \(L\) to produce \(X(t+ \Delta t)\).

## Eigenvalue Problems (EVPs)

Equations in eigenvalue problems must all take the generalized form:

where \(\lambda\) is the eigenvalue, \(X\) is the state-vector of problem variables, and \(M\) and \(L\) are linear operators. The standard *right eigenmodes* \((\lambda_i, X_i)\) are solved using the sparse-matrix representations of \(M\) and \(L\), and satisfy:

The *left eigenmodes* \((\lambda_i, Y_i)\) are solved (if requested) using the sparse-matrix representations of \(M\) and \(L\), and satisfy:

The left and right eigenmodes satisfy the generalized \(M\)-orthogonality condition:

For convenience, we also provide *modified left eigenmodes* \(Z_i = M^* \cdot Y_i\).
When the eigenvalues are nondegenerate, the left and modified left eigenvectors are rescaled by \((X_i^* \cdot M^* \cdot Y_i)^{-1}\) so that

## Nonlinear Boundary-Value Problems (NLBVPs)

Equations in nonlinear boundary-value problems must all take the form:

where \(X\) is the state-vector of problem variables and \(G\) and \(H\) are generic operators. All equations are immediately reformulated into the root-finding problem

NLBVPs are solved iteratively via Newton’s method. The problem is reduced to a LBVP for an update \(\delta X\) to the state using the symbolically-computed Frechet differential as:

Each iteration entails reforming the LHS matrix, explicitly evaluating the RHS, solving the LHS to find \(\delta X\), and updating the new solution as \(X_{n+1} = X_n + \delta X\). The iterations proceed until convergence criteria are satisfied.