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);
88 bool setOptions(
const Util::OptionBlock& option_block );
90 bool setHBOptions(
const Util::OptionBlock& option_block );
100 bool setICOptions (
const Util::OptionBlock& option_block );
127 Linear::System & linear_system,
129 Parallel::Manager & parallel_manager,
130 IO::InitialConditionsManager & initial_conditions_manager,
131 IO::OutputMgr & output_manager,
132 Topo::Topology & topology);
146 std::vector<double> & objectiveVec,
147 std::vector<double> & dOdpVec, std::vector<double> & dOdpAdjVec,
148 std::vector<double> & scaled_dOdpVec, std::vector<double> & scaled_dOdpAdjVec);
150 std::vector<double> & objectiveVec,
151 std::vector<double> & dOdpVec, std::vector<double> & dOdpAdjVec,
152 std::vector<double> & scaled_dOdpVec, std::vector<double> & scaled_dOdpAdjVec);
162 Linear::System & linear_system,
164 Parallel::Manager & parallel_manager,
165 IO::OutputMgr & output_manager,
166 Topo::Topology & topology);
172 Linear::System & linear_system,
174 Parallel::Manager & parallel_manager,
175 IO::InitialConditionsManager & initial_conditions_manager,
176 IO::OutputMgr & output_manager);
204 #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 registerPkgOptionsMgr(Manager &manager, IO::PkgOptionsMgr &options_manager)
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 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_
unordered_map< int, Util::OptionBlock > OptionBlockMap
bool setTwoLevelOptions(const Util::OptionBlock &option_block)
const Linear::PrecondFactory * lasPrecPtr_
Util::Expression * exprPtr_
Return Codes.
bool setNLPOptions(const Util::OptionBlock &option_block)
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)