49 #ifndef Xyce_LOA_NonlinearEquationLoader_H
50 #define Xyce_LOA_NonlinearEquationLoader_H
53 #include <N_LAS_fwd.h>
55 #include <N_PDS_fwd.h>
57 #include <N_UTL_fwd.h>
59 #include <N_UTL_Stats.h>
86 bool daeStateDerivFlag);
95 bool applyJacobian (
const Linear::Vector& input, Linear::Vector& result);
139 bool loadCouplingRHS (
int iSubProblem,
int iCouple, Linear::Vector * dfdvPtr);
140 bool calcCouplingTerms (
int iSubProblem,
int iCouple,
const Linear::Vector * dxdvPtr);
170 std::vector<double> & dfdpVec,
171 std::vector<double> & dqdpVec,
172 std::vector<double> & dbdpVec,
173 std::vector<int> & FindicesVec,
174 std::vector<int> & QindicesVec,
175 std::vector<int> & BindicesVec)
const;
177 bool setParam(std::string & name,
double val,
bool overrideOriginal=
false);
189 void homotopyStepSuccess(
const std::vector<std::string> & paramNames,
const std::vector<double> & paramVals);
Util::Timer * jacobianTimerPtr_
TimeIntg::DataStore & ds_
bool loadCouplingRHS(int iSubProblem, int iCouple, Linear::Vector *dfdvPtr)
bool getParamAndReduce(const std::string &name, double &val) const
Pure virtual class to augment a linear system.
bool analyticSensitivitiesAvailable(std::string &name)
TimeIntg::WorkingIntegrationMethod & wim_
bool applyJacobian(const Linear::Vector &input, Linear::Vector &result)
virtual ~NonlinearEquationLoader()
bool innerDevicesConverged(Parallel::Machine comm)
int getHomotopyBlockSize() const
bool allDevicesConverged(Parallel::Machine comm)
bool disablePDEContinuation()
bool setParam(std::string &name, double val, bool overrideOriginal=false)
const Loader & getLoader() const
Util::Timer * residualTimerPtr_
bool calcCouplingTerms(int iSubProblem, int iCouple, const Linear::Vector *dxdvPtr)
NonlinearEquationLoader(TimeIntg::DataStore &ds, Loader &loader, Device::DeviceMgr &device_manager, TimeIntg::WorkingIntegrationMethod &wim, bool daeStateDerivFlag)
bool loadFinalSensitivityDerivatives()
void getAnalyticSensitivities(std::string &name, std::vector< double > &dfdpVec, std::vector< double > &dqdpVec, std::vector< double > &dbdpVec, std::vector< int > &FindicesVec, std::vector< int > &QindicesVec, std::vector< int > &BindicesVec) const
void homotopyStepFailure()
bool loadSensitivityResiduals()
void homotopyStepSuccess(const std::vector< std::string > ¶mNames, const std::vector< double > ¶mVals)
void getNumInterfaceNodes(std::vector< int > &numINodes)
int enablePDEContinuation()
bool getLinearSystemFlag() const
Device::DeviceMgr & deviceManager_
Device manager.