45 #ifndef Xyce_N_ANP_MOR_h
46 #define Xyce_N_ANP_MOR_h
48 #include <Teuchos_RCP.hpp>
51 #include <Teuchos_SerialDenseMatrix.hpp>
55 #include <N_UTL_fwd.h>
56 #include <N_LAS_fwd.h>
57 #include <N_TOP_fwd.h>
61 #include <N_UTL_FixedQueue.h>
62 #include <N_UTL_OptionBlock.h>
65 class Amesos_BaseSolver;
66 class Epetra_LinearProblem;
85 Topo::Topology & topology);
197 Teuchos::SerialDenseMatrix<int, double>
redC_;
198 Teuchos::SerialDenseMatrix<int, double>
redG_;
199 Teuchos::SerialDenseMatrix<int, double>
redB_;
200 Teuchos::SerialDenseMatrix<int, double>
redL_;
216 Teuchos::SerialDenseMatrix<int, std::complex<double> >
origH_;
217 Teuchos::SerialDenseMatrix<int, std::complex<double> >
redH_;
229 const std::string & netlist_filename,
230 IO::PkgOptionsMgr & options_manager,
232 Linear::System & linear_system,
234 Topo::Topology & topology);
239 #endif // Xyce_N_ANP_MOR_h
RCP< Linear::MultiVector > RPtr_
Topo::Topology & topology_
Teuchos::SerialDenseMatrix< int, double > redB_
RCP< Epetra_LinearProblem > origProblem_
RCP< Epetra_LinearProblem > blockRedProblem_
RCP< Linear::BlockVector > ref_redBPtr_
virtual bool doProcessSuccessfulStep()
bool evalOrigTransferFunction()
Pure virtual class to augment a linear system.
RCP< Linear::MultiVector > BPtr_
RCP< Linear::BlockMatrix > sCpG_REFMatrixPtr_
RCP< Linear::MultiVector > VPtr_
unsigned int stepNumber
Time-integration step number counter.
Nonlinear::Manager & nonlinearManager_
const TimeIntg::TIAParams & getTIAParams() const
std::vector< std::string > portList_
bool createOrigLinearSystem_()
Teuchos::SerialDenseMatrix< int, std::complex< double > > origH_
RCP< Linear::BlockMatrix > sCpG_ref_redMatrixPtr_
RCP< Epetra_LinearProblem > blockProblem_
RCP< Amesos_BaseSolver > blockSolver_
Teuchos::SerialDenseMatrix< int, double > sCpG_redMatrix_
bool updateOrigLinearSystemFreq_()
bool setAnalysisParams(const Util::OptionBlock ¶msBlock)
RCP< Linear::BlockVector > REFXPtr_
AnalysisManager & analysisManager_
Teuchos::SerialDenseMatrix< int, double > sCpG_tmpMatrix_
RCP< Amesos_BaseSolver > origSolver_
Teuchos::SerialDenseMatrix< int, double > redG_
std::vector< int > bMatEntriesVec_
RCP< Amesos_BaseSolver > blockRedSolver_
Teuchos::SerialDenseMatrix< int, std::complex< double > > redH_
TimeIntg::TIAParams & getTIAParams()
Teuchos::SerialDenseMatrix< int, double > redL_
MOR(AnalysisManager &analysis_manager, Nonlinear::Manager &nonlinear_manager, Topo::Topology &topology)
bool processSuccessfulStep()
bool sparsifyRedSystem_()
bool solveRedLinearSystem_()
RCP< Linear::Matrix > redCPtr_
Teuchos::SerialDenseMatrix< int, double > redC_
RCP< Epetra_Map > redMapPtr_
int morSparsificationType_
virtual bool doLoopProcess()
RCP< Linear::BlockVector > REFBPtr_
RCP< Linear::BlockVector > ref_redXPtr_
bool createRedLinearSystem_()
std::vector< int > bMatPosEntriesVec_
Factory for creating analysis objects.
bool setMOROptions(const Util::OptionBlock &OB)
virtual bool doProcessFailedStep()
RCP< Linear::Matrix > redGPtr_
std::list< int > morEvalFailures_
RCP< Linear::Matrix > GPtr_
std::vector< std::string > subcircuitNames_
bool registerMORFactory(const std::string &netlist_filename, IO::PkgOptionsMgr &options_manager, AnalysisManager &analysis_manager, Linear::System &linear_system, Nonlinear::Manager &nonlinear_manager, Topo::Topology &topology)
bool evalRedTransferFunction()
RCP< Linear::Matrix > sCpG_MatrixPtr_
bool updateCurrentFreq_(int stepNumber)
Teuchos::SerialDenseMatrix< int, double > ref_redB_
RCP< Linear::Matrix > CPtr_
TimeIntg::TIAParams tiaParams_
OutputMgrAdapter & outputManagerAdapter_
bool solveOrigLinearSystem_()
virtual bool doHandlePredictor()
bool updateRedLinearSystemFreq_()