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 () |
|
virtual void | set_y0 (const dvec &y0) |
| Set the initial condition for the problem.
|
|
virtual void | initialize (const double t0, const double h) |
| Set up parameters and problem-dependent data structures for the solver.
|
|
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 const dvec & | get_ydot ()=0 |
| Get the time derivative of the current state vector.
|
|
virtual void | step ()=0 |
| Take a single step using the current step size.
|
|
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: