49 #ifndef Xyce_N_TIA_TimeIntegrationMethods_h
50 #define Xyce_N_TIA_TimeIntegrationMethods_h
59 #include <N_LAS_fwd.h>
61 #include <N_UTL_IndexPair.h>
87 virtual const char *
getName()
const = 0;
100 const std::list<IndexPair> & solGIDList,
101 const std::list<IndexPair> & staGIDList) = 0;
107 virtual bool interpolateSolution(
double timepoint, Linear::Vector * tmpSolVectorPtr, std::vector<Linear::Vector*> & historyVec) = 0;
114 Linear::Vector * solnVecPtr,
115 const bool doNotInterpolate,
116 const std::vector<double> & outputInterpolationTimes,
117 bool skipPrintLineOutput) = 0;
123 Linear::Vector * solnVecPtr,
124 const std::vector<double> & fastTimes)
133 Linear::Vector * solnVecPtr,
134 const std::vector<double> & fastTimes,
144 Linear::Vector * solnVecPtr,
145 const double saveTime,
146 const bool doNotInterpolate) = 0;
198 virtual void applyJacobian(
const Linear::Vector& input, Linear::Vector& result)
234 #endif // Xyce_N_TIA_TimeIntegrationMethods_h
virtual void obtainPredictor()=0
virtual void obtainCorrectorDeriv()=0
virtual void updateDerivsBlock(const std::list< IndexPair > &solGIDList, const std::list< IndexPair > &staGIDList)=0
virtual const char * getName() const =0
virtual int getOrder() const =0
virtual bool printMPDEOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const double time, Linear::Vector *solnVecPtr, const std::vector< double > &fastTimes)
virtual void rejectStepForHabanero()
virtual void updateLeadCurrentVec()
Pure virtual class to augment a linear system.
virtual void getTwoLevelError(TwoLevelError &tle) const =0
virtual int getNumberOfSteps() const =0
virtual double getLeadingCoeff() const =0
virtual bool interpolateSolution(double timepoint, Linear::Vector *tmpSolVectorPtr, std::vector< Linear::Vector * > &historyVec)=0
virtual void initialize(const TIAParams &tia_params)=0
virtual void updateHistory()
virtual bool printWaMPDEOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const double time, Linear::Vector *solnVecPtr, const std::vector< double > &fastTimes, const int phiGID)
virtual void completeStep(const TIAParams &tia_params)=0
virtual int getUsedOrder() const =0
virtual double computeErrorEstimate() const =0
virtual void applyJacobian(const Linear::Vector &input, Linear::Vector &result)
virtual void setLeadingCoeff(double &LC)=0
virtual void restoreHistory()
virtual void obtainJacobian()
virtual void obtainPredictorDeriv()=0
virtual void updateCoeffs()
virtual double partialTimeDeriv() const =0
virtual void getInitialQnorm(TwoLevelError &tle) const =0
virtual 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)=0
virtual void updateLeadCurrent()
virtual double computeExpoStepAdjust(double stepadjust)=0
virtual void setTwoLevelTimeInfo(const TimeIntInfo &tiInfo)=0
virtual int getNscsco() const =0
virtual void obtainResidual()=0
virtual int getMaxOrder() const =0
Return max order of method (this should obey user option maxorder)
virtual void loadFinalSensitivityDerivatives()=0
virtual bool saveOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const TIAParams &tia_params, Linear::Vector *solnVecPtr, const double saveTime, const bool doNotInterpolate)=0
virtual void obtainSensitivityResiduals()=0
virtual ~TimeIntegrationMethod()
virtual void rejectStep(const TIAParams &tia_params)=0
virtual void updateStateDeriv()