49 #ifndef Xyce_N_NLS_NonLinearSolver_h
50 #define Xyce_N_NLS_NonLinearSolver_h
54 #include <Teuchos_RCP.hpp>
58 #include <N_UTL_fwd.h>
61 #include <N_LAS_fwd.h>
63 #include <N_PDS_fwd.h>
69 #include <N_UTL_Stats.h>
108 virtual bool setOptions(
const Util::OptionBlock& OB) = 0;
110 virtual bool setHBOptions(
const Util::OptionBlock& OB) = 0;
178 void debugOutput1(Linear::Matrix & jacobian, Linear::Vector & rhs);
179 void debugOutput3(Linear::Vector & dxVector, Linear::Vector & xVector);
187 virtual bool applyJacobian(
const Linear::Vector& input, Linear::Vector& result);
virtual ~NonLinearSolver()
virtual int getMaxNormFindex() const =0
virtual bool getScreenOutputFlag() const =0
void debugOutput3(Linear::Vector &dxVector, Linear::Vector &xVector)
virtual bool getLocaFlag()
bool registerLoader(Loader::NonlinearEquationLoader *ptr)
virtual void setMatrixFreeFlag(bool matrixFreeFlag)
virtual bool setTwoLevelLocaOptions(const Util::OptionBlock &OB)
virtual bool enableSensitivity()
virtual int solve(NonLinearSolver *nlsTmpPtr=NULL)=0
virtual bool setTranOptions(const Util::OptionBlock &OB)=0
virtual bool setTwoLevelOptions(const Util::OptionBlock &OB)
virtual int takeFirstSolveStep(NonLinearSolver *nlsTmpPtr=NULL)
virtual bool setNodeSetOptions(const Util::OptionBlock &OB)
bool registerTIADataStore(TimeIntg::DataStore *tiaDSPtr)
bool registerParallelMgr(N_PDS_Manager *pdsMgrPtr)
Pure virtual class to augment a linear system.
int numFailedLinearSolves_
virtual int getNumLinearSolves()
unsigned int totalNumLinearIters_
virtual bool applyJacobian(const Linear::Vector &input, Linear::Vector &result)
virtual int getNumIterations() const =0
virtual double getDebugMaxTime() const =0
std::string netlistFilename_
Linear::Matrix * dFdxTestMatrixPtr_
virtual void setReturnCodes(const ReturnCodes &retCodesTmp)
virtual bool setICOptions(const Util::OptionBlock &OB)
virtual bool isFirstSolveComplete() const =0
virtual double getTotalLinearSolveTime()
Linear::Vector ** tmpSolVectorPtrPtr_
virtual bool isFirstContinuationParam() const =0
virtual void resetCountersAndTimers_()
Linear::Vector * rhsVectorPtr_
virtual double getTotalResidualLoadTime()
virtual void resetAll(AnalysisMode mode)
TimeIntg::DataStore * dsPtr_
Linear::Vector * gradVectorPtr_
virtual bool setPetraOptions(const Util::OptionBlock &OB)
NonLinearSolver(const IO::CmdParse &cp)
virtual bool initializeAll()
virtual int getParameterNumber() const =0
Linear::Matrix * jacobianMatrixPtr_
virtual int getDebugLevel() const =0
IO::OutputMgr * outMgrPtr_
bool registerParamMgr(ParamMgr *ptr)
N_PDS_Manager * pdsMgrPtr_
const Analysis::AnalysisManager & getAnalysisManager() const
Linear::System * lasSysPtr_
void setDebugFlags(int output_step_number, double time)
virtual bool getMatrixFreeFlag()
Linear::Vector ** nextSolVectorPtrPtr_
void debugOutput1(Linear::Matrix &jacobian, Linear::Vector &rhs)
bool registerTwoLevelSolver(TwoLevelNewton *ptr)
Linear::Solver * lasSolverPtr_
virtual unsigned int getTotalNumLinearIters()
const Linear::PrecondFactory * lasPrecPtr_
bool registerInitialConditionsManager(IO::InitialConditionsManager *outPtr)
const IO::CmdParse & commandLine_
Linear::Vector * fdxVLVectorPtr_
Linear::Vector * jdxVLVectorPtr_
virtual TwoLevelNewtonMode getCouplingMode()
bool registerPrecondFactory(const Linear::PrecondFactory *ptr)
virtual int getNumJacobianLoads()
Analysis::AnalysisManager & getAnalysisManager()
Analysis::AnalysisManager * analysisManager_
virtual bool getMMFormat() const =0
double totalResidualLoadTime_
virtual int getContinuationStep() const =0
Linear::Matrix * jacTestMatrixPtr_
void debugOutputJDX_VOLTLIM()
RCP< Linear::Problem > lasProblemRCPtr_
virtual double getTotalJacobianLoadTime()
Linear::Vector * solWtVectorPtr_
bool registerLinearSystem(Linear::System *ptr)
Linear::Vector * dxVoltlimVectorPtr_
virtual int getDebugMaxTimeStep() const =0
int numJacobianFactorizations_
Linear::Vector * NewtonVectorPtr_
IO::InitialConditionsManager * initialConditionsManager_
Linear::Vector * qdxVLVectorPtr_
virtual int takeOneSolveStep()
Linear::Matrix * dQdxTestMatrixPtr_
virtual double getDebugMinTime() const =0
bool registerAnalysisManager(Analysis::AnalysisManager *tmp_anaIntPtr)
double totalLinearSolveTime_
virtual int getNumFailedLinearSolves()
virtual void setAnalysisMode(AnalysisMode mode)=0
ParamMgr * nonlinearParameterManager_
virtual int getNumJacobianFactorizations()
virtual bool setHBOptions(const Util::OptionBlock &OB)=0
Linear::Vector ** currSolVectorPtrPtr_
virtual int getDebugMinTimeStep() const =0
double totalJacobianLoadTime_
Loader::NonlinearEquationLoader * loaderPtr_
bool registerOutputMgr(IO::OutputMgr *outPtr)
bool registerRHSVector(Linear::Vector *ptr)
virtual bool setDCOPRestartOptions(const Util::OptionBlock &OB)
virtual bool setOptions(const Util::OptionBlock &OB)=0
Util::OptionBlock * petraOptionBlockPtr_
virtual int getNumResidualLoads()
virtual bool setTwoLevelTranOptions(const Util::OptionBlock &OB)
virtual double getMaxNormF() const =0
virtual bool setLocaOptions(const Util::OptionBlock &OB)