74 #ifndef Xyce_LOA_Loader_H
75 #define Xyce_LOA_Loader_H
84 #include <N_LAS_fwd.h>
85 #include <N_PDS_fwd.h>
87 #include <N_UTL_fwd.h>
111 Linear::Vector * tmpSolVectorPtr,
112 Linear::Vector * tmpStaVectorPtr,
113 Linear::Vector * tmpStaDerivVectorPtr,
114 Linear::Vector * tmpStoVectorPtr,
115 Linear::Matrix * tmpdQdxMatrixPtr,
116 Linear::Matrix * tmpdFdxMatrixPtr)
123 Linear::Vector * nextSolVectorPtr,
124 Linear::Vector * currSolVectorPtr,
125 Linear::Vector * lastSolVectorPtr,
126 Linear::Vector * nextStaVectorPtr,
127 Linear::Vector * currStaVectorPtr,
128 Linear::Vector * lastStaVectorPtr,
129 Linear::Vector * StaDerivVectorPtr,
130 Linear::Vector * nextStoVectorPtr,
131 Linear::Vector * currStoVectorPtr,
132 Linear::Vector * lastStoVectorPtr,
133 Linear::Vector * stoLeadCurrQVectorPtr,
134 Linear::Vector * nextLeadFVectorPtr,
135 Linear::Vector * currLeadFVectorPtr,
136 Linear::Vector * lastLeadFVectorPtr,
137 Linear::Vector * nextLeadQVectorPtr,
138 Linear::Vector * nextJunctionVVectorPtr,
139 Linear::Vector * currJunctionVVectorPtr,
140 Linear::Vector * lastJunctionVVectorPtr,
141 Linear::Vector * QVectorPtr,
142 Linear::Vector * FVectorPtr,
143 Linear::Vector * BVectorPtr,
144 Linear::Vector * dFdxdVpVectorPtr,
145 Linear::Vector * dQdxdVpVectorPtr)
158 Linear::Vector * nextSolVectorPtr,
159 Linear::Vector * currSolVectorPtr,
160 Linear::Vector * lastSolVectorPtr,
161 Linear::Vector * nextStaVectorPtr,
162 Linear::Vector * currStaVectorPtr,
163 Linear::Vector * lastStaVectorPtr,
164 Linear::Vector * StateDerivVectorPtr,
165 Linear::Vector * nextStoVectorPtr,
166 Linear::Vector * currStoVectorPtr,
167 Linear::Vector * lastStoVectorPtr,
168 Linear::Vector * QVectorPtr,
169 Linear::Vector * FVectorPtr,
170 Linear::Vector * BVectorPtr,
171 Linear::Vector * dFdxdVpVectorPtr,
172 Linear::Vector * dQdxdVpVectorPtr)
const = 0;
178 Linear::Vector * tmpSolVectorPtr,
179 Linear::Vector * tmpStaVectorPtr,
180 Linear::Vector * tmpStaDerivVectorPtr,
181 Linear::Vector * tmpStoVectorPtr,
182 const Linear::Vector & tmpVecVectorPtr,
183 Linear::Vector * tmpdQdxVecVectorPtr,
184 Linear::Vector * tmpdFdxVecVectorPtr)
190 Linear::Vector * nextSolVectorPtr,
191 Linear::Vector * currSolVectorPtr,
192 Linear::Vector * lastSolVectorPtr,
193 Linear::Vector * nextStaVectorPtr,
194 Linear::Vector * currStaVectorPtr,
195 Linear::Vector * lastStaVectorPtr,
196 Linear::Vector * nextStoVectorPtr,
197 Linear::Vector * currStoVectorPtr,
198 Linear::Vector * lastStoVectorPtr)
204 Linear::Vector * bVecRealPtr,
205 Linear::Vector * bVecImagPtr)
238 virtual bool setParam(std::string & name,
double val,
bool overrideOriginal =
false) = 0;
241 virtual double getParamAndReduce(Parallel::Machine comm,
const std::string & name)
const = 0;
273 virtual bool getBreakPoints(std::vector< Util::BreakPoint > & breakPointTimes)
const
306 bool beginIntegrationFlag,
virtual bool setInitialGuess(Linear::Vector *solVectorPtr)
virtual bool getBMatrixEntriesforMOR(std::vector< int > &bMatEntriesVec, std::vector< int > &bMatPosEntriesVec)
Pure virtual class to augment a linear system.
virtual void stepFailure(Analysis::TwoLevelMode analysis)
virtual bool loadDAEVectors(Linear::Vector *nextSolVectorPtr, Linear::Vector *currSolVectorPtr, Linear::Vector *lastSolVectorPtr, Linear::Vector *nextStaVectorPtr, Linear::Vector *currStaVectorPtr, Linear::Vector *lastStaVectorPtr, Linear::Vector *StaDerivVectorPtr, Linear::Vector *nextStoVectorPtr, Linear::Vector *currStoVectorPtr, Linear::Vector *lastStoVectorPtr, Linear::Vector *stoLeadCurrQVectorPtr, Linear::Vector *nextLeadFVectorPtr, Linear::Vector *currLeadFVectorPtr, Linear::Vector *lastLeadFVectorPtr, Linear::Vector *nextLeadQVectorPtr, Linear::Vector *nextJunctionVVectorPtr, Linear::Vector *currJunctionVVectorPtr, Linear::Vector *lastJunctionVVectorPtr, Linear::Vector *QVectorPtr, Linear::Vector *FVectorPtr, Linear::Vector *BVectorPtr, Linear::Vector *dFdxdVpVectorPtr, Linear::Vector *dQdxdVpVectorPtr)
virtual bool outputPlotFiles() const
virtual int getNumNoiseDevices()
virtual bool loadBVectorsforAC(Linear::Vector *bVecRealPtr, Linear::Vector *bVecImagPtr)
virtual bool applyDAEMatrices(Linear::Vector *tmpSolVectorPtr, Linear::Vector *tmpStaVectorPtr, Linear::Vector *tmpStaDerivVectorPtr, Linear::Vector *tmpStoVectorPtr, const Linear::Vector &tmpVecVectorPtr, Linear::Vector *tmpdQdxVecVectorPtr, Linear::Vector *tmpdFdxVecVectorPtr)
virtual bool getVoltageLimiterStatus()=0
virtual int getNumNoiseSources()
virtual bool initializeProblem(Linear::Vector *nextSolVectorPtr, Linear::Vector *currSolVectorPtr, Linear::Vector *lastSolVectorPtr, Linear::Vector *nextStaVectorPtr, Linear::Vector *currStaVectorPtr, Linear::Vector *lastStaVectorPtr, Linear::Vector *StateDerivVectorPtr, Linear::Vector *nextStoVectorPtr, Linear::Vector *currStoVectorPtr, Linear::Vector *lastStoVectorPtr, Linear::Vector *QVectorPtr, Linear::Vector *FVectorPtr, Linear::Vector *BVectorPtr, Linear::Vector *dFdxdVpVectorPtr, Linear::Vector *dQdxdVpVectorPtr) const =0
virtual bool startTimeStep(bool beginIntegrationFlag, double nextTimeStep, double nextTime, int currentOrder)
virtual bool isPDESystem() const
virtual double getMaxTimeStepSize()
virtual void acceptStep()
virtual void setVoltageLimiterStatus(bool voltageLimterStatus)=0
virtual bool setParam(std::string &name, double val, bool overrideOriginal=false)=0
virtual bool updateSources()
virtual bool loadDeviceErrorWeightMask(Linear::Vector *deviceMask) const
virtual bool updateState(Linear::Vector *nextSolVectorPtr, Linear::Vector *currSolVectorPtr, Linear::Vector *lastSolVectorPtr, Linear::Vector *nextStaVectorPtr, Linear::Vector *currStaVectorPtr, Linear::Vector *lastStaVectorPtr, Linear::Vector *nextStoVectorPtr, Linear::Vector *currStoVectorPtr, Linear::Vector *lastStoVectorPtr)
virtual bool loadDAEMatrices(Linear::Vector *tmpSolVectorPtr, Linear::Vector *tmpStaVectorPtr, Linear::Vector *tmpStaDerivVectorPtr, Linear::Vector *tmpStoVectorPtr, Linear::Matrix *tmpdQdxMatrixPtr, Linear::Matrix *tmpdFdxMatrixPtr)
virtual void getNoiseSources(std::vector< Xyce::Analysis::NoiseData * > &noiseDataVec)
virtual void setupNoiseSources(std::vector< Xyce::Analysis::NoiseData * > &noiseDataVec)
virtual bool getLimiterFlag()
virtual bool getInnerLoopErrorSums(std::vector< TimeIntg::TwoLevelError > &tleVec) const
virtual void setExternalSolverState(bool external_initJctFlag)
virtual void stepSuccess(Analysis::TwoLevelMode analysis)
virtual bool finishOutput() const
virtual bool getInitialQnorm(std::vector< TimeIntg::TwoLevelError > &tleVec)
virtual bool getBreakPoints(std::vector< Util::BreakPoint > &breakPointTimes) const
virtual double getParamAndReduce(Parallel::Machine comm, const std::string &name) const =0