46 #ifndef Xyce_N_NLS_Manager_h
47 #define Xyce_N_NLS_Manager_h
55 #include <N_LAS_fwd.h>
58 #include <N_PDS_fwd.h>
60 #include <N_TOP_fwd.h>
62 #include <N_UTL_OptionBlock.h>
63 #include <N_UTL_Stats.h>
84 Manager(
const IO::CmdParse & command_line);
87 bool setOptions(
const Util::OptionBlock& option_block );
89 bool setHBOptions(
const Util::OptionBlock& option_block );
98 bool setICOptions (
const Util::OptionBlock& option_block );
125 Linear::System & linear_system,
127 Parallel::Manager & parallel_manager,
128 IO::InitialConditionsManager & initial_conditions_manager,
129 IO::OutputMgr & output_manager,
130 Topo::Topology & topology);
144 std::vector<double> & objectiveVec,
145 std::vector<double> & dOdpVec, std::vector<double> & dOdpAdjVec,
146 std::vector<double> & scaled_dOdpVec, std::vector<double> & scaled_dOdpAdjVec);
148 std::vector<double> & objectiveVec,
149 std::vector<double> & dOdpVec, std::vector<double> & dOdpAdjVec,
150 std::vector<double> & scaled_dOdpVec, std::vector<double> & scaled_dOdpAdjVec);
160 Linear::System & linear_system,
162 Parallel::Manager & parallel_manager,
163 IO::OutputMgr & output_manager,
164 Topo::Topology & topology);
170 Linear::System & linear_system,
172 Parallel::Manager & parallel_manager,
173 IO::InitialConditionsManager & initial_conditions_manager,
174 IO::OutputMgr & output_manager);
202 #endif // Xyce_N_NLS_Manager_h
bool setTranOptions(const Util::OptionBlock &option_block)
bool enableSensitivity(TimeIntg::DataStore &data_store, Parallel::Manager ¶llel_manager, Topo::Topology &topology)
bool noxFlagTransient_
For 2-level newton, option for inner loop to use nox.
NonLinInfo getNonLinInfo() const
bool icSensitivity(std::vector< double > &objectiveVec, std::vector< double > &dOdpVec, std::vector< double > &dOdpAdjVec, std::vector< double > &scaled_dOdpVec, std::vector< double > &scaled_dOdpAdjVec)
bool setSensOptions(const Util::OptionBlock &option_block)
bool setTwoLevelTranOptions(const Util::OptionBlock &option_block)
bool calcSensitivity(std::vector< double > &objectiveVec, std::vector< double > &dOdpVec, std::vector< double > &dOdpAdjVec, std::vector< double > &scaled_dOdpVec, std::vector< double > &scaled_dOdpAdjVec)
Pure virtual class to augment a linear system.
OptionBlockMap optionBlockMap_
Use nox in transient phase of calculation.
bool setTwoLevelLocaOptions(const Util::OptionBlock &option_block)
ConductanceExtractor & getConductanceExtractor()
bool setLocaOptions(const Util::OptionBlock &option_block)
void setAnalysisMode(AnalysisMode mode)
ConductanceExtractor * conductanceExtractorPtr_
bool allocateSolver(Analysis::AnalysisManager &analysis_manager, Loader::NonlinearEquationLoader &nonlinear_equation_loader, Linear::System &linear_system, TimeIntg::DataStore &data_store, Parallel::Manager ¶llel_manager, IO::InitialConditionsManager &initial_conditions_manager, IO::OutputMgr &output_manager)
NonLinearSolver & getNonlinearSolver()
Manager(const IO::CmdParse &command_line)
bool setNodeSetOptions(const Util::OptionBlock &option_block)
bool setLinSolOptions(const Util::OptionBlock &option_block)
void resetAll(AnalysisMode mode)
bool setSensitivityOptions(const Util::OptionBlock &option_block)
const ReturnCodes & getReturnCodes() const
void setReturnCodes(const ReturnCodes &retCodeTmp)
bool noxFlagInner_
Flag to determine if NOX is the solver in use.
bool initializeAll(Analysis::AnalysisManager &analysis_manager, Loader::NonlinearEquationLoader &nonlinear_equation_loader, Linear::System &linear_system, TimeIntg::DataStore &data_store, Parallel::Manager ¶llel_manager, IO::InitialConditionsManager &initial_conditions_manager, IO::OutputMgr &output_manager, Topo::Topology &topology)
bool registerPkgOptionsMgr(Manager &manager, const std::string netlist_filename, IO::PkgOptionsMgr &options_manager)
std::map< std::string, Util::OptionBlock > OptionBlockMap
bool noxFlag_
Flag to determine if we are doing 2-level newton or not.
Util::OptionBlock & getHBOptions()
const IO::CmdParse & commandLine_
bool setICOptions(const Util::OptionBlock &option_block)
bool setHBOptions(const Util::OptionBlock &option_block)
bool setOptions(const Util::OptionBlock &option_block)
bool setupSensitivity(TimeIntg::DataStore &data_store, Parallel::Manager ¶llel_manager, Topo::Topology &topology)
NonLinearSolver * nonlinearSolver_
bool setTwoLevelOptions(const Util::OptionBlock &option_block)
const Linear::PrecondFactory * lasPrecPtr_
Util::Expression * exprPtr_
Return Codes.
void allocateTranSolver(Analysis::AnalysisManager &analysis_manager, Loader::NonlinearEquationLoader &nonlinear_equation_loader, Linear::System &linear_system, TimeIntg::DataStore &data_store, Parallel::Manager ¶llel_manager, IO::OutputMgr &output_manager, Topo::Topology &topology)
Sensitivity * nlsSensitivityPtr_
bool initializeAllFlag_
netlist option blocks until we know which
void setMatrixFreeFlag(bool matrixFreeFlag)
bool setDCOPRestartOptions(const Util::OptionBlock &option_block)
bool setReturnCodeOption(const Util::Param ¶m)
bool registerPrecondFactory(const Linear::PrecondFactory *preconditioner_factory)