46 #ifndef Xyce_N_DEV_Region_h
47 #define Xyce_N_DEV_Region_h
50 #include <N_LAS_fwd.h>
54 #include <N_UTL_NodeSymbols.h>
72 const NetlistLocation & netlist_location,
76 bool sourceOn =
true);
98 void addSource(std::string speciesName, Util::Expression *expr);
118 void setupJacStamp ( std::vector< std::vector<int> > & jacStamp, std::vector<int> & colDep,
int & firstReactant,
int & lastIndex );
120 void registerLIDs(
const std::vector<int> & intLIDVec,
const std::vector<int> & extLIDVec,
int & intIndex);
127 void registerJacLIDs (
const std::vector< std::vector<int> > & jacLIDVec,
128 const std::vector<int> &map,
129 const std::vector< std::vector<int> > &map2 );
131 void setupPointers (Linear::Matrix & dfdx, Linear::Matrix & dqdx);
304 (
const std::string & namearg,
const double temp)
307 ((variablesScaledFlag)?(D0):1.0)*
308 theReactions.getDiffusionCoefficient(namearg,temp);
320 (
int specie,
double temp)
323 ((variablesScaledFlag)?(D0):1.0)*
324 theReactions.getDiffusionCoefficient(specie,temp);
double getStateConcentration(int i)
std::vector< std::vector< double * > > dqdxConcEquAuxVarPtrs
void updateIntermediateVars(double *solVector, double *oldSolVector, double time)
ReactionNetwork & getReactionNetwork()
bool reactantExist(const std::string &name)
int getSpeciesNum(const std::string &name)
double getSpeciesVal(int i)
const InstanceName & getName()
void setupJacStamp(std::vector< std::vector< int > > &jacStamp, std::vector< int > &colDep, int &firstReactant, int &lastIndex)
double getLengthScaling()
Pure virtual class to augment a linear system.
Devices and models are each named.
bool reactantExist(std::string reactantname)
void addSource(std::string speciesName, Util::Expression *expr)
std::vector< std::vector< int > > AConcentrationEquConcentrationNodeOffsets
void createDefaultReactionNetwork(const NetlistLocation &netlist_location, const std::string &reactionSpecFile)
void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec, const std::vector< int > &map, const std::vector< std::vector< int > > &map2)
bool loadDAEdQdx(Linear::Matrix &dqdx)
std::vector< int > li_Concentrations
const std::string & getSpeciesName(int i)
void setupScalingVars(ScalingVars &sv)
std::vector< double > ddt
int getStateConcentrationLID(int i)
void setupPointers(Linear::Matrix &dfdx, Linear::Matrix &dqdx)
int getSpeciesLID(const std::string &name)
bool rateConstantsScaledFlag
const std::string & getConstantsName(int i)
const T & value(const ParameterBase &entity, const Descriptor &descriptor)
Returns the value of the parameter for the entity.
bool loadDAEdFdx(Linear::Matrix &dfdx)
void setInitialCondition(const std::string &name, const double val)
bool useScaledVariablesFlag
bool loadDAEQVector(double *qVec)
std::vector< double > theConstantConcentrations
void addMasterSource(std::string speciesName)
void augmentNameMap(std::map< int, std::string > &intNameMap, DeviceInstance &di)
void setSimTime(double time)
std::vector< std::vector< int > > AConcentrationEquAuxNodeOffsets
void setSimTime(double time)
double getDiffusionCoefficient(const std::string &name, double temp)
bool updateSecondaryState(double *staDeriv)
const DeviceOptions & devOptions
const std::string & getSpeciesName(int i)
std::vector< std::vector< double > > tempAuxJac
const SolverState & solState
void setMasterSourceValue(double msv)
bool loadDAEdFdxdV(double *dfdxdv, double vdiff)
void loadNodeSymbols(Util::SymbolTable &symbol_table, const DeviceInstance &device_instance)
bool constantExist(const std::string &name)
Region(const NetlistLocation &netlist_location, RegionData &rd, const DeviceOptions &devOp, const SolverState &solst, bool sourceOn=true)
void setConstantConcentration(const std::string &constName, double value)
std::vector< double > tempConcentrations
std::vector< double > initialConcentrations
bool constantExist(std::string constantname)
std::vector< std::vector< double * > > dqdxConcEquConcVarPtrs
void scaleRateConstants()
std::vector< std::vector< double * > > dfdxConcEquAuxVarPtrs
std::vector< std::vector< double * > > dfdxConcEquConcVarPtrs
std::vector< std::vector< double > > tempJac
bool loadDAEFVector(double *fVec)
int getSpeciesNum(const std::string &name)
void initializeReactionNetwork(ScalingVars &sv, MaterialLayer *material, double Temp)
double getConstantsVal(int i)
double getConcentrationScaling()
void loadErrorWeightMask(Linear::Vector &mask)
ReactionNetwork theReactions
const std::string & getConstantsName(int i)
void setRateConstants(double T)
void unscaleRateConstants()
int getConstantNum(const std::string &name)
std::vector< int > li_state_Concentrations
void setMasterSourceValue(double msv)
void registerStateLIDs(const std::vector< int > &staLIDVecRef, int &i)
std::vector< double > tempConcentrationDerivs
void registerLIDs(const std::vector< int > &intLIDVec, const std::vector< int > &extLIDVec, int &intIndex)