Convenience wrapper composing ODE assembly, Newton, and multi-stage stepping.
#include <dumux/experimental/ode/odesolver.hh>
|
| | ODESolver (std::shared_ptr< const ODESystem > odeSystem, std::shared_ptr< const Method > method, const std::string ¶mGroup="") |
| | Construct a solver with a default linear solver and MPI communication.
|
| | ODESolver (std::shared_ptr< const ODESystem > odeSystem, std::shared_ptr< const Method > method, const Comm &comm, const std::string ¶mGroup="") |
| | Construct a solver with a default linear solver and custom communication.
|
| | ODESolver (std::shared_ptr< const ODESystem > odeSystem, std::shared_ptr< LinearSolver > linearSolver, std::shared_ptr< const Method > method, const std::string ¶mGroup="") |
| | Construct a solver with a custom linear solver and MPI communication.
|
| | ODESolver (std::shared_ptr< const ODESystem > odeSystem, std::shared_ptr< LinearSolver > linearSolver, std::shared_ptr< const Method > method, const Comm &comm, const std::string ¶mGroup="") |
| | Construct a solver with custom linear solver and communication objects.
|
| void | step (Variables &vars, const Scalar independentVariable, const Scalar stepSize) |
| | Advance the variables by one integration step.
|
| void | solve (Variables &vars, const Scalar endCoordinate, const Scalar stepSize) |
| | Integrate repeatedly with a fixed maximum step size up to an end coordinate.
|
| Assembler & | assembler () |
| | Returns the ODE assembler.
|
| const Assembler & | assembler () const |
| | Returns the ODE assembler.
|
| NonlinearSolver & | nonlinearSolver () |
| | Returns the nonlinear solver used for implicit stages.
|
| const NonlinearSolver & | nonlinearSolver () const |
| | Returns the nonlinear solver used for implicit stages.
|
| LinearSolver & | linearSolver () |
| | Returns the linear solver used by the nonlinear solver.
|
| const LinearSolver & | linearSolver () const |
| | Returns the linear solver used by the nonlinear solver.
|
◆ Assembler
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ IntegrationDriver
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ Method
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ NonlinearSolver
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ Scalar
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ SolutionVector
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ Variables
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ ODESolver() [1/4]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
- Parameters
-
| odeSystem | ODE system to solve. |
| method | multi-stage integration method. |
| paramGroup | parameter group used to configure the solver components |
◆ ODESolver() [2/4]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
- Parameters
-
| odeSystem | ODE system to solve |
| method | multi-stage integration method |
| comm | communication object used by the nonlinear solver |
| paramGroup | parameter group used to configure the solver components |
◆ ODESolver() [3/4]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
- Parameters
-
| odeSystem | ODE system to solve |
| linearSolver | linear solver used for implicit stages |
| method | multi-stage integration method |
| paramGroup | parameter group used to configure the solver components |
◆ ODESolver() [4/4]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
- Parameters
-
| odeSystem | ODE system to solve |
| linearSolver | linear solver used for implicit stages |
| method | multi-stage integration method |
| comm | communication object used by the nonlinear solver |
| paramGroup | parameter group used to configure the solver components |
◆ assembler() [1/2]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ assembler() [2/2]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ linearSolver() [1/2]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ linearSolver() [2/2]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ nonlinearSolver() [1/2]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ nonlinearSolver() [2/2]
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
◆ solve()
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
- Parameters
-
| vars | variables to update in place |
| endCoordinate | final value of the independent variable |
| stepSize | requested step size; the last step may be shortened |
◆ step()
template<class ODESystem, class
LinearSolver = ODELocalLinearSolver<typename ODESystem::JacobianMatrix, typename ODESystem::ResidualType>, class Reassembler = DefaultPartialReassembler, class Comm = Dune::Communication<Dune::MPIHelper::MPICommunicator>>
- Parameters
-
| vars | variables to update in place |
| independentVariable | value of the independent variable at the beginning of the step |
| stepSize | integration-step size |
The documentation for this class was generated from the following file: