Integrator using 1st and 2nd order BDF for tridiagonal systems, with matrix inversions done using the Thomas algorithm.
More...
#include <integrator.h>
|
| | TridiagonalIntegrator (TridiagonalODE &ode) |
| |
| virtual | ~TridiagonalIntegrator () |
| |
| void | set_y0 (const dvec &y0) |
| | Set the initial condition for the problem.
|
| |
| void | resize (size_t N_in) |
| |
| void | initialize (const double t0, const double h) |
| | Set up parameters and problem-dependent data structures for the solver.
|
| |
| const dvec & | get_ydot () |
| | Get the time derivative of the current state vector.
|
| |
| void | step () |
| | Take a single step using the current step size.
|
| |
| | Integrator () |
| |
| virtual | ~Integrator () |
| |
| double | get_h () const |
| | Get the last step size used.
|
| |
| double | get_t () const |
| | Get the current time reached by the integrator.
|
| |
| virtual const dvec & | get_y () const |
| | Get the current state vector.
|
| |
| virtual void | integrateToTime (double tEnd) |
| | Take as many steps as necessary to reach tEnd without stepping past it.
|
| |
|
| dvec | y |
| | solution vector
|
| |
| dvec | ydot |
| | derivative of state vector
|
| |
| double | t |
| | current time
|
| |
| double | h |
| | timestep
|
| |
| size_t | N |
| | Dimension of y.
|
| |
Integrator using 1st and 2nd order BDF for tridiagonal systems, with matrix inversions done using the Thomas algorithm.
◆ TridiagonalIntegrator()
◆ ~TridiagonalIntegrator()
| virtual TridiagonalIntegrator::~TridiagonalIntegrator |
( |
| ) |
|
|
inlinevirtual |
◆ set_y0()
| void TridiagonalIntegrator::set_y0 |
( |
const dvec & | y0 | ) |
|
|
virtual |
Set the initial condition for the problem.
Must be called before starting integration.
Reimplemented from Integrator.
◆ resize()
| void TridiagonalIntegrator::resize |
( |
size_t | N_in | ) |
|
◆ initialize()
| void TridiagonalIntegrator::initialize |
( |
const double | t0, |
|
|
const double | h ) |
|
virtual |
Set up parameters and problem-dependent data structures for the solver.
Must be called before starting integration.
- Parameters
-
| t0 | Start time for the integration |
| h | initial step size |
Reimplemented from Integrator.
◆ get_ydot()
| const dvec & TridiagonalIntegrator::get_ydot |
( |
| ) |
|
|
virtual |
Get the time derivative of the current state vector.
Implements Integrator.
◆ step()
| void TridiagonalIntegrator::step |
( |
| ) |
|
|
virtual |
Take a single step using the current step size.
Implements Integrator.
◆ myODE
| dvec TridiagonalIntegrator::a |
|
private |
subdiagonal components of right-hand-side
| dvec TridiagonalIntegrator::b |
|
private |
diagonal components of right-hand-side
| dvec TridiagonalIntegrator::c |
|
private |
superdiagonal components of right-hand-side
| dvec TridiagonalIntegrator::k |
|
private |
constant contribution to ‘y’`
◆ lu_b
| dvec TridiagonalIntegrator::lu_b |
|
private |
◆ lu_c
| dvec TridiagonalIntegrator::lu_c |
|
private |
◆ lu_d
| dvec TridiagonalIntegrator::lu_d |
|
private |
◆ invDenom_
| dvec TridiagonalIntegrator::invDenom_ |
|
private |
◆ stepCount
| unsigned int TridiagonalIntegrator::stepCount |
|
private |
the number of steps taken since last initialization
| int TridiagonalIntegrator::N |
|
private |
◆ yprev
| dvec TridiagonalIntegrator::yprev |
|
private |
The documentation for this class was generated from the following files: