47 #ifndef Xyce_N_TIA_BackwardDifferentiation15_h
48 #define Xyce_N_TIA_BackwardDifferentiation15_h
54 #include <N_PDS_ParMap.h>
59 #include <N_UTL_Math.h>
60 #include <N_UTL_IndexPair.h>
95 return "Backward Differentiation 15";
111 const std::list< IndexPair > & solGIDList,
112 const std::list< IndexPair > & staGIDList)
124 Linear::Vector * tmpSolVectorPtr, std::vector<Linear::Vector*> & historyVec) ;
131 Linear::Vector * solnVecPtr,
132 const bool doNotInterpolate,
133 const std::vector<double> & outputInterpolationTimes,
134 bool skipPrintLineOutput) ;
140 Linear::Vector * solnVecPtr,
141 const std::vector<double> & fastTimes ) ;
147 Linear::Vector * solnVecPtr,
148 const std::vector<double> & fastTimes,
153 Parallel::Machine comm,
154 IO::InitialConditionsManager & initial_conditions_manager,
155 const NodeNameMap & node_name_map,
157 Linear::Vector * solnVecPtr,
158 const double saveTime,
159 const bool doNotInterpolate) ;
267 std::vector<double>& timepoint,
268 Linear::Vector * tmpSolVectorPtr);
282 #endif // Xyce_N_TIA_BackwardDifferentiation15_h
int getNumberOfSteps() const
BackwardDifferentiation15(const TIAParams &tia_params, StepErrorControl &step_error_control, DataStore &data_store)
void completeStep(const TIAParams &tia_params)
void loadFinalSensitivityDerivatives()
Pure virtual class to augment a linear system.
void obtainCorrectorDeriv()
void updateLeadCurrentVec()
StepErrorControl & sec
Reference to step-error control object.
void getInitialQnorm(TwoLevelError &tle) const
double computeErrorEstimate() const
bool interpolateSolution(double timepoint, Linear::Vector *tmpSolVectorPtr, std::vector< Linear::Vector * > &historyVec)
double computeExpoStepAdjust(double stepadjust)
void obtainSensitivityResiduals()
const char * getName() const
bool printWaMPDEOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const double time, Linear::Vector *solnVecPtr, const std::vector< double > &fastTimes, const int phiGID)
void getTwoLevelError(TwoLevelError &tle) const
void initialize(const TIAParams &tia_params)
double leadingCoeff
Time-integration method leading coefficient value.
void setTwoLevelTimeInfo()
double getLeadingCoeff() const
void setLeadingCoeff(double &LC)
static TimeIntegrationMethod * factory(const TIAParams &tia_params, StepErrorControl &step_error_control, DataStore &data_store)
bool printMPDEOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const double time, Linear::Vector *solnVecPtr, const std::vector< double > &fastTimes)
void obtainPredictorDeriv()
int getMaxOrder() const
Return max order of method (this should obey user option maxorder)
bool interpolateMPDESolution(std::vector< double > &timepoint, Linear::Vector *tmpSolVectorPtr)
void rejectStep(const TIAParams &tia_params)
double timept_
Keep track of last interpolation point in printMPDEOutputSolution.
double partialTimeDeriv() const
void updateDerivsBlock(const std::list< IndexPair > &solGIDList, const std::list< IndexPair > &staGIDList)
bool printOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const TIAParams &tia_params, const double time, Linear::Vector *solnVecPtr, const bool doNotInterpolate, const std::vector< double > &outputInterpolationTimes, bool skipPrintLineOutput)
~BackwardDifferentiation15()
bool saveOutputSolution(Parallel::Machine comm, IO::InitialConditionsManager &initial_conditions_manager, const NodeNameMap &node_name_map, const TIAParams &tia_params, Linear::Vector *solnVecPtr, const double saveTime, const bool doNotInterpolate)
void rejectStepForHabanero()
DataStore & ds
Reference to the TIA data-store object.