74 #ifndef Xyce_LOA_Loader_H
75 #define Xyce_LOA_Loader_H
84 #include <N_LAS_fwd.h>
86 #include <N_UTL_fwd.h>
110 Linear::Vector * tmpSolVectorPtr,
111 Linear::Vector * tmpStaVectorPtr,
112 Linear::Vector * tmpStaDerivVectorPtr,
113 Linear::Vector * tmpStoVectorPtr,
114 Linear::Matrix * tmpdQdxMatrixPtr,
115 Linear::Matrix * tmpdFdxMatrixPtr)
122 Linear::Vector * nextSolVectorPtr,
123 Linear::Vector * currSolVectorPtr,
124 Linear::Vector * lastSolVectorPtr,
125 Linear::Vector * nextStaVectorPtr,
126 Linear::Vector * currStaVectorPtr,
127 Linear::Vector * lastStaVectorPtr,
128 Linear::Vector * StaDerivVectorPtr,
129 Linear::Vector * nextStoVectorPtr,
130 Linear::Vector * currStoVectorPtr,
131 Linear::Vector * lastStoVectorPtr,
132 Linear::Vector * stoLeadCurrQVectorPtr,
133 Linear::Vector * nextLeadFVectorPtr,
134 Linear::Vector * currLeadFVectorPtr,
135 Linear::Vector * lastLeadFVectorPtr,
136 Linear::Vector * nextLeadQVectorPtr,
137 Linear::Vector * nextJunctionVVectorPtr,
138 Linear::Vector * currJunctionVVectorPtr,
139 Linear::Vector * lastJunctionVVectorPtr,
140 Linear::Vector * QVectorPtr,
141 Linear::Vector * FVectorPtr,
142 Linear::Vector * BVectorPtr,
143 Linear::Vector * dFdxdVpVectorPtr,
144 Linear::Vector * dQdxdVpVectorPtr)
157 Linear::Vector * nextSolVectorPtr,
158 Linear::Vector * currSolVectorPtr,
159 Linear::Vector * lastSolVectorPtr,
160 Linear::Vector * nextStaVectorPtr,
161 Linear::Vector * currStaVectorPtr,
162 Linear::Vector * lastStaVectorPtr,
163 Linear::Vector * StateDerivVectorPtr,
164 Linear::Vector * nextStoVectorPtr,
165 Linear::Vector * currStoVectorPtr,
166 Linear::Vector * lastStoVectorPtr,
167 Linear::Vector * QVectorPtr,
168 Linear::Vector * FVectorPtr,
169 Linear::Vector * BVectorPtr,
170 Linear::Vector * dFdxdVpVectorPtr,
171 Linear::Vector * dQdxdVpVectorPtr)
const = 0;
177 Linear::Vector * tmpSolVectorPtr,
178 Linear::Vector * tmpStaVectorPtr,
179 Linear::Vector * tmpStaDerivVectorPtr,
180 Linear::Vector * tmpStoVectorPtr,
181 const Linear::Vector & tmpVecVectorPtr,
182 Linear::Vector * tmpdQdxVecVectorPtr,
183 Linear::Vector * tmpdFdxVecVectorPtr)
189 Linear::Vector * nextSolVectorPtr,
190 Linear::Vector * currSolVectorPtr,
191 Linear::Vector * lastSolVectorPtr,
192 Linear::Vector * nextStaVectorPtr,
193 Linear::Vector * currStaVectorPtr,
194 Linear::Vector * lastStaVectorPtr,
195 Linear::Vector * nextStoVectorPtr,
196 Linear::Vector * currStoVectorPtr,
197 Linear::Vector * lastStoVectorPtr)
203 Linear::Vector * bVecRealPtr,
204 Linear::Vector * bVecImagPtr)
237 virtual bool setParam(std::string & name,
double val,
bool overrideOriginal =
false) = 0;
272 virtual bool getBreakPoints(std::vector< Util::BreakPoint > & breakPointTimes)
const
virtual bool getInnerLoopErrorSums(std::vector< TimeIntg::TwoLevelError > &tleVec)
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 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 int getNumNoiseSources()
virtual bool startTimeStep()
virtual double getMaxTimeStepSize()
virtual void acceptStep()
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 bool getDoubleDCOPFlag() const
virtual void setupNoiseSources(std::vector< Xyce::Analysis::NoiseData * > &noiseDataVec)
virtual bool getLimiterFlag()
virtual double getParamAndReduce(const std::string &name) const =0
virtual void stepSuccess(Analysis::TwoLevelMode analysis)
virtual bool finishOutput() const
virtual void setExternalSolverState(const Device::SolverState &ss)
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 getInitialQnorm(std::vector< TimeIntg::TwoLevelError > &tleVec)
virtual bool getBreakPoints(std::vector< Util::BreakPoint > &breakPointTimes) const
virtual bool output() const