Overview
Theproblems module provides classes for defining different types of PDE problems: initial value problems (IVPs), linear boundary value problems (LBVPs), nonlinear boundary value problems (NLBVPs), and eigenvalue problems (EVPs).
Problem Types
InitialValueProblem (IVP)
Parameters
- variables (list of Fields): Problem variables to solve for
- time (str or Field, optional): Time variable name or field (default: ‘t’)
- namespace (dict, optional): Namespace for parsing equations (recommended: locals())
Constraints
- LHS must be linear in variables
- LHS must be time-independent
- LHS must be first-order in time derivatives
- RHS must not contain time derivatives
Methods
add_equation(equation, condition=“True”) - Add equation to problemExample: Heat Equation
Example: Navier-Stokes
LinearBoundaryValueProblem (LBVP)
Parameters
- variables (list of Fields): Problem variables
- namespace (dict, optional): Namespace for parsing
Constraints
- LHS must be linear in variables
- RHS must be independent of variables
Methods
add_equation(equation, condition) - Add equation build_solver() - Create solverExample: Poisson Equation
NonlinearBoundaryValueProblem (NLBVP)
Methods
add_equation(equation, condition) - Add equation build_solver() - Create solverExample
EigenvalueProblem (EVP)
Parameters
- variables (list of Fields): Eigenvector fields
- eigenvalue (Field): Eigenvalue field
- namespace (dict, optional): Namespace
Constraints
- LHS must be linear in variables
- LHS must be affine in eigenvalue
- RHS must be zero
Methods
add_equation(equation, condition) - Add equation build_solver() - Create EVP solverExample: Orr-Sommerfeld
Aliases
Equation Parsing
Equations can be specified as:-
Strings (parsed using namespace):
-
Expression tuples:
See Also
- Solvers - Solver classes for problems
- Timesteppers - Time integration schemes
- Operators - Operators for equations
- Field - Field variables