#include <Integrator.h>
Public Member Functions | |
Grad & | getGrad () const |
Gets the numerical differentiation scheme. | |
const GridInterpolator * | getInterpolator () const |
Gets the margin interpolator for this numerical method. | |
int | getInterpolatorType () const |
Gets the interpolator type. | |
int | getInterpolationBufferSize () const |
Gets the number of interpolation related additional points. | |
virtual void | integrate (int ir)=0 |
Integrates a partial differential equation. | |
virtual void | richardson (const AMError &amerr, int ir)=0 |
Richardson error estimation. | |
double | getError (int i) const |
Gets the Richardson error in the specified grid point. | |
void | setTimeStepCount (int tsc) |
int | getTimeStepCount () const |
virtual void | getResult (int i, tvalarray< GReal_t > &w) const =0 |
Gets the result of the integration at the specified point. | |
virtual int | getNumVelocity () const =0 |
Gets the numerical error propagation velocity. | |
virtual Integrator * | createIntegrator (Grid &g, const Sigma *sigma) const =0 |
Creates a new integrator instance for the specified grid. | |
virtual Integrator * | cloneIntegrator (Grid &g) const =0 |
const Sigma & | getSigma () const |
GReal_t | getDeltaT () const |
Gets the time step. | |
void | setDeltaT (GReal_t dt) |
Sets the time step. | |
Grid * | getGrid () const |
Gets the grid. | |
PDE & | getPDE () const |
Gets the PDE. | |
void | updateGrid (int ir) |
Protected Member Functions | |
Integrator (const Integrator &gi, Grid &g) | |
Integrator (Grid *g, PDE &pde, const tvalarray< string > *optsarr, int deftype, Sigma *sigma) | |
Integrator (Grid *g, PDE &pde, Grad *d, Grad *d2, int deftype, Sigma *sigma) | |
void | calcErrors (const AMError &amerr, const Grid &g, const Grid &g2, double c) |
Protected Attributes | |
Grad * | gradOp |
Grad * | gradOp2 |
int | timeStepCount |
Friends | |
class | Grid |
Numerical method to integrate a PDE on the grid.
Grad& gridripper::amr1d::Integrator::getGrad | ( | ) | const [inline] |
Gets the numerical differentiation scheme.
Reimplemented in gridripper::amr1d::gridint::ICN.
const GridInterpolator* gridripper::amr1d::Integrator::getInterpolator | ( | ) | const [inline] |
Gets the margin interpolator for this numerical method.
int gridripper::amr1d::Integrator::getInterpolatorType | ( | ) | const [inline] |
Gets the interpolator type.
int gridripper::amr1d::Integrator::getInterpolationBufferSize | ( | ) | const [inline] |
Gets the number of interpolation related additional points.
The margin of a refined parent grid must always be wide enough to make centered interpolation possible for its child grids. 4 additional points are needed for the 5th order interpolation.
virtual void gridripper::amr1d::Integrator::integrate | ( | int | ir | ) | [pure virtual] |
Integrates a partial differential equation.
ir | refined step count (0...r-1) |
Implemented in gridripper::amr1d::gridint::ICN, gridripper::amr1d::gridint::RK2, and gridripper::amr1d::gridint::RK4.
virtual void gridripper::amr1d::Integrator::richardson | ( | const AMError & | amerr, | |
int | ir | |||
) | [pure virtual] |
Richardson error estimation.
amerr | the error calculation method | |
ir | refined step count (0...r-1) |
Implemented in gridripper::amr1d::gridint::ICN, gridripper::amr1d::gridint::RK2, and gridripper::amr1d::gridint::RK4.
virtual void gridripper::amr1d::Integrator::getResult | ( | int | i, | |
tvalarray< GReal_t > & | w | |||
) | const [pure virtual] |
Gets the result of the integration at the specified point.
i | the grid point index | |
w | the integration result will be copied here |
Implemented in gridripper::amr1d::gridint::ICN, gridripper::amr1d::gridint::RK2, and gridripper::amr1d::gridint::RK4.
virtual int gridripper::amr1d::Integrator::getNumVelocity | ( | ) | const [pure virtual] |
Gets the numerical error propagation velocity.
Implemented in gridripper::amr1d::gridint::ICN, gridripper::amr1d::gridint::RK2, and gridripper::amr1d::gridint::RK4.
virtual Integrator* gridripper::amr1d::Integrator::createIntegrator | ( | Grid & | g, | |
const Sigma * | sigma | |||
) | const [pure virtual] |
Creates a new integrator instance for the specified grid.
g | the grid | |
sigma | dissipation term is multiplied by this factor |
Implemented in gridripper::amr1d::gridint::ICN, gridripper::amr1d::gridint::RK2, and gridripper::amr1d::gridint::RK4.
GReal_t gridripper::amr1d::Integrator::getDeltaT | ( | ) | const [inline] |
Gets the time step.
void gridripper::amr1d::Integrator::setDeltaT | ( | GReal_t | dt | ) | [inline] |
Sets the time step.
dt | the time step |
Grid* gridripper::amr1d::Integrator::getGrid | ( | ) | const [inline] |
Gets the grid.