47 #include <Xyce_config.h>
53 #include <N_ERH_ErrorMgr.h>
54 #include <N_LAS_Matrix.h>
55 #include <N_LAS_System.h>
56 #include <N_LAS_Vector.h>
64 #include <N_UTL_Diagnostic.h>
65 #include <N_UTL_FeatureTest.h>
69 #include <Epetra_Import.h>
70 #include <Epetra_CrsMatrix.h>
71 #include <Epetra_Map.h>
87 TimeIntegrationMethod *
210 for (
int ip=0; ip<numParams;++ip)
216 RHSVec.linearCombo(0.0,RHSVec,+1.0,dfdpVec);
217 RHSVec.linearCombo(1.0,RHSVec,-1.0,dbdpVec);
265 Jac.linearCombo( 1.0e-20, dQdx, 1.0, dFdx );
285 result.linearCombo( 1.0e-20, dQdxV, 1.0, dFdxV );
322 Linear::Vector * solnVecPtr,
323 const bool doNotInterpolate,
324 const std::vector<double> & outputInterpolationTimes,
325 bool skipPrintLineOutput )
327 if (DEBUG_TIME && isActive(Diag::TIME_OUTPUT))
328 Xyce::dout() <<
"Calling conventional outputs!" << std::endl;
330 outputManagerAdapter.
tranOutput( time, *solnVecPtr,
335 skipPrintLineOutput);
353 Linear::Vector * solnVecPtr,
354 const double saveTime,
355 const bool doNotInterpolate)
357 outputManagerAdapter.
outputDCOP( *(solnVecPtr) );
Linear::Vector * tmpLeadDeltaVPtr
void applyJacobian(const Linear::Vector &input, Linear::Vector &result)
StepErrorControl & sec
Reference to step-error control object.
Pure virtual class to augment a linear system.
Linear::Vector * nextSolutionDerivPtr
std::vector< double > dOdpVec_
std::vector< double > scaled_dOdpVec_
void completeStep(const TIAParams &tia_params)
Linear::Vector * currStorePtr
std::vector< double > scaled_dOdpAdjVec_
std::vector< Linear::Vector * > nextDbdpPtrVector
std::vector< Linear::Vector * > nextDfdpPtrVector
bool printOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const TIAParams &tia_params, const double time, Linear::Vector *solnVecPtr, const bool doNotInterpolate, const std::vector< double > &outputInterpolationTimes, bool skipPrintLineOutput)
Linear::Vector * currStatePtr
std::vector< double > objectiveVec_
void obtainSensitivityResiduals()
void obtainCorrectorDeriv()
double alphas
$$ fixed-leading coefficient of this BDF method
Linear::Vector * tmpLeadCurrentVectorPtr
NoTimeIntegration(const TIAParams &tiaP, StepErrorControl &secTmp, DataStore &dsTmp)
Linear::Vector * daeFVectorPtr
double leadingCoeff
Time-integration method leading coefficient value.
Linear::Vector * nextStoreLeadCurrQDerivPtr
Linear::Matrix * dFdxMatrixPtr
Linear::Matrix * JMatrixPtr
void tranOutput(double time, Linear::Vector &currSolutionPtr, Linear::Vector &stateVecPtr, Linear::Vector &storeVecPtr, Linear::Vector &lead_current_vector, Linear::Vector &junction_voltage_vector, std::vector< double > &objectiveVec_, std::vector< double > &dOdpVec_, std::vector< double > &dOdpAdjVec_, std::vector< double > &scaled_dOdpVec_, std::vector< double > &scaled_dOdpAdjVec_, bool skipPrintLineOutput=false)
Linear::Vector * dFdxdVpVectorPtr
bool saveOutputSolution(Analysis::OutputMgrAdapter &outputManagerAdapter, const TIAParams &tia_params, Linear::Vector *solnVecPtr, const double saveTime, const bool doNotInterpolate)
void rejectStep(const TIAParams &tia_params)
Linear::Vector * RHSVectorPtr
DataStore & ds
Reference to the TIA data-store object.
std::vector< double > dOdpAdjVec_
Linear::Vector * dQdxVecVectorPtr
void getTwoLevelError(TwoLevelError &tle) const
Linear::Vector * dFdxVecVectorPtr
Linear::Vector * nextStateDerivPtr
void outputDCOP(const Linear::Vector &solution)
std::vector< Linear::Vector * > sensRHSPtrVector
Linear::Matrix * dQdxMatrixPtr
void getInitialQnorm(TwoLevelError &tle) const
Linear::Vector * daeBVectorPtr
static TimeIntegrationMethod * factory(const TIAParams &tia_params, StepErrorControl &step_error_control, DataStore &data_store)