46 #ifndef Xyce_N_DEV_DeviceInterface_h
47 #define Xyce_N_DEV_DeviceInterface_h
56 #include <N_PDS_fwd.h>
57 #include <N_UTL_fwd.h>
154 std::vector<double> & dfdpVec,
155 std::vector<double> & dqdpVec,
156 std::vector<double> & dbdpVec,
157 std::vector<int> & FindicesVec,
158 std::vector<int> & QindicesVec,
159 std::vector<int> & BindicesVec
163 bool setParam(std::string & name,
double val);
167 bool findParam(
const std::string & name)
const;
179 bool setICs (N_LAS_Vector * tmpSolVectorPtr,
180 N_LAS_Vector * tmpCurrSolVectorPtr,
181 N_LAS_Vector * tmpLastSolVectorPtr,
182 N_LAS_Vector * tmpStaVectorPtr,
183 N_LAS_Vector * tmpCurrStaVectorPtr,
184 N_LAS_Vector * tmpLasStaVectorPtr,
185 N_LAS_Vector * tmpStaDerivVectorPtr,
186 N_LAS_Vector * tmpStoVectorPtr,
187 N_LAS_Vector * tmpCurrStoVectorPtr,
188 N_LAS_Vector * tmpLasStoVectorPtr,
189 N_LAS_Vector * tmpQVectorPtr,
190 N_LAS_Vector * tmpFVectorPtr,
191 N_LAS_Vector * tmpBVectorPtr,
192 N_LAS_Vector * tmpdFdxdVpVectorPtr,
193 N_LAS_Vector * tmpdQdxdVpVectorPtr);
196 bool getBreakPoints ( std::vector<N_UTL_BreakPoint> & breakPointTimes );
206 bool loadCouplingRHS (
int iPDEDevice,
int iElectrode, N_LAS_Vector * dfdvPtr);
207 bool calcCouplingTerms (
int iSubProblem,
int iElectrode,
const N_LAS_Vector * dxdvPtr);
212 N_LAS_Vector * tmpStaVectorPtr,
213 N_LAS_Vector * tmpStaDerivVectorPtr,
214 N_LAS_Vector * tmpStoVectorPtr,
215 N_LAS_Matrix * tmpdQdxMatrixPtr,
216 N_LAS_Matrix * tmpdFdxMatrixPtr);
219 N_LAS_Vector * tmpCurrSolVectorPtr,
220 N_LAS_Vector * tmpLastSolVectorPtr,
221 N_LAS_Vector * tmpStaVectorPtr,
222 N_LAS_Vector * tmpCurrStaVectorPtr,
223 N_LAS_Vector * tmpLasStaVectorPtr,
224 N_LAS_Vector * tmpStaDerivVectorPtr,
225 N_LAS_Vector * tmpStoVectorPtr,
226 N_LAS_Vector * tmpCurrStoVectorPtr,
227 N_LAS_Vector * tmpLasStoVectorPtr,
228 N_LAS_Vector * tmpStoLeadCurrQCompVectorPtr,
229 N_LAS_Vector * tmpQVectorPtr,
230 N_LAS_Vector * tmpFVectorPtr,
231 N_LAS_Vector * tmpBVectorPtr,
232 N_LAS_Vector * tmpdFdxdVpVectorPtr,
233 N_LAS_Vector * tmpdQdxdVpVectorPtr);
236 (N_LAS_Vector * nextSolVectorPtr,
237 N_LAS_Vector * currSolVectorPtr,
238 N_LAS_Vector * lastSolVectorPtr,
239 N_LAS_Vector * nextStaVectorPtr,
240 N_LAS_Vector * currStaVectorPtr,
241 N_LAS_Vector * lastStaVectorPtr,
242 N_LAS_Vector * nextStoVectorPtr,
243 N_LAS_Vector * currStoVectorPtr,
244 N_LAS_Vector * lastStoVectorPtr
248 N_LAS_Vector * bVecImagPtr);
263 const double *
findGlobalPar(
const std::string & parName)
const;
264 double getGlobalPar(
const std::string & parName )
const;
276 (
const std::vector<std::string> & paramNames,
277 const std::vector<double> & paramVals);
298 bool dumpRestartData(
char * buf,
int bsize,
int & pos, N_PDS_Comm * comm,
bool pack );
301 bool restoreRestartData(
char * buf,
int bsize,
int & pos, N_PDS_Comm * comm,
bool pack );