46 #ifndef Xyce_N_DEV_MembraneUserDefined_h
47 #define Xyce_N_DEV_MembraneUserDefined_h
49 #include <Teuchos_RCP.hpp>
56 #include <N_UTL_Expression.h>
72 std::vector<std::string> & currentEqus, std::vector<std::string> & indepVars, std::vector<std::string> & fEqs,
73 std::vector<std::string> & qEqs, std::vector<std::string> & extraFunctions, std::vector<std::string> & extraParameters);
77 void setJacStamp(
int numExtVars,
int segmentNumber,
int vOffset, std::vector< std::vector< int > > & segmentJacStamp );
78 void loadDAEQVector(
int segmentNumber, std::vector< int > & lidIndexVector, Linear::Vector * solnVecPtr, Linear::Vector * daeQVecPtr,
double segArea);
79 void loadDAEFVector(
int segmentNumber, std::vector< int > & lidIndexVector, Linear::Vector * solnVecPtr, Linear::Vector * daeFVecPtr,
double segArea);
80 void loadDAEdQdx(
int segmentNumber,
int vOffset, std::vector< int > & lidIndexVector, std::vector< std::vector< int > > & jacobianOffsets, Linear::Vector * solnVecPtr, Linear::Matrix * dQdxMatPtr,
double segArea);
81 void loadDAEdFdx(
int segmentNumber,
int vOffset, std::vector< int > & lidIndexVector, std::vector< std::vector< int > > & jacobianOffsets, Linear::Vector * solnVecPtr, Linear::Matrix * dFdxMatPtr,
double segArea);
144 void convertSymbolsToVars( std::vector<RCP<Util::Expression> > & expRCP_, std::vector< std::vector<std::string> > & expNames, std::vector< std::vector<double> > & expValsVec );
std::vector< std::vector< std::string > > currentEqusVarNames_
std::vector< std::vector< double > > currentEqusVarValues_
std::vector< std::string > extraParameters_
std::vector< std::string > fEqs_
std::vector< double > myVarVals
std::map< int, std::string > offsetToIndepVar_
std::vector< std::vector< std::string > > qEqsEqusVarNames_
Pure virtual class to augment a linear system.
void substituteParameters(std::vector< RCP< Util::Expression > > &expRCP_)
void convertSymbolsToVars(std::vector< RCP< Util::Expression > > &expRCP_, std::vector< std::vector< std::string > > &expNames, std::vector< std::vector< double > > &expValsVec)
std::vector< std::vector< double > > fEqsEqusVarValues_
std::vector< RCP< Util::Expression > > extraFunctionsExpRCP_
std::vector< RCP< Util::Expression > > currentEqusExpRCP_
std::vector< RCP< Util::Expression > > qEqsExpRCP_
std::vector< std::vector< double > > qEqsEqusVarValues_
void loadDAEdQdx(int segmentNumber, int vOffset, std::vector< int > &lidIndexVector, std::vector< std::vector< int > > &jacobianOffsets, Linear::Vector *solnVecPtr, Linear::Matrix *dQdxMatPtr, double segArea)
Util::Expression * Exp_ptr
std::vector< int > funcNumArgs_
std::vector< RCP< Util::Expression > > fEqsExpRCP_
std::vector< double > expVarDerivs
void loadDAEFVector(int segmentNumber, std::vector< int > &lidIndexVector, Linear::Vector *solnVecPtr, Linear::Vector *daeFVecPtr, double segArea)
std::vector< RCP< Util::Expression > > indepVarsExpRCP_
MembraneUserDefined(const SolverState &ss1, double cMem, double gMem, double vRest, std::vector< std::string > ¤tEqus, std::vector< std::string > &indepVars, std::vector< std::string > &fEqs, std::vector< std::string > &qEqs, std::vector< std::string > &extraFunctions, std::vector< std::string > &extraParameters)
std::vector< std::string > indepVars_
std::vector< RCP< Util::Expression > > funcExpRCP_
std::vector< std::string > extraFunctions_
void convertStringsToExpression(std::vector< std::string > &stringInput, std::vector< RCP< Util::Expression > > &expRCPOut)
void loadDAEQVector(int segmentNumber, std::vector< int > &lidIndexVector, Linear::Vector *solnVecPtr, Linear::Vector *daeQVecPtr, double segArea)
std::vector< std::vector< std::string > > fEqsEqusVarNames_
std::list< std::string > evnList
std::vector< std::string > paramNames_
void loadDAEdFdx(int segmentNumber, int vOffset, std::vector< int > &lidIndexVector, std::vector< std::vector< int > > &jacobianOffsets, Linear::Vector *solnVecPtr, Linear::Matrix *dFdxMatPtr, double segArea)
std::vector< std::string > funcNames_
std::vector< double > paramValues_
std::vector< std::map< std::string, int > > systemJacOffset_
std::vector< std::string > userDefinedNames_
std::vector< RCP< Util::Expression > > extraParametersExpRCP_
std::vector< std::string > qEqs_
std::vector< std::string > currentEqus_
std::vector< double > ddtVals
void substituteFunctions(std::vector< RCP< Util::Expression > > &expRCP_)
void setJacStamp(int numExtVars, int segmentNumber, int vOffset, std::vector< std::vector< int > > &segmentJacStamp)
void consolidateExpressions()
void updateSecondaryState(double *staDerivVec)
std::map< std::string, int > indepVarOffset_