52 #include <Xyce_config.h>
66 #include <N_LAS_Vector.h>
67 #include <N_LAS_Matrix.h>
68 #include <N_LAS_System.h>
69 #include <N_LAS_Builder.h>
88 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
91 if (
getSolverState().dcopFlag) Xyce::dout() <<
" DCOP load" <<std::endl;
92 else Xyce::dout() <<
" Transient load" <<std::endl;
115 std::string msg =
"Instance::loadDAEFVector."
116 "Invalid coupling Mode";
117 N_ERH_ErrorMgr::report ( N_ERH_ErrorMgr::DEV_FATAL,msg);
121 return (bsuccess && bs1);
169 bool bsuccess =
true;
184 bool bsuccess =
true;
187 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
190 if (
getSolverState().dcopFlag) Xyce::dout() <<
" DCOP load" <<std::endl;
191 else Xyce::dout() <<
" Transient load" <<std::endl;
214 std::string msg =
"Instance::loadDAEQVector."
215 "Invalid coupling Mode";
216 N_ERH_ErrorMgr::report ( N_ERH_ErrorMgr::DEV_FATAL,msg);
220 return (bsuccess && bs1);
234 bool bsuccess =
true;
255 bsuccess = bsuccess && bs1;
258 bsuccess = bsuccess && bs1;
283 bool bsuccess =
true;
320 Report::DevelFatal().in(
"Instance::loadDAEdFdx") <<
"Invalid coupling Mode" <<
numElectrodes;
353 bool bsuccess =
true;
364 bsuccess = bsuccess && bs1;
369 bsuccess = bsuccess && bs1;
373 bsuccess = bsuccess && bs1;
388 bool bsuccess =
true;
390 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
392 Xyce::dout() << std::endl;
393 Xyce::dout() << section_divider << std::endl;
394 Xyce::dout() <<
"Instance::loadDAEdFdxExtractedConductance" << std::endl;
398 #if 0 // Not yet implemented -- commented out to remove warnings
445 Report::DevelFatal().in(
"Instance::loadDAEdQdx") <<
"Invalid coupling Mode" <<
numElectrodes;
462 bool bsuccess =
true;
467 int numCol =
cols.size();
483 for (j=0;j<numCol;++j) {
cols[j] = -1;
vals[j] = 0.0; }
491 if (Nrow != -1 && count > 0)
493 bs1 = QMatrix.sumIntoRow (Nrow,count,&
vals[0],&
cols[0]);
494 bsuccess = bsuccess && bs1;
498 Report::DevelFatal() <<
"OOOPS 1!";
502 for (j=0;j<numCol;++j) {
cols[j] = -1;
vals[j] = 0.0; }
510 if (Prow != -1 && count > 0)
512 bs1 = QMatrix.sumIntoRow (Prow,count,&
vals[0],&
cols[0]);
513 bsuccess = bsuccess && bs1;
517 Report::DevelFatal() <<
"OOOPS 2!";
553 bool bsuccess =
true;
bool loadDAEFExtractedConductance()
std::vector< double > & vals
bool loadDAEdFdxDDFormulation()
Linear::Vector * daeQVectorPtr
Pure virtual class to augment a linear system.
bool loadMatKCLDDForm(Linear::Matrix *matPtr)
std::vector< int > Nrowarray
std::vector< int > boundarySten
std::vector< std::vector< int > > li_PoffsetArray
std::vector< std::vector< int > > Ncolarray
std::vector< int > li_Nrowarray
std::vector< double > nnVec
bool loadDAEdFdxExtractedConductance()
bool loadDAEdQdxDDFormulation()
bool loadVecNLPoisson(double scalar, Linear::Vector *vecPtr)
bool loadDAEFNonlinPoisson()
bool pdTerminalCurrents()
Linear::Matrix * dFdxMatrixPtr
bool loadDAEdFdxNonlinPoisson()
bool loadVecDDForm(double scalar, double dndtScalar, Linear::Vector *vecPtr)
const SolverState & getSolverState() const
std::vector< std::vector< int > > Pcolarray
bool loadDAEFDDFormulation()
std::vector< double > npVec
Linear::Vector * daeFVectorPtr
bool loadMatNLPoisson(Linear::Matrix *matPtr)
bool loadMatCktTrivial(Linear::Matrix *matPtr)
std::vector< int > li_Prowarray
const ExternData & extData
std::vector< int > Prowarray
bool loadMatDDForm(double dndtScalar, Linear::Matrix *matPtr)
Linear::Matrix * dQdxMatrixPtr
bool loadDAEQDDFormulation()
std::vector< int > & cols
bool calcTerminalCurrents()
bool loadDAEQExtractedConductance()
std::vector< std::vector< int > > li_NoffsetArray
bool loadDAEdQdxExtractedConductance()