45 #ifndef Xyce_N_ANP_Transient_h
46 #define Xyce_N_ANP_Transient_h
49 #include <N_TOP_fwd.h>
50 #include <N_UTL_fwd.h>
56 #include <N_UTL_FixedQueue.h>
57 #include <N_UTL_Listener.h>
58 #include <N_UTL_OptionBlock.h>
79 Linear::System & linear_system,
81 Topo::Topology & topology,
84 N_MPDE_Manager * mpde_manager = 0);
244 double next_output_time,
245 double final_output_time,
246 double initial_output_interval,
247 const IO::IntervalVector & output_intervals);
252 double next_output_time,
253 double final_output_time,
254 double initial_output_interval,
255 const IO::IntervalVector & output_intervals);
260 double next_output_time,
265 const std::string & netlist_filename,
266 IO::PkgOptionsMgr & options_manager,
268 Linear::System & linear_system,
270 Topo::Topology & topology);
275 #endif // Xyce_N_ANP_Transient_h
Transient(AnalysisManager &analysis_manager, Linear::System &linear_system, Nonlinear::Manager &nonlinear_manager, Topo::Topology &topology, OutputAdapter *output_adapter=0, HB *hb_analysis=0, N_MPDE_Manager *mpde_manager=0)
Util::FixedQueue< double > timeQueue_
TimeIntg::TIAParams tiaParams_
void takeAnIntegrationStep_()
void notify(const StepEvent &event)
const TimeIntg::TIAParams & getTIAParams() const
Pure virtual class to augment a linear system.
std::vector< std::string > condTestDeviceNames
names for conductance test
std::vector< double > objectiveVec_
Topo::Topology & topology_
double minEstErrorOverTol
bool registerTransientFactory(const std::string &netlist_filename, IO::PkgOptionsMgr &options_manager, AnalysisManager &analysis_manager, Linear::System &linear_system, Nonlinear::Manager &nonlinear_manager, Topo::Topology &topology)
void setTIAParams(const TimeIntg::TIAParams &tia_params)
Util::FixedQueue< int > nonlinearSolverStatusQueue_
std::vector< double > dOdpAdjVec_
double timeStepAtMinEstErrorOverTol
Util::ExpressionData * maxTimeStepExpression_
Linear::System & linearSystem_
int exitStep
Exit after taking this many steps.
OutputMgrAdapter & outputManagerAdapter_
Util::FixedQueue< int > nonlinearSolverNumIterationsQueue_
bool processSuccessfulDCOP()
Util::ListenerAutoSubscribe< StepEvent > StepEventListener
std::vector< double > dOdpVec_
void setSaveTimeSteps(bool save_time_steps)
bool saveTimeStepsFlag
flag to save timestpes in data store for later use
bool finalizeMixedSignalStep()
bool mixedSignalStep(double maxTimeStepFromHabanero)
Nonlinear::Manager & nonlinearManager_
OutputAdapter * outputAdapter_
Util::FixedQueue< double > nonlinearSolverMaxNormQueue_
void printProgress(std::ostream &os)
void preMixedSignalStepDetails(double maxTimeStepFromHabanero)
AnalysisManager & analysisManager_
bool retakeAndAcceptTimeStep(double aTimeStep)
N_MPDE_Manager * mpdeManager_
bool doProcessFailedStep()
bool setTimeIntegratorOptions(const Util::OptionBlock &option_block)
unsigned int initialIntegrationMethod_
unsigned int integrationMethod
Time-integration method.
Factory for creating analysis objects.
bool setAnalysisParams(const Util::OptionBlock ¶msBlock)
int stepNumberAtMinEstErrorOverTol
double oldPercentComplete
std::vector< double > scaled_dOdpAdjVec_
std::string maxTimeStepExpressionString_
bool finalVerboseOutput()
double updateOutputTime(double current_time, double next_output_time, double final_output_time, double initial_output_interval, const IO::IntervalVector &output_intervals)
Util::FixedQueue< double > timeStepQueue_
std::vector< double > scaled_dOdpVec_
Util::FixedQueue< int > stepStatusQueue_
bool condTestFlag
flag for conductance test
TimeIntg::TIAParams & getTIAParams()
double exitTime
Exit when it exceeds this time.
bool outputInterpMPDE
flag for interpolating the MPDE output. Sometimes, the interpolation is the hard part.
Util::FixedQueue< double > nonlinearSolverMaxNormIndexQueue_
void printStepHeader(std::ostream &os)
bool doProcessSuccessfulStep()
bool passNLStall
option to pass some non-linear solver failures
Util::FixedQueue< double > estErrorOverTolQueue_
std::vector< double > computeOutputInterpolationTimes(double current_time, double next_output_time, double final_output_time, double initial_output_interval, const IO::IntervalVector &output_intervals)
bool testOutputTime(double current_time, double next_output_time, double start_time)