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.