47 #include <Xyce_config.h>
54 #include <N_LAS_Builder.h>
55 #include <N_LAS_Matrix.h>
56 #include <N_LAS_MultiVector.h>
57 #include <N_LAS_System.h>
58 #include <N_LAS_Vector.h>
60 #include <N_UTL_fwd.h>
61 #include <N_UTL_DeleteList.h>
62 #include <N_UTL_Diagnostic.h>
63 #include <N_UTL_FeatureTest.h>
64 #include <N_UTL_MachDepParams.h>
81 const Linear::System & linear_system,
82 const Linear::Builder & linear_system_builder)
84 nextSolPtrSwitched_(false),
87 solutionSize(solution_size),
88 stateSize(state_size),
94 tmpLeadCurrentVectorPtr(0),
102 savedNextSolutionPtr(0),
111 currStoreLeadCurrQPtr(0),
112 lastStoreLeadCurrQPtr(0),
113 oldeStoreLeadCurrQPtr(0),
114 nextStoreLeadCurrQPtr(0),
115 currStoreLeadCurrQDerivPtr(0),
116 lastStoreLeadCurrQDerivPtr(0),
117 oldeStoreLeadCurrQDerivPtr(0),
118 nextStoreLeadCurrQDerivPtr(0),
119 currLeadCurrentPtr(0),
120 lastLeadCurrentPtr(0),
121 oldLeadCurrentPtr(0),
122 nextLeadCurrentPtr(0),
123 currLeadDeltaVPtr(0),
124 lastLeadDeltaVPtr(0),
126 nextLeadDeltaVPtr(0),
127 currLeadCurrentQPtr(0),
128 lastLeadCurrentQPtr(0),
129 oldLeadCurrentQPtr(0),
130 nextLeadCurrentQPtr(0),
131 currLeadCurrentQDerivPtr(0),
132 lastLeadCurrentQDerivPtr(0),
133 oldLeadCurrentQDerivPtr(0),
134 nextLeadCurrentQDerivPtr(0),
135 currSolutionDerivPtr(0),
136 lastSolutionDerivPtr(0),
137 oldeSolutionDerivPtr(0),
138 nextSolutionDerivPtr(0),
139 currStateDerivPtr(0),
140 lastStateDerivPtr(0),
141 oldeStateDerivPtr(0),
142 nextStateDerivPtr(0),
144 currSolutionDivDiffPtr(0),
145 lastSolutionDivDiffPtr(0),
146 oldeSolutionDivDiffPtr(0),
147 nextSolutionDivDiffPtr(0),
148 currStateDivDiffPtr(0),
149 lastStateDivDiffPtr(0),
150 oldeStateDivDiffPtr(0),
151 nextStateDivDiffPtr(0),
158 newtonCorrectionPtr(0),
159 deviceErrorWeightMask_(0),
178 leadCurrentpn0Ptr(0),
179 leadCurrentQn0Ptr(0),
180 leadCurrentQpn0Ptr(0),
183 qNewtonCorrectionPtr(0),
184 sNewtonCorrectionPtr(0),
185 stoNewtonCorrectionPtr(0),
186 stoLeadCurrQNewtonCorrectionPtr(0),
187 leadCurrentNewtonCorrectionPtr(0),
188 leadCurrentQNewtonCorrectionPtr(0),
189 leadDeltaVNewtonCorrectionPtr(0),
204 xn0Ptr = linear_system_builder.createVector();
213 currStatePtr = linear_system_builder.createStateVector();
214 lastStatePtr = linear_system_builder.createStateVector();
215 nextStatePtr = linear_system_builder.createStateVector();
218 currStorePtr = linear_system_builder.createStoreVector();
219 lastStorePtr = linear_system_builder.createStoreVector();
220 nextStorePtr = linear_system_builder.createStoreVector();
269 errWtVecPtr = linear_system_builder.createVector();
300 for (
int i = 0; i < max_order + 1; ++i)
302 xHistory.push_back(linear_system_builder.createVector());
303 qHistory.push_back(linear_system_builder.createVector());
304 sHistory.push_back(linear_system_builder.createStateVector());
305 stoHistory.push_back(linear_system_builder.createStoreVector());
313 qn0Ptr = linear_system_builder.createVector();
314 qpn0Ptr = linear_system_builder.createVector();
315 sn0Ptr = linear_system_builder.createStateVector();
316 spn0Ptr = linear_system_builder.createStateVector();
317 ston0Ptr = linear_system_builder.createStoreVector();
318 stopn0Ptr = linear_system_builder.createStoreVector();
319 stoQn0Ptr = linear_system_builder.createStoreVector();
320 stoQpn0Ptr = linear_system_builder.createStoreVector();
338 delta_x = linear_system_builder.createVector();
339 delta_q = linear_system_builder.createVector();
342 tmpXn0APtr = linear_system_builder.createVector();
343 tmpXn0BPtr = linear_system_builder.createVector();
521 for (
int ip=0;ip<numParams;++ip)
648 for (
int ip=0;ip<numParams;++ip)
677 for (
int i = 0; i <
maxOrder + 1; ++i)
722 if (DEBUG_TIME && isActive(Diag::TIME_HISTORY))
723 Xyce::dout() <<
"\nDataStore::setConstantHistory" << std::endl;
819 double absolute_error_tolerance,
820 double relative_error_tolerance)
874 if (DEBUG_TIME && isActive(Diag::TIME_STEP))
876 Xyce::dout() <<
"\nDataStore::updateSolDataArrays " << std::endl;
958 for (
int ip=0;ip<iparamSizeQ;++ip)
967 for (
int ip=0;ip<iparamSizeQderiv;++ip)
976 for (
int ip=0;ip<iparamSizeX;++ip)
985 for (
int ip=0;ip<iparamSizeQX;++ip)
995 for (
int ip=0;ip<iparamSizeQXd;++ip)
1036 if (DEBUG_TIME && isActive(Diag::TIME_STEP))
1037 Xyce::dout() <<
"\nDataStore::updateStateDataArrays " << std::endl;
1116 << Xyce::section_divider << std::endl
1118 <<
" Solution Vectors:\n Current Last Olde Error" << std::endl;
1125 os << Xyce::section_divider << std::endl;
1199 for (
int ip=0;ip<iparamSizeQ;++ip)
1208 for (
int ip=0;ip<iparamSizeQ;++ip)
1217 for (
int ip=0;ip<iparamSizeX;++ip)
1226 for (
int ip=0;ip<iparamSizeQX;++ip)
1236 for (
int ip=0;ip<iparamSizeQX;++ip)
1256 os << Xyce::subsection_divider << std::endl
1257 <<
" Predicted Solution:" << std::endl;
1262 os << Xyce::subsection_divider << std::endl;
1275 os << Xyce::subsection_divider << std::endl
1276 <<
" Predicted Derivative:" << std::endl;
1281 os << Xyce::subsection_divider << std::endl;
1303 double errorNorm = 0.0;
1305 double sum = errorNorm*errorNorm;
1360 const std::list<IndexPair> & solGIDList,
1361 const std::list<IndexPair> & staGIDList)
1408 bool bsuccess =
true;
1486 if (DEBUG_TIME && isActive(Diag::TIME_HISTORY))
1487 Xyce::dout() <<
"\nDataStore::setZeroHistory" << std::endl;
1556 int sizeOfHistory =
xHistory.size();
1557 for (
int i = 0; i < sizeOfHistory; ++i)
1571 std::vector<Linear::Vector *> dfdp =
dfdpHistory[ip];
1572 std::vector<Linear::Vector *> dqdp =
dqdpHistory[ip];
1573 std::vector<Linear::Vector *> dbdp =
dbdpHistory[ip];
1574 std::vector<Linear::Vector *> dXdp =
dXdpHistory[ip];
1577 dfdp[i]->putScalar(0.0);
1578 dqdp[i]->putScalar(0.0);
1579 dbdp[i]->putScalar(0.0);
1580 dXdp[i]->putScalar(0.0);
1581 dQdxdXdp[i]->putScalar(0.0);
1612 if (DEBUG_TIME && isActive(Diag::TIME_ERROR))
1614 Xyce::dout() << Xyce::section_divider << std::endl
1615 <<
"DataStore::setErrorWtVector" << std::endl << std::endl
1616 <<
" errorWtVector currSolution relErrorTol absErrorTol" << std::endl
1617 <<
" -------------- -------------- -------------- --------------" << std::endl;
1622 double currMaxValue = 0.0;
1627 if (DEBUG_TIME && isActive(Diag::TIME_ERROR))
1629 std::vector<int> index(1, -1);
1631 Xyce::dout() <<
"currMaxValue = " << currMaxValue <<
", currMaxValueIndex = " << index[0] << std::endl;
1638 if (DEBUG_TIME && isActive(Diag::TIME_ERROR))
1640 double currMaxValue = 0.0;
1642 std::vector<int> index(1, -1);
1644 Xyce::dout() <<
"currMaxValueoldLte = " << currMaxValue <<
", currMaxValueIndex = " << index[0] << std::endl;
1651 for (std::vector<int>::const_iterator it =
indexVVars.begin(), end =
indexVVars.end(); it != end; ++it)
1654 (*errWtVecPtr)[i] = (*relErrTolPtr)[i] * (*errWtVecPtr)[i] + (*absErrTolPtr)[i];
1655 (*qErrWtVecPtr)[i] = (*relErrTolPtr)[i] * (*qErrWtVecPtr)[i] + (*absErrTolPtr)[i];
1665 (*errWtVecPtr)[i] = (*qErrWtVecPtr)[i] = Util::MachineDependentParams::MachineBig();
1669 if (DEBUG_TIME && isActive(Diag::TIME_ERROR))
1672 Xyce::dout() << (*errWtVecPtr)[k] <<
" "
1673 << (*currSolutionPtr)[k] <<
" "
1674 << (*relErrTolPtr)[k] <<
" "
1675 << (*absErrTolPtr)[k] <<
" " << std::endl;
1677 Xyce::dout() <<
"" << std::endl
1678 << Xyce::section_divider << std::endl;
1692 double errorNorm = 0.0, qErrorNorm = 0.0;
1696 if (DEBUG_TIME && isActive(Diag::TIME_ERROR))
1698 Xyce::dout() <<
"DataStore::errorNorm = " << errorNorm << std::endl;
1699 Xyce::dout() <<
"DataStore::qErrorNorm = " << qErrorNorm << std::endl;
1711 double totalSize = upperSize;
1712 double totalSum = errorNorm*errorNorm*upperSize;
1713 double totalQSum = qErrorNorm*qErrorNorm*upperSize;
1715 for (
int i=0;i<sumSize;++i)
1721 if (DEBUG_TIME && isActive(Diag::TIME_ERROR))
1723 Xyce::dout() <<
"DSdae:innerSum["<<i<<
"] = " << innerSum <<std::endl;
1724 Xyce::dout() <<
"DSdae:innerQSum["<<i<<
"] = " << innerQSum <<std::endl;
1725 Xyce::dout() <<
"DSdae:innerSize["<<i<<
"] = " << innerSize <<std::endl;
1728 totalSize += innerSize;
1729 totalSum += innerSum;
1730 totalQSum += innerQSum;
1733 double recip = 1.0/totalSize;
1734 errorNorm = sqrt(recip*totalSum);
1735 qErrorNorm = sqrt(recip*totalQSum);
1737 if (DEBUG_TIME && isActive(Diag::TIME_ERROR))
1739 Xyce::dout() <<
"DSdae:upperSize = " << upperSize << std::endl;
1740 Xyce::dout() <<
"DSdae:totalSum = " << totalSum << std::endl;
1741 Xyce::dout() <<
"DSdae:totalQSum = " << totalQSum << std::endl;
1742 Xyce::dout() <<
"DSdae:totalSize = " << totalSize << std::endl;
1743 Xyce::dout() <<
"DSdae:2-level errorNorm = " << errorNorm << std::endl;
1744 Xyce::dout() <<
"DSdae:2-level qErrorNorm = " << qErrorNorm << std::endl;
1748 #ifndef Xyce_USE_Q_NORM
1751 errorNorm = sqrt(0.5*errorNorm*errorNorm+0.5*qErrorNorm*qErrorNorm);
1776 double qErrorNorm = 0.0;
1778 double sum = qErrorNorm*qErrorNorm;
1875 if (currentOrder<maxOrder)
1929 double errorNorm = 0.0;
1939 double totalSize = upperSize;
1940 double totalSum = errorNorm*errorNorm*upperSize;
1942 for (
int i=0;i<sumSize;++i)
1947 totalSize += innerSize;
1948 totalSum += innerSum;
1951 double recip = 1.0/totalSize;
1952 errorNorm = sqrt(recip*totalSum);
1968 double errorNorm = 0.0;
1978 double totalSize = upperSize;
1979 double totalSum = errorNorm*errorNorm*upperSize;
1981 for (
int i=0;i<sumSize;++i)
1986 totalSize += innerSize;
1987 totalSum += innerSum;
1990 double recip = 1.0/totalSize;
1991 errorNorm = sqrt(recip*totalSum);
2007 double errorNorm = 0.0;
2017 double totalSize = upperSize;
2018 double totalSum = errorNorm*errorNorm*upperSize;
2020 for (
int i=0;i<sumSize;++i)
2025 totalSize += innerSize;
2026 totalSum += innerSum;
2029 double recip = 1.0/totalSize;
2030 errorNorm = sqrt(recip*totalSum);
2046 double errorNorm = 0.0;
2056 double totalSize = upperSize;
2057 double totalSum = errorNorm*errorNorm*upperSize;
2059 for (
int i=0;i<sumSize;++i)
2064 totalSize += innerSize;
2065 totalSum += innerSum;
2068 double recip = 1.0/totalSize;
2069 errorNorm = sqrt(recip*totalSum);
2106 if (DEBUG_TIME && isActive(Diag::TIME_ERROR))
2108 Xyce::dout() <<
"\n newtonCorrection: \n" << std::endl;
2110 Xyce::dout() << std::endl;
2111 Xyce::dout() <<
"\n qNewtonCorrection: \n" << std::endl;
2113 Xyce::dout() <<
"\n sNewtonCorrection: \n" << std::endl;
2115 Xyce::dout() << std::endl;
2130 std::vector<double> & varData )
2144 varData[i++] =
errWtVecPtr->getElementByGlobalIndex( gid );
2145 varData[i++] =
absErrTolPtr->getElementByGlobalIndex( gid );
2146 varData[i++] =
relErrTolPtr->getElementByGlobalIndex( gid );
2148 varData[i++] =
qErrWtVecPtr->getElementByGlobalIndex ( gid );
2149 varData[i++] =
daeQVectorPtr->getElementByGlobalIndex ( gid );
2150 varData[i++] =
daeFVectorPtr->getElementByGlobalIndex ( gid );
2151 varData[i++] =
daeBVectorPtr->getElementByGlobalIndex ( gid );
2152 varData[i++] =
xn0Ptr->getElementByGlobalIndex ( gid );
2153 varData[i++] =
qn0Ptr->getElementByGlobalIndex ( gid );
2154 varData[i++] =
qpn0Ptr->getElementByGlobalIndex ( gid );
2169 std::vector<double> & varData )
2172 varData.resize( 14 );
2176 varData[i++] =
currStatePtr->getElementByGlobalIndex( gid );
2177 varData[i++] =
lastStatePtr->getElementByGlobalIndex( gid );
2178 varData[i++] =
nextStatePtr->getElementByGlobalIndex( gid );
2185 varData[i++] =
sn0Ptr->getElementByGlobalIndex( gid );
2186 varData[i++] =
spn0Ptr->getElementByGlobalIndex( gid );
2200 std::vector<double> & varData )
2203 varData.resize( 6 );
2205 varData[i++] =
currStorePtr->getElementByGlobalIndex( gid );
2206 varData[i++] =
lastStorePtr->getElementByGlobalIndex( gid );
2207 varData[i++] =
nextStorePtr->getElementByGlobalIndex( gid );
2208 varData[i++] =
ston0Ptr->getElementByGlobalIndex( gid );
2209 varData[i++] =
stopn0Ptr->getElementByGlobalIndex( gid );
2222 const std::vector<double> & varData )
2235 errWtVecPtr->setElementByGlobalIndex ( gid, varData[i++] );
2236 absErrTolPtr->setElementByGlobalIndex ( gid, varData[i++] );
2237 relErrTolPtr->setElementByGlobalIndex ( gid, varData[i++] );
2239 qErrWtVecPtr->setElementByGlobalIndex ( gid, varData[i++] );
2240 daeQVectorPtr->setElementByGlobalIndex ( gid, varData[i++] );
2241 daeFVectorPtr->setElementByGlobalIndex ( gid, varData[i++] );
2242 daeBVectorPtr->setElementByGlobalIndex ( gid, varData[i++] );
2243 xn0Ptr->setElementByGlobalIndex ( gid, varData[i++] );
2244 qn0Ptr->setElementByGlobalIndex ( gid, varData[i++] );
2245 qpn0Ptr->setElementByGlobalIndex ( gid, varData[i++] );
2260 const std::vector<double> & varData )
2266 currStatePtr->setElementByGlobalIndex ( gid, varData[i++] );
2267 lastStatePtr->setElementByGlobalIndex ( gid, varData[i++] );
2268 nextStatePtr->setElementByGlobalIndex ( gid, varData[i++] );
2276 sn0Ptr->setElementByGlobalIndex ( gid, varData[i++] );
2277 spn0Ptr->setElementByGlobalIndex ( gid, varData[i++] );
2290 const std::vector<double> & varData )
2294 currStorePtr->setElementByGlobalIndex ( gid, varData[i++] );
2295 lastStorePtr->setElementByGlobalIndex ( gid, varData[i++] );
2296 nextStorePtr->setElementByGlobalIndex ( gid, varData[i++] );
2297 ston0Ptr->setElementByGlobalIndex ( gid, varData[i++] );
2298 stopn0Ptr->setElementByGlobalIndex ( gid, varData[i++] );
Linear::Vector * lastSolutionPtr
std::vector< Linear::Vector * > fastTimeQVec
Linear::Vector * oldeSolutionDerivPtr
Linear::Vector * sNewtonCorrectionPtr
Linear::Vector * nextLeadCurrentQPtr
Linear::Vector * leadCurrentQn0Ptr
std::vector< double > timeSteps
double delta_x_errorNorm_p1()
std::vector< Linear::Vector * > oldeDXdpPtrVector
Linear::Vector * oldeStoreLeadCurrQDerivPtr
std::vector< int > indexMaskedVars
std::vector< Linear::Vector * > currDQdxDXdpDerivPtrVector
double partialErrorNormSum()
Linear::Vector * tmpLeadDeltaVPtr
Linear::Vector * lastLeadDeltaVPtr
std::vector< bool > timeStepsBreakpointFlag
std::vector< Linear::Vector * > nextDqdpPtrVector
std::vector< Linear::Vector * > oldeDqdpPtrVector
Linear::Vector * currStateDerivPtr
bool usePreviousSolAsPredictor()
Linear::Vector * currStateDivDiffPtr
std::vector< std::vector< Linear::Vector * > > dQdxdXdpHistory
bool updateStateDataArrays()
Linear::Vector * oldeSolutionDivDiffPtr
Linear::Vector * stoNewtonCorrectionPtr
Linear::Vector * qErrWtVecPtr
Pure virtual class to augment a linear system.
Linear::Vector * lastStateDerivPtr
Linear::Vector * nextSolutionDerivPtr
bool resetAll(double absolute_error_tolerance, double relative_error_tolerance)
Linear::Vector * lastStoreLeadCurrQDerivPtr
Linear::Vector * lastStoreLeadCurrQPtr
void allocateSensitivityArrays(Linear::Builder &builder, int numParams)
std::vector< Linear::Vector * > nextDXdpPtrVector
Linear::Vector * tmpStaVectorPtr
void outputSolDataArrays(std::ostream &os)
Linear::Vector * currStorePtr
Linear::Vector * lastStatePtr
std::vector< Linear::Vector * > leadDeltaVHistory
Linear::Vector * tmpSolVectorPtr
double delta_x_errorNorm_m1()
Linear::Vector * leadCurrentpn0Ptr
Linear::Vector * leadCurrentNewtonCorrectionPtr
std::vector< Linear::Vector * > nextDbdpPtrVector
double partialSum_m2(int currentOrder)
Linear::Vector * ston0Ptr
Linear::Vector * tmpStoVectorPtr
std::vector< Linear::Vector * > nextDfdpPtrVector
Linear::Vector * savedNextSolutionPtr
std::vector< Linear::Vector * > nextDQdxDXdpDerivPtrVector
std::vector< Linear::Vector * > qHistory
std::vector< Linear::Vector * > fastTimeStateVec
Linear::Vector * nextLeadDeltaVPtr
Linear::Vector * currStatePtr
std::vector< Linear::Vector * > currDXdpPtrVector
std::vector< Linear::Vector * > leadCurrentHistory
void updateSolDataArrays()
void computeDividedDifferences()
std::vector< Linear::Vector * > fastTimeSolutionVec
Linear::Vector * leadDeltaVn0Ptr
std::vector< Linear::Vector * > oldeDQdxDXdpPtrVector
Linear::Vector * leadCurrentn0Ptr
Linear::Vector * oldeStatePtr
std::vector< TwoLevelError > innerErrorInfoVec
Linear::Vector * daeQVectorPtr
void setConstantHistory()
Linear::Vector * tmpLeadCurrentVectorPtr
std::vector< std::vector< Linear::Vector * > > dbdpHistory
Linear::Vector * oldeStateDivDiffPtr
void deleteSensitivityArrays()
double partialSum_p1(int currentOrder, int maxOrder)
Linear::Vector * tmpStaDerivPtr
Linear::Vector * lastLeadCurrentPtr
std::vector< Linear::Vector * > lastDQdxDXdpDerivPtrVector
Linear::Vector * deviceErrorWeightMask_
Linear::Vector * stopn0Ptr
void setErrorWtVector(const TIAParams &tia_params)
Linear::Vector * leadCurrentQpn0Ptr
std::vector< Linear::Vector * > oldeDqdpDerivPtrVector
Linear::Vector * oldeStoreLeadCurrQPtr
Linear::Vector * daeFVectorPtr
Linear::Vector * qNewtonCorrectionPtr
bool setStoreVarData(const int &gid, const std::vector< double > &varData)
Linear::Vector * currLeadCurrentQPtr
Linear::Vector * relErrTolPtr
bool getStateVarData(const int &gid, std::vector< double > &varData)
Linear::Vector * nextStoreLeadCurrQDerivPtr
std::vector< Linear::Vector * > currDqdpDerivPtrVector
Linear::Vector * leadCurrentQNewtonCorrectionPtr
Linear::Vector * errWtVecPtr
Linear::Vector * nextSolutionDivDiffPtr
Linear::Matrix * dFdxMatrixPtr
int maxOrder(const IO::CmdParse &command_line)
Linear::Vector * currLeadCurrentQDerivPtr
Linear::Vector * nextStatePtr
std::vector< Linear::Vector * > fastTimeStoreVec
std::vector< Linear::Vector * > leadCurrentQHistory
unsigned int solutionSize
Linear::Vector * oldeStateDerivPtr
std::vector< Linear::Vector * > nextDqdpDerivPtrVector
Linear::Vector * oldLeadCurrentPtr
Linear::Vector * oldLeadDeltaVPtr
Linear::Vector * dFdxdVpVectorPtr
std::vector< std::vector< Linear::Vector * > > dqdpHistory
Linear::Vector * currLeadDeltaVPtr
Linear::Vector * oldeSolutionPtr
double delta_x_errorNorm_q1()
void outputPredictedSolution(std::ostream &os)
Linear::Vector * currStoreLeadCurrQPtr
bool getSolnVarData(const int &gid, std::vector< double > &varData)
bool setSolnVarData(const int &gid, const std::vector< double > &varData)
Linear::Vector * tmpStaDivDiffPtr
Linear::Vector * stoLeadCurrQNewtonCorrectionPtr
std::vector< std::vector< Linear::Vector * > > dfdpHistory
void outputPredictedDerivative(std::ostream &os)
Linear::Vector * lastStateDivDiffPtr
Linear::Vector * nextSolutionPtr
double delta_x_errorNorm_m2()
void setConstantSensitivityHistory()
Linear::Vector * resMatVecPtr
Linear::Vector * tmpXn0BPtr
Linear::Vector * nextStorePtr
Linear::Vector * stoQn0Ptr
bool setStateVarData(const int &gid, const std::vector< double > &varData)
std::vector< Linear::Vector * > lastDqdpPtrVector
Linear::Vector * dQdxdVpVectorPtr
Linear::Vector * currSolutionDivDiffPtr
std::vector< Linear::Vector * > lastDqdpDerivPtrVector
Linear::Vector * lastSolutionDivDiffPtr
Linear::Vector * currLeadCurrentPtr
Linear::Vector * lastStorePtr
std::vector< Linear::Vector * > oldeDQdxDXdpDerivPtrVector
Linear::Vector * currSolutionDerivPtr
std::vector< Linear::Vector * > lastDQdxDXdpPtrVector
Linear::Vector * dQdxVecVectorPtr
Linear::Vector * lastLeadCurrentQDerivPtr
Linear::Vector * nextLeadCurrentQDerivPtr
bool setNextSolVectorPtr(Linear::Vector *solVecPtr)
Linear::Vector * newtonCorrectionPtr
Linear::Vector * tmpXn0APtr
Linear::Vector * currSolutionPtr
std::vector< int > indexVVars
std::vector< Linear::Vector * > stoHistory
Linear::Vector * dFdxVecVectorPtr
void enableOrderOneStart()
Linear::Vector * stoQpn0Ptr
Linear::Vector * nextStoreLeadCurrQPtr
Linear::Vector * lastLeadCurrentQPtr
Linear::Vector * currStoreLeadCurrQDerivPtr
Linear::Vector * nextStateDerivPtr
Linear::Vector * oldLeadCurrentQPtr
std::vector< Linear::Vector * > xHistory
std::vector< Linear::Vector * > sensRHSPtrVector
bool getStoreVarData(const int &gid, std::vector< double > &varData)
bool unsetNextSolVectorPtr()
Linear::Vector * oldeStorePtr
DataStore(int solution_size, int state_size, int max_order, const Linear::System &linear_system, const Linear::Builder &linear_system_builder)
Linear::Vector * lastSolutionDerivPtr
Linear::Matrix * dQdxMatrixPtr
Linear::Vector * oldLeadCurrentQDerivPtr
Linear::Vector * flagSolutionPtr
Linear::Vector * nextStateDivDiffPtr
std::vector< Linear::Vector * > currDQdxDXdpPtrVector
double partialSum_m1(int currentOrder)
std::vector< std::vector< Linear::Vector * > > dXdpHistory
Linear::Vector * daeBVectorPtr
Linear::Vector * leadDeltaVpn0Ptr
std::vector< Linear::Vector * > nextDQdxDXdpPtrVector
Linear::Vector * leadDeltaVNewtonCorrectionPtr
Linear::Vector * absErrTolPtr
Linear::System & linearSystem_
std::vector< Linear::Vector * > currDqdpPtrVector
std::vector< Linear::Vector * > stoLeadCurrQHistory
double partialQErrorNormSum()
void computeDivDiffsBlock(const std::list< IndexPair > &solGIDList, const std::list< IndexPair > &staGIDList)
Linear::Vector * nextLeadCurrentPtr
std::vector< Linear::Vector * > lastDXdpPtrVector
std::vector< Linear::Vector * > sHistory