47 #ifndef Xyce_N_TIA_GEAR12_H
48 #define Xyce_N_TIA_GEAR12_H
56 #include <N_PDS_ParMap.h>
57 #include <N_UTL_Math.h>
58 #include <N_UTL_IndexPair.h>
103 void updateDerivsBlock(
const std::list< IndexPair > & solGIDList,
const std::list< IndexPair > & staGIDList)
113 bool interpolateSolution(
double timepoint, Linear::Vector * tmpSolVectorPtr, std::vector<Linear::Vector*> & historyVec) ;
120 Linear::Vector * solnVecPtr,
121 const bool doNotInterpolate,
122 const std::vector<double> & outputInterpolationTimes,
123 bool skipPrintLineOutput) ;
129 Linear::Vector * solnVecPtr,
130 const std::vector<double> & fastTimes );
136 Linear::Vector * solnVecPtr,
137 const std::vector<double> & fastTimes,
142 Parallel::Machine comm,
143 IO::InitialConditionsManager & initial_conditions_manager,
144 const NodeNameMap & node_name_map,
146 Linear::Vector * solnVecPtr,
147 const double saveTime,
148 const bool doNotInterpolate) ;
264 #endif //Xyce_N_TIA_GEAR12_H
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)
const char * getName() const
bool interpolateMPDESolution(std::vector< double > &timepoint, Linear::Vector *tmpSolVectorPtr)
void rejectStep(const TIAParams &tia_params)
Gear12(const TIAParams &tia_params, StepErrorControl &step_error_control, DataStore &data_store)
Pure virtual class to augment a linear system.
void getInitialQnorm(TwoLevelError &tle) const
bool interpolateSolution(double timepoint, Linear::Vector *tmpSolVectorPtr, std::vector< Linear::Vector * > &historyVec)
void updateDerivsBlock(const std::list< IndexPair > &solGIDList, const std::list< IndexPair > &staGIDList)
void completeStep(const TIAParams &tia_params)
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)
void updateLeadCurrentVec()
void setLeadingCoeff(double &LC)
static TimeIntegrationMethod * factory(const TIAParams &tia_params, StepErrorControl &step_error_control, DataStore &data_store)
void setTwoLevelTimeInfo()
void initialize(const TIAParams &tia_params)
double leadingCoeff
Time-integration method leading coefficient value.
void obtainPredictorDeriv()
void obtainCorrectorDeriv()
void loadFinalSensitivityDerivatives()
DataStore & ds
Reference to the TIA data-store object.
double computeExpoStepAdjust(double stepadjust)
bool printWaMPDEOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const double time, Linear::Vector *solnVecPtr, const std::vector< double > &fastTimes, const int phiGID)
void getTwoLevelError(TwoLevelError &tle) const
bool printMPDEOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const double time, Linear::Vector *solnVecPtr, const std::vector< double > &fastTimes)
void updateSensitivityHistory()
int getNumberOfSteps() const
int getMaxOrder() const
Return max order of method (this should obey user option maxorder)
double getLeadingCoeff() const
double partialTimeDeriv() const
void rejectStepForHabanero()
void initializeSensitivities()
StepErrorControl & sec
Reference to step-error control object.
void obtainSensitivityPredictors()
void obtainSensitivityResiduals()
double computeErrorEstimate() const
double timept_
Keep track of last interpolation point in printMPDEOutputSolution.