46 #ifndef Xyce_N_DEV_DeviceInterface_h
47 #define Xyce_N_DEV_DeviceInterface_h
55 #include <Teuchos_RefCountPtr.hpp>
56 using Teuchos::RefCountPtr;
61 #include <N_UTL_fwd.h>
64 #include <N_UTL_Misc.h>
65 #include <N_UTL_BreakPoint.h>
66 #include <N_UTL_Param.h>
68 #include <N_PDS_Manager.h>
169 bool setParam(std::string & name,
double val);
173 bool findParam(
const std::string & name)
const;
175 bool getVsrcLIDs(std::string & srcName,
int & li_Pos,
int & li_Neg,
int & li_Bra);
187 bool setICs (N_LAS_Vector * tmpSolVectorPtr,
188 N_LAS_Vector * tmpCurrSolVectorPtr,
189 N_LAS_Vector * tmpLastSolVectorPtr,
190 N_LAS_Vector * tmpStaVectorPtr,
191 N_LAS_Vector * tmpCurrStaVectorPtr,
192 N_LAS_Vector * tmpLasStaVectorPtr,
193 N_LAS_Vector * tmpStaDerivVectorPtr,
194 N_LAS_Vector * tmpStoVectorPtr,
195 N_LAS_Vector * tmpCurrStoVectorPtr,
196 N_LAS_Vector * tmpLasStoVectorPtr,
197 N_LAS_Vector * tmpQVectorPtr,
198 N_LAS_Vector * tmpFVectorPtr,
199 N_LAS_Vector * tmpdFdxdVpVectorPtr,
200 N_LAS_Vector * tmpdQdxdVpVectorPtr);
206 bool getBreakPoints ( std::vector<N_UTL_BreakPoint> & breakPointTimes );
211 bool getADCMap(std::map<std::string,std::map<std::string,double> >& ADCMap);
213 std::map<std::string,std::vector<std::pair<double,double> >* >
const & timeVoltageUpdateMap);
215 std::map<std::string,std::vector<std::pair<double,double> > > & timeVoltageUpdateMap);
217 bool setADCWidths(std::map<std::string,int>
const & ADCWidthMap);
221 std::vector<std::string> & deviceNames);
226 std::vector<int> & cW);
228 std::vector<std::string> & cN);
230 const std::vector<std::vector<double> > & cM);
231 bool xygraSetK (
const std::string & deviceName,
232 const std::vector<std::vector<double> > & kM,
235 const std::vector<double> & sV,
238 std::vector< double > & vN);
244 bool loadCouplingRHS (
int iPDEDevice,
int iElectrode, N_LAS_Vector * dfdvPtr);
245 bool calcCouplingTerms (
int iSubProblem,
int iElectrode,
const N_LAS_Vector * dxdvPtr);
250 N_LAS_Vector * tmpStaVectorPtr,
251 N_LAS_Vector * tmpStaDerivVectorPtr,
252 N_LAS_Vector * tmpStoVectorPtr,
253 N_LAS_Matrix * tmpdQdxMatrixPtr,
254 N_LAS_Matrix * tmpdFdxMatrixPtr);
257 N_LAS_Vector * tmpCurrSolVectorPtr,
258 N_LAS_Vector * tmpLastSolVectorPtr,
259 N_LAS_Vector * tmpStaVectorPtr,
260 N_LAS_Vector * tmpCurrStaVectorPtr,
261 N_LAS_Vector * tmpLasStaVectorPtr,
262 N_LAS_Vector * tmpStaDerivVectorPtr,
263 N_LAS_Vector * tmpStoVectorPtr,
264 N_LAS_Vector * tmpCurrStoVectorPtr,
265 N_LAS_Vector * tmpLasStoVectorPtr,
266 N_LAS_Vector * tmpStoLeadCurrQCompVectorPtr,
267 N_LAS_Vector * tmpQVectorPtr,
268 N_LAS_Vector * tmpFVectorPtr,
269 N_LAS_Vector * tmpdFdxdVpVectorPtr,
270 N_LAS_Vector * tmpdQdxdVpVectorPtr);
273 (N_LAS_Vector * nextSolVectorPtr,
274 N_LAS_Vector * currSolVectorPtr,
275 N_LAS_Vector * lastSolVectorPtr,
276 N_LAS_Vector * nextStaVectorPtr,
277 N_LAS_Vector * currStaVectorPtr,
278 N_LAS_Vector * lastStaVectorPtr,
279 N_LAS_Vector * nextStoVectorPtr,
280 N_LAS_Vector * currStoVectorPtr,
281 N_LAS_Vector * lastStoVectorPtr
285 N_LAS_Vector * bVecImagPtr);
300 const double *
findGlobalPar(
const std::string & parName)
const;
301 double getGlobalPar(
const std::string & parName )
const;
311 void setupExternalDevices();
315 (
const std::vector<std::string> & paramNames,
316 const std::vector<double> & paramVals);
337 bool dumpRestartData(
char * buf,
int bsize,
int & pos, N_PDS_Comm * comm,
bool pack );
340 bool restoreRestartData(
char * buf,
int bsize,
int & pos, N_PDS_Comm * comm,
bool pack );