46 #ifndef Xyce_N_ANP_AnalysisManager_h
47 #define Xyce_N_ANP_AnalysisManager_h
56 #include <N_LAS_fwd.h>
59 #include <N_PDS_fwd.h>
61 #include <N_TOP_fwd.h>
62 #include <N_UTL_fwd.h>
69 #include <N_UTL_Factory.h>
70 #include <N_UTL_Listener.h>
71 #include <N_UTL_Stats.h>
72 #include <N_UTL_Timer.h>
78 typedef std::set<Util::Factory<ProcessorBase, void> *>
CreatorSet;
130 public AnalysisEventNotifier,
131 public StepEventListener,
132 public AnalysisEventListener
136 const IO::CmdParse & command_line,
138 Stats::Stat analysis_stat);
154 Linear::System & linear_system,
184 const std::vector<std::string> & paramNames,
185 const std::vector<double> & paramVals,
186 Linear::Vector * solnVecPtr );
192 const std::list< IndexPair > & staGIDList);
289 void setPauseTime(
double pauseTime,
double initial_time);
307 bool dumpRestartData(
char * buf,
int bsize,
int & pos, Parallel::Communicator * comm,
bool pack);
310 bool restoreRestartData(
char * buf,
int bsize,
int & pos, Parallel::Communicator * comm,
bool pack );
313 bool getSolnVarData(
const int & gid, std::vector< double > & varData)
const;
316 bool getStateVarData(
const int & gid, std::vector< double > & varData)
const;
319 bool getStoreVarData(
const int & gid, std::vector< double > & varData)
const;
322 bool setSolnVarData(
const int & gid,
const std::vector< double > & varData);
325 bool setStateVarData(
const int & gid,
const std::vector< double > & varData);
328 bool setStoreVarData(
const int & gid,
const std::vector< double > & varData);
414 Parallel::Machine
getComm()
const;
605 #endif // Xyce_N_ANP_AnalysisManager_h
bool setNextSolVectorPtr(Linear::Vector *solVecPtr)
virtual ~AnalysisManager()
bool getTransientFlag() const
void allocateAnalysisObject(AnalysisCreatorRegistry &analysis_registry)
Creates the primary analysis and driving analysis (.STEP, dakota).
bool setDCAnalysisParams(const Util::OptionBlock ¶msBlock)
void setDAEStateDerivFlag(bool state)
const char * analysisModeName(Mode mode)
Returns the name of the analysis mode given by mode.
bool run()
Runs the top level analysis.
void notify(const StepEvent &step_event)
Notification that there is a StepEvent.
bool setNOISEAnalysisParams(const Util::OptionBlock &OB)
double getTotalLinearSolutionTime() const
TwoLevelMode getTwoLevelMode() const
void setSavedAlready(bool saved_already)
const AnalysisBase * getActiveAnalysis() const
void setNextOutputTime(double next_output_time)
bool getStateVarData(const int &gid, std::vector< double > &varData) const
const std::string netlistFilename_
Netlist file name.
void addProcessor(Util::Factory< ProcessorBase, void > *factory)
Util::ListenerAutoSubscribe< AnalysisEvent > AnalysisEventListener
bool getDoubleDCOPEnabled() const
TimeIntg::DataStore * dataStore_
Data store object.
Pure virtual class to augment a linear system.
double getFinalTime() const
bool dumpRestartData(char *buf, int bsize, int &pos, Parallel::Communicator *comm, bool pack)
bool gui_
Set if -giu appears on command line.
void pushActiveAnalysis(AnalysisBase *analysis)
bool isSimulationComplete()
double getPauseTime() const
bool getSwitchIntegrator() const
void setAnalysisMode(Mode analysis_mode)
CreatorVector & getCreatorVector()
void createTimeIntegratorMethod(const TimeIntg::TIAParams &tia_params, const unsigned int integration_method)
int getRestartDataSize(bool pack) const
bool getSavedAlready() const
const AnalysisBase & getAnalysisObject() const
std::vector< AnalysisBase * > currentAnalysisStack_
const TimeIntg::StepErrorControl & getStepErrorControl() const
Util::ListenerAutoSubscribe< StepEvent > StepEventListener
Parallel::Machine getComm() const
void addAnalysis(Util::Factory< AnalysisBase, void > *factory)
Util::Timer & getXyceTranTimer()
bool getResumingSimulation() const
Parallel::Manager * getPDSManager() const
AnalysisManager & operator=(const AnalysisManager &)
TimeIntg::StepErrorControl & getStepErrorControl()
void setResumeSimulation(bool resume)
bool getBeginningIntegrationFlag() const
const std::string & getNetlistFilename() const
void setIntegrationMethod(int im)
bool getTranOPFlag() const
bool getProgressFlag() const
TimeIntg::StepErrorControl * stepErrorControl_
Pointer to the TIA step-error control object.
Util::Timer * elapsedTimerPtr_
Xyce timing utility for timing the transient simulation CPU time.
bool registerParallelServices(Parallel::Manager *pds_tmp)
std::set< Util::Factory< ProcessorBase, void > * > CreatorSet
void setPrimaryAnalysisObject(AnalysisBase *primary)
std::vector< ProcessorBase * > analysisVector_
unsigned int breakPointRestartStep
void setStepNumber(int step)
void setBeginningIntegrationFlag(bool bif)
bool restoreRestartData(char *buf, int bsize, int &pos, Parallel::Communicator *comm, bool pack)
TimeIntg::WorkingIntegrationMethod * workingIntgMethod_
Working integration method.
bool initializeSolverSystem(const TimeIntg::TIAParams &tia_params, Loader::Loader &loader, Linear::System &linear_system, Nonlinear::Manager &nonlinear_manager, Device::DeviceMgr &device_manager)
Initializes the solver system.
bool blockAnalysisFlag_
HB Analysis (maybe something with MPDE too)
bool getSolnVarData(const int &gid, std::vector< double > &varData) const
Util::Notifier< StepEvent > StepEventNotifier
bool daeStateDerivFlag_
.OPTIONS TIMEINT DAESTATEDERIV=
AnalysisBase & getAnalysisObject()
void setPauseTime(double pauseTime, double initial_time)
bool getStoreVarData(const int &gid, std::vector< double > &varData) const
int getIntegrationMethod()
void setTranStepNumber(int step)
bool getSweepSourceResetFlag() const
Nonlinear::AnalysisMode nonlinearAnalysisMode(Mode mode)
Returns the nonlinear analysis mode given the analysis mode.
bool setACAnalysisParams(const Util::OptionBlock &OB)
bool setStateVarData(const int &gid, const std::vector< double > &varData)
bool completeOPStartStep()
bool getInitTranFlag() const
std::vector< Util::Factory< AnalysisBase, void > * > CreatorVector
const TimeIntg::WorkingIntegrationMethod & getWorkingIntegrationMethod() const
CreatorVector analysisCreatorVector_
AnalysisBase * analysisObject_
.STEP, Dakota
CreatorSet processorCreatorSet_
OutputMgrAdapter & getOutputManagerAdapter() const
bool sweepSourceResetFlag_
double getTotalResidualLoadTime() const
Util::Notifier< AnalysisEvent > AnalysisEventNotifier
bool setSolnVarData(const int &gid, const std::vector< double > &varData)
Loader::NonlinearEquationLoader & getNonlinearEquationLoader()
int getStepNumber() const
const TimeIntg::TIAParams & getTIAParams() const
bool setOPAnalysisParams(const Util::OptionBlock ¶msBlock)
Mode getAnalysisMode() const
bool registerElapsedTimer(Util::Timer *)
Loader::NonlinearEquationLoader * nonlinearEquationLoader_
Pointer to the nonlinear equation loader.
bool updateDerivsBlock(const std::list< IndexPair > &solGIDList, const std::list< IndexPair > &staGIDList)
bool setSensOptions(const Util::OptionBlock &OB)
const IO::CmdParse & commandLine_
Command line object.
DCOPType getDCOPSolve() const
OutputMgrAdapter & outputManagerAdapter_
Output manager adapter.
Stats::Stat analysisStat_
AnalysisManager(const IO::CmdParse &command_line, OutputMgrAdapter &output_manager_adapter, Stats::Stat analysis_stat)
Constructs the analysis manager.
bool completeHomotopyStep(Loader::NonlinearEquationLoader &loader, const std::vector< std::string > ¶mNames, const std::vector< double > ¶mVals, Linear::Vector *solnVecPtr)
bool failHomotopyStep(Loader::NonlinearEquationLoader &loader)
TimeIntg::WorkingIntegrationMethod & getWorkingIntegrationMethod()
void setSweepSourceResetFlag(bool reset)
const IO::CmdParse & getCommandLine() const
double solverStartTime_
Xyce timing utility for timing elapsed run time.
void setSwitchIntegrator(bool switch_itegrator)
bool dotOpSpecified_
Set if .OP.
IO::ActiveOutput * activeOutput_
bool switchIntegrator_
Set to true when Transient::integrationMethod_ is changed.
TimeIntg::DataStore * getDataStore()
Util::Timer xyceTranTimerPtr_
double getSolverStartTime() const
bool getDCSweepFlag() const
bool getBlockAnalysisFlag() const
Return true if primary analysis is HB or MPDE.
bool setStoreVarData(const int &gid, const std::vector< double > &varData)
TwoLevelMode twoLevelMode_
int getDoubleDCOPStep() const
double getTotalJacobianLoadTime() const
bool registerPkgOptionsMgr(AnalysisManager &analysis_manager, IO::PkgOptionsMgr &options_manager)
bool resumeSimulation_
Resume simulation from a paused transient.
double getNextOutputTime() const
void setTwoLevelMode(TwoLevelMode two_level_mode)
Parallel::Manager * parallelManager_
Pointer to the parallel services manager.
AnalysisBase * primaryAnalysisObject_
.TRAN, .AC, .HB, ...
double getInitialTime() const
bool printLoopInfo(int start, int finish)