Advanced Multi-Physics (AMP)
On-Line Documentation
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
AMP::TimeIntegrator::IDATimeIntegrator Class Reference

#include <IDATimeIntegrator.h>

Inheritance diagram for AMP::TimeIntegrator::IDATimeIntegrator:
Inheritance graph
[legend]

Public Types

typedef std::shared_ptr< AMP::TimeIntegrator::TimeIntegratorshared_ptr
 Convience typedef.
 

Public Member Functions

int advanceSolution (const double dt, const bool first_step, std::shared_ptr< AMP::LinearAlgebra::Vector > in, std::shared_ptr< AMP::LinearAlgebra::Vector > out) override
 Integrate through the specified time increment.
 
virtual void appendRhsVector (AMP::LinearAlgebra::Vector::shared_ptr vec)
 Append the vectors of interest to the rhs vector.
 
virtual void appendSolutionVector (AMP::LinearAlgebra::Vector::shared_ptr vec)
 Append the vectors of interest to the solution vector.
 
bool checkNewSolution (void) override
 
bool getBoolManufacturedProblem (void)
 
virtual double getCurrentDt () const
 Return current timestep.
 
virtual double getCurrentTime () const
 Return final integration time.
 
virtual double getFinalTime () const
 Return final integration time.
 
virtual double getGamma (void)
 
uint64_t getID () const
 Get a unique id hash for the vector.
 
voidgetIDAMem (void)
 
std::shared_ptr< IDATimeOperatorgetIDATimeOperator () const
 
virtual double getInitialDt ()
 
virtual double getInitialTime () const
 Return initial integration time.
 
virtual int getIntegratorStep () const
 Return current integration step number.
 
std::shared_ptr< LinearTimeOperatorgetLinearTimeOperator () const
 
virtual int getMaxIntegratorSteps () const
 Return maximum number of integration steps.
 
double getNextDt (const bool good_solution) override
 
std::shared_ptr< AMP::Operator::OperatorgetOperator (void)
 
std::shared_ptr< AMP::Solver::SolverStrategygetPreconditioner (void)
 
std::shared_ptr< AMP::LinearAlgebra::VectorgetResidualVector () const
 
virtual std::shared_ptr< AMP::LinearAlgebra::VectorgetSolution (void)
 
std::shared_ptr< AMP::LinearAlgebra::VectorgetSourceTerm () override
 
virtual std::vector< doublegetTimeHistoryScalings (void)
 Scaling factors for previous time history vectors.
 
virtual int getTotalRejectedSteps () const
 
 IDATimeIntegrator (std::shared_ptr< TimeIntegratorParameters > parameters)
 
void initialize (std::shared_ptr< TimeIntegratorParameters > parameters) override
 
void printClassData (std::ostream &os) const
 
virtual void printStatistics (std::ostream &os=AMP::pout)
 
void putToDatabase (std::shared_ptr< AMP::Database > db)
 
virtual void registerChildObjects (AMP::IO::RestartManager *manager) const
 Register any child objects.
 
virtual void registerOperator (std::shared_ptr< AMP::Operator::Operator > op)
 
virtual void registerWriter (std::shared_ptr< AMP::IO::Writer > writer)
 Registers a writer with the solver.
 
void reset (std::shared_ptr< const TimeIntegratorParameters > parameters) override
 
virtual void setCurrentDt (const double dt)
 
virtual void setCurrentTime (const double t)
 
virtual void setFinalTime (const double t)
 
virtual void setInitialDt (const double dt)
 
void setInitialGuess (const bool first_step, const double current_time, const double current_dt, const double old_dt)
 
virtual void setInitialTime (const double t)
 
virtual void setSourceTerm (AMP::LinearAlgebra::Vector::shared_ptr src)
 
virtual size_t sizeOfTimeHistory () const
 
virtual bool stepsRemaining () const
 Have the number of integration steps reached the maximum.
 
std::string type () const override
 Return the name of the TimeIntegrator.
 
void updateSolution (void) override
 
void updateSourceTerm (void)
 
virtual void writeRestart (int64_t fid) const
 Write restart data to file.
 
virtual ~IDATimeIntegrator ()
 

Public Attributes

std::shared_ptr< AMP::LinearAlgebra::Vectord_residual
 

Protected Member Functions

void getFromRestart ()
 

Protected Attributes

double d_current_dt = std::numeric_limits<double>::signaling_NaN()
 
double d_current_time = std::numeric_limits<double>::signaling_NaN()
 
double d_final_time = std::numeric_limits<double>::signaling_NaN()
 
std::shared_ptr< AMP::LinearAlgebra::Vectord_ic_vector = nullptr
 
int d_iDebugPrintInfoLevel = 0
 
double d_initial_dt = std::numeric_limits<double>::signaling_NaN()
 initial time increment
 
double d_initial_time = std::numeric_limits<double>::signaling_NaN()
 
bool d_initialized = false
 
int d_integrator_step = 0
 
double d_max_dt = std::numeric_limits<double>::max()
 maximum allowable timestep (user defined)
 
int d_max_integrator_steps = 0
 
double d_min_dt = std::numeric_limits<double>::signaling_NaN()
 
std::string d_object_name
 
double d_old_dt = std::numeric_limits<double>::signaling_NaN()
 
std::shared_ptr< AMP::Operator::Operatord_operator
 
std::shared_ptr< AMP::Operator::Operatord_pMassOperator
 
std::shared_ptr< TimeIntegratorParametersd_pParameters
 
std::shared_ptr< AMP::LinearAlgebra::Vectord_pSourceTerm
 
std::shared_ptr< AMP::LinearAlgebra::Vectord_solution_vector
 
int d_total_steprejects = 0
 
std::shared_ptr< AMP::IO::Writerd_writer
 keeps track of total number of step rejections
 

Private Member Functions

void getFromInput (std::shared_ptr< AMP::Database > input_db)
 
 IDATimeIntegrator ()
 
void initializeIDA ()
 
void setupVectors (void)
 

Static Private Member Functions

static int IDAPrecSetup (realtype tt, N_Vector yy, N_Vector yp, N_Vector rr, realtype cj, void *user_data, N_Vector tmp1, N_Vector tmp2, N_Vector tmp3)
 
static int IDAPrecSolve (realtype tt, N_Vector yy, N_Vector yp, N_Vector rr, N_Vector rvec, N_Vector zvec, realtype cj, realtype delta, void *user_data, N_Vector tmp)
 
static int IDAResTrial (realtype tt, N_Vector yy, N_Vector yp, N_Vector rr, void *user_data)
 

Private Attributes

double d_absolute_tolerance
 
bool d_bCallCalcIC
 
bool d_bLinearMassOperator
 
bool d_bLinearRhsOperator
 
bool d_bManufacturedProblem
 
bool d_bUsePreconditioner
 
bool d_createLinearOperatorInternally
 
voidd_ida_mem
 
int d_linear_solver_type
 
std::shared_ptr< IDATimeOperatord_pIDATimeOperator
 
std::shared_ptr< LinearTimeOperatord_pLinearTimeOperator
 
std::shared_ptr< AMP::Solver::SolverStrategyd_pNestedSolver
 
double d_relative_tolerance
 
std::shared_ptr< AMP::LinearAlgebra::Vectord_solution_prime
 

Detailed Description

Class IDATimeIntegrator is a concrete time integrator that provides an interface to the IDA time integrator within the SUNDIALS library. It is derived from the TimeIntegrator class. This class is not derived from the ImplicitTimeIntegrator class as it is more an interface or adaptor rather than an implicit time integrator within the AMP package. As such, it uses the nonlinear solvers provided by IDA and cannot leverage the solvers that AMP provides currently other than within preconditioning.

See also
TimeIntegrator

Definition at line 38 of file IDATimeIntegrator.h.

Member Typedef Documentation

◆ shared_ptr

Convience typedef.

Definition at line 37 of file TimeIntegrator.h.

Constructor & Destructor Documentation

◆ IDATimeIntegrator() [1/2]

AMP::TimeIntegrator::IDATimeIntegrator::IDATimeIntegrator ( std::shared_ptr< TimeIntegratorParameters parameters)
explicit

Main constructor that accepts parameters object. The parameter object must be a TimeIntegratorParameters object.The database object within the parameter object expects the following fields in addition to any fields expected by the TimeIntegrator base class.

  1. name: bLinearMassOperator description: boolean to indicate whether the mass operator is a linear operator, currently either both mass and rhs operators have to be linear or both have to be nonlinear type: bool default value: FALSE valid values: (TRUE, FALSE) optional field: yes
  2. name: bLinearRhsOperator description: boolean to indicate whether the rhs operator is a linear operator, currently either both mass and rhs operators have to be linear or both have to be nonlinear type: bool default value: FALSE valid values: (TRUE, FALSE) optional field: yes
  3. name: relative_tolerance description: relative tolerance for solves in IDA type: double default value: none valid values: see IDA manual optional field: no
  4. name: absolute_tolerance description: absolute tolerance for IDA solves type: double default value: none valid values: see IDA manual optional field: no
  5. name: CallCalcIC description: indicate whether to ask IDA to calculate initial conditions or not type: bool default value: TRUE valid values: (TRUE, FALSE) optional field: yes
  6. name: usePreconditioner description: whether to use preconditioner or not type: bool default value: TRUE valid values: (TRUE, FALSE) optional field: yes
  7. name: description: type: default value: valid values: optional field:
  8. name: createLinearTimeOperatorInternally description: indicate whether the linear operators required by the IDA preconditioner should be constructed internally or whether the user will supply type: bool default value: FALSE valid values: (TRUE, FALSE) optional field: yes
  9. name: bManufacturedProblem description: added by Gary, need to discuss whether appropriate mechanism or not type: default value: valid values: optional field:

◆ ~IDATimeIntegrator()

virtual AMP::TimeIntegrator::IDATimeIntegrator::~IDATimeIntegrator ( )
virtual

Destructor.

◆ IDATimeIntegrator() [2/2]

AMP::TimeIntegrator::IDATimeIntegrator::IDATimeIntegrator ( )
private

Constructor.

Member Function Documentation

◆ advanceSolution()

int AMP::TimeIntegrator::IDATimeIntegrator::advanceSolution ( const double  dt,
const bool  first_step,
std::shared_ptr< AMP::LinearAlgebra::Vector in,
std::shared_ptr< AMP::LinearAlgebra::Vector out 
)
overridevirtual

Integrate through the specified time increment.

Integrate through the specified time increment.

The boolean first_step argument is true when this is the very first call to the advance function. Otherwise it is false. Note that, when the argument is true, the use of extrapolation to construct the initial guess for the advanced solution may not be possible.

This function may, or may not, copy the new solution into the solution vector at the previous time step (updateSolution). If it is copied, this can reduce the memory requirements, but restricts the implementation to those functions that will not be called multiple times within a time step. If it is not copied, the update solution function must be called after each time step. The concrete implementation needs to make this clear.

Parameters
dtTime step size
first_stepWhether this is the first step
inInput vector
outOutput vector
Returns
value is the return code generated by the particular solver package in use

Implements AMP::TimeIntegrator::TimeIntegrator.

◆ appendRhsVector()

virtual void AMP::TimeIntegrator::TimeIntegrator::appendRhsVector ( AMP::LinearAlgebra::Vector::shared_ptr  vec)
inlinevirtualinherited

Append the vectors of interest to the rhs vector.

This function will append the necessary vectors that this solver owns to the global vector provided. Note that each solver may own any number of vectors, but no vector may be owned by multiple solvers.

Parameters
vecThe vector to append

Definition at line 219 of file TimeIntegrator.h.

◆ appendSolutionVector()

virtual void AMP::TimeIntegrator::TimeIntegrator::appendSolutionVector ( AMP::LinearAlgebra::Vector::shared_ptr  vec)
inlinevirtualinherited

Append the vectors of interest to the solution vector.

This function will append the necessary vectors that this solver owns to the global vector provided. Note that each solver may own any number of vectors, but no vector may be owned by multiple solvers.

Parameters
vecThe vector to append

Definition at line 208 of file TimeIntegrator.h.

◆ checkNewSolution()

bool AMP::TimeIntegrator::IDATimeIntegrator::checkNewSolution ( void  )
overridevirtual

Check time advanced solution to determine whether it is acceptable. Return true if the solution is acceptable; return false otherwise. The integer argument is the return code generated by the call to the nonlinear solver "solve" routine. The meaning of this value depends on the particular nonlinear solver in use and must be intepreted properly by the user-supplied solution checking routine.

Implements AMP::TimeIntegrator::TimeIntegrator.

◆ getBoolManufacturedProblem()

bool AMP::TimeIntegrator::IDATimeIntegrator::getBoolManufacturedProblem ( void  )
inline

added by Gary, need discussion whether to deprecate

Definition at line 188 of file IDATimeIntegrator.h.

References d_bManufacturedProblem.

◆ getCurrentDt()

virtual double AMP::TimeIntegrator::TimeIntegrator::getCurrentDt ( ) const
virtualinherited

Return current timestep.

Return current timestep.

◆ getCurrentTime()

virtual double AMP::TimeIntegrator::TimeIntegrator::getCurrentTime ( ) const
virtualinherited

Return final integration time.

Return current integration time.

◆ getFinalTime()

virtual double AMP::TimeIntegrator::TimeIntegrator::getFinalTime ( ) const
virtualinherited

Return final integration time.

Return final integration time.

◆ getFromInput()

void AMP::TimeIntegrator::IDATimeIntegrator::getFromInput ( std::shared_ptr< AMP::Database input_db)
private

Read data from input database.

◆ getFromRestart()

void AMP::TimeIntegrator::TimeIntegrator::getFromRestart ( )
protectedinherited

◆ getGamma()

virtual double AMP::TimeIntegrator::TimeIntegrator::getGamma ( void  )
inlinevirtualinherited

◆ getID()

uint64_t AMP::TimeIntegrator::TimeIntegrator::getID ( ) const
inherited

Get a unique id hash for the vector.

◆ getIDAMem()

void * AMP::TimeIntegrator::IDATimeIntegrator::getIDAMem ( void  )
inline

return a void * pointer to the IDA_mem data structure used by IDA

Definition at line 206 of file IDATimeIntegrator.h.

References d_ida_mem.

◆ getIDATimeOperator()

std::shared_ptr< IDATimeOperator > AMP::TimeIntegrator::IDATimeIntegrator::getIDATimeOperator ( ) const

return a pointer to the IDA time operator, deprecated

◆ getInitialDt()

virtual double AMP::TimeIntegrator::TimeIntegrator::getInitialDt ( )
inlinevirtualinherited

get initial time step.

Definition at line 179 of file TimeIntegrator.h.

References AMP::TimeIntegrator::TimeIntegrator::d_initial_dt.

◆ getInitialTime()

virtual double AMP::TimeIntegrator::TimeIntegrator::getInitialTime ( ) const
virtualinherited

Return initial integration time.

Return initial integration time.

◆ getIntegratorStep()

virtual int AMP::TimeIntegrator::TimeIntegrator::getIntegratorStep ( ) const
virtualinherited

Return current integration step number.

Return current integration step number.

◆ getLinearTimeOperator()

std::shared_ptr< LinearTimeOperator > AMP::TimeIntegrator::IDATimeIntegrator::getLinearTimeOperator ( ) const

return a pointer to the linear time operator used by the preconditioner

◆ getMaxIntegratorSteps()

virtual int AMP::TimeIntegrator::TimeIntegrator::getMaxIntegratorSteps ( ) const
virtualinherited

Return maximum number of integration steps.

Return maximum number of integration steps.

◆ getNextDt()

double AMP::TimeIntegrator::IDATimeIntegrator::getNextDt ( const bool  good_solution)
overridevirtual

Specify next time step to use.

Reimplemented from AMP::TimeIntegrator::TimeIntegrator.

◆ getOperator()

std::shared_ptr< AMP::Operator::Operator > AMP::TimeIntegrator::TimeIntegrator::getOperator ( void  )
inlineinherited

Definition at line 246 of file TimeIntegrator.h.

References AMP::TimeIntegrator::TimeIntegrator::d_operator.

◆ getPreconditioner()

std::shared_ptr< AMP::Solver::SolverStrategy > AMP::TimeIntegrator::IDATimeIntegrator::getPreconditioner ( void  )
inline

return a shared pointer to the preconditioner being used

Definition at line 198 of file IDATimeIntegrator.h.

References d_pNestedSolver.

◆ getResidualVector()

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::TimeIntegrator::IDATimeIntegrator::getResidualVector ( ) const

return a shared pointer to the residual vector

◆ getSolution()

virtual std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::TimeIntegrator::TimeIntegrator::getSolution ( void  )
inlinevirtualinherited

Retrieve the current solution.

Definition at line 137 of file TimeIntegrator.h.

References AMP::TimeIntegrator::TimeIntegrator::d_solution_vector.

◆ getSourceTerm()

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::TimeIntegrator::IDATimeIntegrator::getSourceTerm ( )
overridevirtual

return a shared pointer to the source term at the current time step

Reimplemented from AMP::TimeIntegrator::TimeIntegrator.

◆ getTimeHistoryScalings()

virtual std::vector< double > AMP::TimeIntegrator::TimeIntegrator::getTimeHistoryScalings ( void  )
inlinevirtualinherited

Scaling factors for previous time history vectors.

For RK methods the previous time vector is always scaled by 1. For multistep methods this vector can consist of multiple scalings with the first entry being the scaling for $y^{n-1}$, the next being for $y^{n-2}$ etc

Reimplemented in AMP::TimeIntegrator::BDFIntegrator.

Definition at line 276 of file TimeIntegrator.h.

◆ getTotalRejectedSteps()

virtual int AMP::TimeIntegrator::TimeIntegrator::getTotalRejectedSteps ( ) const
inlinevirtualinherited

◆ IDAPrecSetup()

static int AMP::TimeIntegrator::IDATimeIntegrator::IDAPrecSetup ( realtype  tt,
N_Vector  yy,
N_Vector  yp,
N_Vector  rr,
realtype  cj,
void user_data,
N_Vector  tmp1,
N_Vector  tmp2,
N_Vector  tmp3 
)
staticprivate

◆ IDAPrecSolve()

static int AMP::TimeIntegrator::IDATimeIntegrator::IDAPrecSolve ( realtype  tt,
N_Vector  yy,
N_Vector  yp,
N_Vector  rr,
N_Vector  rvec,
N_Vector  zvec,
realtype  cj,
realtype  delta,
void user_data,
N_Vector  tmp 
)
staticprivate

◆ IDAResTrial()

static int AMP::TimeIntegrator::IDATimeIntegrator::IDAResTrial ( realtype  tt,
N_Vector  yy,
N_Vector  yp,
N_Vector  rr,
void user_data 
)
staticprivate

◆ initialize()

void AMP::TimeIntegrator::IDATimeIntegrator::initialize ( std::shared_ptr< TimeIntegratorParameters parameters)
overridevirtual

Initialize from parameter list.

Reimplemented from AMP::TimeIntegrator::TimeIntegrator.

◆ initializeIDA()

void AMP::TimeIntegrator::IDATimeIntegrator::initializeIDA ( )
private

◆ printClassData()

void AMP::TimeIntegrator::TimeIntegrator::printClassData ( std::ostream &  os) const
inherited

Print out all members of integrator instance to given output stream.

◆ printStatistics()

virtual void AMP::TimeIntegrator::TimeIntegrator::printStatistics ( std::ostream &  os = AMP::pout)
virtualinherited

◆ putToDatabase()

void AMP::TimeIntegrator::TimeIntegrator::putToDatabase ( std::shared_ptr< AMP::Database db)
inherited

Write out state of object to given database.

When assertion checking is active, the database pointer must be non-null.

◆ registerChildObjects()

virtual void AMP::TimeIntegrator::TimeIntegrator::registerChildObjects ( AMP::IO::RestartManager manager) const
virtualinherited

◆ registerOperator()

virtual void AMP::TimeIntegrator::TimeIntegrator::registerOperator ( std::shared_ptr< AMP::Operator::Operator op)
inlinevirtualinherited

◆ registerWriter()

virtual void AMP::TimeIntegrator::TimeIntegrator::registerWriter ( std::shared_ptr< AMP::IO::Writer writer)
inlinevirtualinherited

Registers a writer with the solver.

This function will register a writer with the solver. The solver may then register any vector components it "owns" with the writer.

Parameters
writerThe writer to register

Definition at line 227 of file TimeIntegrator.h.

References AMP::TimeIntegrator::TimeIntegrator::d_writer.

◆ reset()

void AMP::TimeIntegrator::IDATimeIntegrator::reset ( std::shared_ptr< const TimeIntegratorParameters parameters)
overridevirtual

Resets the internal state of the time integrator as needed. A parameter argument is passed to allow for general flexibility in determining what needs to be reset Typically used after a regrid.

Implements AMP::TimeIntegrator::TimeIntegrator.

◆ setCurrentDt()

virtual void AMP::TimeIntegrator::TimeIntegrator::setCurrentDt ( const double  dt)
inlinevirtualinherited

◆ setCurrentTime()

virtual void AMP::TimeIntegrator::TimeIntegrator::setCurrentTime ( const double  t)
inlinevirtualinherited

◆ setFinalTime()

virtual void AMP::TimeIntegrator::TimeIntegrator::setFinalTime ( const double  t)
inlinevirtualinherited

◆ setInitialDt()

virtual void AMP::TimeIntegrator::TimeIntegrator::setInitialDt ( const double  dt)
inlinevirtualinherited

◆ setInitialGuess()

void AMP::TimeIntegrator::IDATimeIntegrator::setInitialGuess ( const bool  first_step,
const double  current_time,
const double  current_dt,
const double  old_dt 
)

Set an initial guess for the time advanced solution.

◆ setInitialTime()

virtual void AMP::TimeIntegrator::TimeIntegrator::setInitialTime ( const double  t)
inlinevirtualinherited

◆ setSourceTerm()

virtual void AMP::TimeIntegrator::TimeIntegrator::setSourceTerm ( AMP::LinearAlgebra::Vector::shared_ptr  src)
inlinevirtualinherited

◆ setupVectors()

void AMP::TimeIntegrator::IDATimeIntegrator::setupVectors ( void  )
private

◆ sizeOfTimeHistory()

virtual size_t AMP::TimeIntegrator::TimeIntegrator::sizeOfTimeHistory ( ) const
inlinevirtualinherited

Reimplemented in AMP::TimeIntegrator::BDFIntegrator.

Definition at line 284 of file TimeIntegrator.h.

◆ stepsRemaining()

virtual bool AMP::TimeIntegrator::TimeIntegrator::stepsRemaining ( ) const
virtualinherited

Have the number of integration steps reached the maximum.

Return true if the number of integration steps performed by the integrator has not reached the specified maximum; return false otherwise.

Reimplemented in AMP::TimeIntegrator::ImplicitIntegrator.

◆ type()

std::string AMP::TimeIntegrator::IDATimeIntegrator::type ( ) const
inlineoverridevirtual

Return the name of the TimeIntegrator.

Reimplemented from AMP::TimeIntegrator::TimeIntegrator.

Definition at line 208 of file IDATimeIntegrator.h.

◆ updateSolution()

void AMP::TimeIntegrator::IDATimeIntegrator::updateSolution ( void  )
overridevirtual

Update state of the solution.

Implements AMP::TimeIntegrator::TimeIntegrator.

◆ updateSourceTerm()

void AMP::TimeIntegrator::IDATimeIntegrator::updateSourceTerm ( void  )

◆ writeRestart()

virtual void AMP::TimeIntegrator::TimeIntegrator::writeRestart ( int64_t  fid) const
virtualinherited

Member Data Documentation

◆ d_absolute_tolerance

double AMP::TimeIntegrator::IDATimeIntegrator::d_absolute_tolerance
private

Definition at line 260 of file IDATimeIntegrator.h.

◆ d_bCallCalcIC

bool AMP::TimeIntegrator::IDATimeIntegrator::d_bCallCalcIC
private

Definition at line 265 of file IDATimeIntegrator.h.

◆ d_bLinearMassOperator

bool AMP::TimeIntegrator::IDATimeIntegrator::d_bLinearMassOperator
private

Definition at line 273 of file IDATimeIntegrator.h.

◆ d_bLinearRhsOperator

bool AMP::TimeIntegrator::IDATimeIntegrator::d_bLinearRhsOperator
private

Definition at line 274 of file IDATimeIntegrator.h.

◆ d_bManufacturedProblem

bool AMP::TimeIntegrator::IDATimeIntegrator::d_bManufacturedProblem
private

Definition at line 275 of file IDATimeIntegrator.h.

Referenced by getBoolManufacturedProblem().

◆ d_bUsePreconditioner

bool AMP::TimeIntegrator::IDATimeIntegrator::d_bUsePreconditioner
private

Definition at line 271 of file IDATimeIntegrator.h.

◆ d_createLinearOperatorInternally

bool AMP::TimeIntegrator::IDATimeIntegrator::d_createLinearOperatorInternally
private

Definition at line 268 of file IDATimeIntegrator.h.

◆ d_current_dt

double AMP::TimeIntegrator::TimeIntegrator::d_current_dt = std::numeric_limits<double>::signaling_NaN()
protectedinherited

◆ d_current_time

double AMP::TimeIntegrator::TimeIntegrator::d_current_time = std::numeric_limits<double>::signaling_NaN()
protectedinherited

◆ d_final_time

double AMP::TimeIntegrator::TimeIntegrator::d_final_time = std::numeric_limits<double>::signaling_NaN()
protectedinherited

Definition at line 345 of file TimeIntegrator.h.

Referenced by AMP::TimeIntegrator::TimeIntegrator::setFinalTime().

◆ d_ic_vector

std::shared_ptr<AMP::LinearAlgebra::Vector> AMP::TimeIntegrator::TimeIntegrator::d_ic_vector = nullptr
protectedinherited

Definition at line 315 of file TimeIntegrator.h.

◆ d_ida_mem

void* AMP::TimeIntegrator::IDATimeIntegrator::d_ida_mem
private

Definition at line 257 of file IDATimeIntegrator.h.

Referenced by getIDAMem().

◆ d_iDebugPrintInfoLevel

int AMP::TimeIntegrator::TimeIntegrator::d_iDebugPrintInfoLevel = 0
protectedinherited

Definition at line 357 of file TimeIntegrator.h.

◆ d_initial_dt

double AMP::TimeIntegrator::TimeIntegrator::d_initial_dt = std::numeric_limits<double>::signaling_NaN()
protectedinherited

◆ d_initial_time

double AMP::TimeIntegrator::TimeIntegrator::d_initial_time = std::numeric_limits<double>::signaling_NaN()
protectedinherited

◆ d_initialized

bool AMP::TimeIntegrator::TimeIntegrator::d_initialized = false
protectedinherited

Set to true after initialization in constructors. Needed in getFromInput to avoid reseting some parameters in subsequent reset operations.

Definition at line 370 of file TimeIntegrator.h.

◆ d_integrator_step

int AMP::TimeIntegrator::TimeIntegrator::d_integrator_step = 0
protectedinherited

◆ d_linear_solver_type

int AMP::TimeIntegrator::IDATimeIntegrator::d_linear_solver_type
private

Definition at line 262 of file IDATimeIntegrator.h.

◆ d_max_dt

double AMP::TimeIntegrator::TimeIntegrator::d_max_dt = std::numeric_limits<double>::max()
protectedinherited

maximum allowable timestep (user defined)

Definition at line 355 of file TimeIntegrator.h.

◆ d_max_integrator_steps

int AMP::TimeIntegrator::TimeIntegrator::d_max_integrator_steps = 0
protectedinherited

◆ d_min_dt

double AMP::TimeIntegrator::TimeIntegrator::d_min_dt = std::numeric_limits<double>::signaling_NaN()
protectedinherited

Definition at line 352 of file TimeIntegrator.h.

◆ d_object_name

std::string AMP::TimeIntegrator::TimeIntegrator::d_object_name
protectedinherited

◆ d_old_dt

double AMP::TimeIntegrator::TimeIntegrator::d_old_dt = std::numeric_limits<double>::signaling_NaN()
protectedinherited

Definition at line 351 of file TimeIntegrator.h.

◆ d_operator

std::shared_ptr<AMP::Operator::Operator> AMP::TimeIntegrator::TimeIntegrator::d_operator
protectedinherited

The operator is the right hand side operator for an explicit integrator when the time integration problem is : u_t = f(u) but in the case of implicit time integrators the operator represents u_t-f(u)

Definition at line 328 of file TimeIntegrator.h.

Referenced by AMP::TimeIntegrator::TimeIntegrator::getOperator(), and AMP::TimeIntegrator::TimeIntegrator::registerOperator().

◆ d_pIDATimeOperator

std::shared_ptr<IDATimeOperator> AMP::TimeIntegrator::IDATimeIntegrator::d_pIDATimeOperator
private

Definition at line 277 of file IDATimeIntegrator.h.

◆ d_pLinearTimeOperator

std::shared_ptr<LinearTimeOperator> AMP::TimeIntegrator::IDATimeIntegrator::d_pLinearTimeOperator
private

Definition at line 278 of file IDATimeIntegrator.h.

◆ d_pMassOperator

std::shared_ptr<AMP::Operator::Operator> AMP::TimeIntegrator::TimeIntegrator::d_pMassOperator
protectedinherited

The operator is the left hand side mass operator (for FEM formulations)

Definition at line 333 of file TimeIntegrator.h.

◆ d_pNestedSolver

std::shared_ptr<AMP::Solver::SolverStrategy> AMP::TimeIntegrator::IDATimeIntegrator::d_pNestedSolver
private

Definition at line 281 of file IDATimeIntegrator.h.

Referenced by getPreconditioner().

◆ d_pParameters

std::shared_ptr<TimeIntegratorParameters> AMP::TimeIntegrator::TimeIntegrator::d_pParameters
protectedinherited

pointer to parameters

Definition at line 310 of file TimeIntegrator.h.

◆ d_pSourceTerm

std::shared_ptr<AMP::LinearAlgebra::Vector> AMP::TimeIntegrator::TimeIntegrator::d_pSourceTerm
protectedinherited

◆ d_relative_tolerance

double AMP::TimeIntegrator::IDATimeIntegrator::d_relative_tolerance
private

Definition at line 259 of file IDATimeIntegrator.h.

◆ d_residual

std::shared_ptr<AMP::LinearAlgebra::Vector> AMP::TimeIntegrator::IDATimeIntegrator::d_residual

not sure why this variable exists and is public, BP

Definition at line 213 of file IDATimeIntegrator.h.

◆ d_solution_prime

std::shared_ptr<AMP::LinearAlgebra::Vector> AMP::TimeIntegrator::IDATimeIntegrator::d_solution_prime
private

Definition at line 279 of file IDATimeIntegrator.h.

◆ d_solution_vector

std::shared_ptr<AMP::LinearAlgebra::Vector> AMP::TimeIntegrator::TimeIntegrator::d_solution_vector
protectedinherited

Definition at line 320 of file TimeIntegrator.h.

Referenced by AMP::TimeIntegrator::TimeIntegrator::getSolution().

◆ d_total_steprejects

int AMP::TimeIntegrator::TimeIntegrator::d_total_steprejects = 0
protectedinherited

◆ d_writer

std::shared_ptr<AMP::IO::Writer> AMP::TimeIntegrator::TimeIntegrator::d_writer
protectedinherited

keeps track of total number of step rejections

Definition at line 364 of file TimeIntegrator.h.

Referenced by AMP::TimeIntegrator::TimeIntegrator::registerWriter().


The documentation for this class was generated from the following file:



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:45.
Comments on this page