Epetra-based Model Evaluator for QCAD solver. More...
#include <QCAD_Solver.hpp>
Public Member Functions | |
~Solver () | |
Teuchos::RCP< const Epetra_Map > | get_x_map () const |
Teuchos::RCP< const Epetra_Map > | get_f_map () const |
Teuchos::RCP< const Epetra_Map > | get_p_map (int l) const |
Teuchos::RCP< const Epetra_Map > | get_g_map (int j) const |
Teuchos::RCP< const Epetra_Vector > | get_x_init () const |
Teuchos::RCP< const Epetra_Vector > | get_p_init (int l) const |
EpetraExt::ModelEvaluator::InArgs | createInArgs () const |
EpetraExt::ModelEvaluator::OutArgs | createOutArgs () const |
void | evalModel (const InArgs &inArgs, const OutArgs &outArgs) const |
Constructors/initializers | |
Solver (const Teuchos::RCP< Teuchos::ParameterList > &appParams, const Teuchos::RCP< const Epetra_Comm > &comm, const Teuchos::RCP< const Epetra_Vector > &initial_guess) | |
Private Member Functions | |
Teuchos::RCP < Teuchos::ParameterList > | createPoissonInputFile (const Teuchos::RCP< Teuchos::ParameterList > &appParams, int numDims, int nEigen, const std::string &specialProcessing, const std::string &xmlOutputFile, const std::string &exoOutputFile) const |
Teuchos::RCP < Teuchos::ParameterList > | createSchrodingerInputFile (const Teuchos::RCP< Teuchos::ParameterList > &appParams, int numDims, int nEigen, const std::string &specialProcessing, const std::string &xmlOutputFile, const std::string &exoOutputFile) const |
Teuchos::RCP < Teuchos::ParameterList > | createPoissonSchrodingerInputFile (const Teuchos::RCP< Teuchos::ParameterList > &appParams, int numDims, int nEigen, const std::string &xmlOutputFile, const std::string &exoOutputFile) const |
void | evalPoissonSchrodingerModel (const InArgs &inArgs, const OutArgs &outArgs, std::vector< double > &eigenvalResponses, std::map< std::string, SolverSubSolver > &subSolvers) const |
void | evalPoissonCIModel (const InArgs &inArgs, const OutArgs &outArgs, std::vector< double > &eigenvalResponses, std::map< std::string, SolverSubSolver > &subSolvers) const |
void | evalCIModel (const InArgs &inArgs, const OutArgs &outArgs, std::vector< double > &eigenvalResponses, std::map< std::string, SolverSubSolver > &subSolvers) const |
bool | doPSLoop (const std::string &mode, const InArgs &inArgs, std::map< std::string, SolverSubSolver > &subSolvers, Teuchos::RCP< Albany::EigendataStruct > &eigenDataResult, bool bPrintNumOfQuantumElectrons) const |
void | setupParameterMapping (const Teuchos::ParameterList &list, const std::string &defaultSubSolver, const std::map< std::string, SolverSubSolverData > &subSolversData) |
void | setupResponseMapping (const Teuchos::ParameterList &list, const std::string &defaultSubSolver, int nEigenvalues, const std::map< std::string, SolverSubSolverData > &subSolversData) |
void | fillSingleSubSolverParams (const InArgs &inArgs, const std::string &name, QCAD::SolverSubSolver &subSolver, int nLeaveOffEnd=0) const |
SolverSubSolver | CreateSubSolver (const Teuchos::RCP< Teuchos::ParameterList > appParams, const Epetra_Comm &comm, const Teuchos::RCP< const Epetra_Vector > &initial_guess=Teuchos::null) const |
SolverSubSolverData | CreateSubSolverData (const QCAD::SolverSubSolver &sub) const |
const Teuchos::RCP < Teuchos::ParameterList > & | getSubSolverParams (const std::string &name) const |
Teuchos::RCP< const Teuchos::ParameterList > | getValidProblemParameters () const |
void | printResponses (const QCAD::SolverSubSolver &solver, const std::string &solverName, Teuchos::RCP< Teuchos::FancyOStream > out) const |
Private Attributes | |
int | numDims |
std::string | problemNameBase |
std::string | defaultSubSolver |
Teuchos::RCP < Teuchos::ParameterList > | mainAppParams |
std::map< std::string, Teuchos::RCP < Teuchos::ParameterList > > | subProblemAppParams |
std::vector< std::vector < Teuchos::RCP< SolverParamFn > > > | paramFnVecs |
std::vector< Teuchos::RCP < SolverResponseFn > > | responseFns |
std::size_t | maxIter |
std::size_t | nParameters |
std::size_t | nResponseDoubles |
std::string | iterationMethod |
int | nEigenvectors |
int | num_p |
int | num_g |
Teuchos::RCP< Epetra_LocalMap > | epetra_param_map |
Teuchos::RCP< Epetra_LocalMap > | epetra_response_map |
Teuchos::RCP< Epetra_Map > | epetra_x_map |
Teuchos::RCP< Epetra_Vector > | epetra_param_vec |
DerivativeSupport | deriv_support |
Teuchos::RCP< const Epetra_Comm > | solverComm |
Teuchos::RCP< const Epetra_Vector > | saved_initial_guess |
bool | bVerbose |
bool | bSupportDpDg |
bool | bRealEvecs |
std::string | eigensolverName |
double | ps_converge_tol |
double | shiftPercentBelowMin |
int | minCIParticles |
int | maxCIParticles |
int | nCIParticles |
int | nCIExcitations |
double | fixedPSOcc |
bool | bUseIntegratedPS |
bool | bUseTotalSpinSymmetry |
Epetra-based Model Evaluator for QCAD solver.
Definition at line 52 of file QCAD_Solver.hpp.
QCAD::Solver::Solver | ( | const Teuchos::RCP< Teuchos::ParameterList > & | appParams, | |
const Teuchos::RCP< const Epetra_Comm > & | comm, | |||
const Teuchos::RCP< const Epetra_Vector > & | initial_guess | |||
) |
Definition at line 101 of file QCAD_Solver.cpp.
QCAD::Solver::~Solver | ( | ) |
Definition at line 356 of file QCAD_Solver.cpp.
Teuchos::RCP< const Epetra_Map > QCAD::Solver::get_x_map | ( | ) | const |
Definition at line 1028 of file QCAD_Solver.cpp.
Teuchos::RCP< const Epetra_Map > QCAD::Solver::get_f_map | ( | ) | const |
Definition at line 1034 of file QCAD_Solver.cpp.
Teuchos::RCP< const Epetra_Map > QCAD::Solver::get_p_map | ( | int | l | ) | const |
Definition at line 1040 of file QCAD_Solver.cpp.
Teuchos::RCP< const Epetra_Map > QCAD::Solver::get_g_map | ( | int | j | ) | const |
Definition at line 1051 of file QCAD_Solver.cpp.
Teuchos::RCP< const Epetra_Vector > QCAD::Solver::get_x_init | ( | ) | const |
Definition at line 1064 of file QCAD_Solver.cpp.
Teuchos::RCP< const Epetra_Vector > QCAD::Solver::get_p_init | ( | int | l | ) | const |
Definition at line 1071 of file QCAD_Solver.cpp.
EpetraExt::ModelEvaluator::InArgs QCAD::Solver::createInArgs | ( | ) | const |
Definition at line 1086 of file QCAD_Solver.cpp.
EpetraExt::ModelEvaluator::OutArgs QCAD::Solver::createOutArgs | ( | ) | const |
Definition at line 1094 of file QCAD_Solver.cpp.
void QCAD::Solver::evalModel | ( | const InArgs & | inArgs, | |
const OutArgs & | outArgs | |||
) | const |
Definition at line 1114 of file QCAD_Solver.cpp.
Teuchos::RCP< Teuchos::ParameterList > QCAD::Solver::createPoissonInputFile | ( | const Teuchos::RCP< Teuchos::ParameterList > & | appParams, | |
int | numDims, | |||
int | nEigen, | |||
const std::string & | specialProcessing, | |||
const std::string & | xmlOutputFile, | |||
const std::string & | exoOutputFile | |||
) | const [private] |
Add source eigenvector indices as parameters
Add responses for each pair ( evec_i, evec_j )
Definition at line 362 of file QCAD_Solver.cpp.
Teuchos::RCP< Teuchos::ParameterList > QCAD::Solver::createSchrodingerInputFile | ( | const Teuchos::RCP< Teuchos::ParameterList > & | appParams, | |
int | numDims, | |||
int | nEigen, | |||
const std::string & | specialProcessing, | |||
const std::string & | xmlOutputFile, | |||
const std::string & | exoOutputFile | |||
) | const [private] |
Definition at line 714 of file QCAD_Solver.cpp.
Teuchos::RCP< Teuchos::ParameterList > QCAD::Solver::createPoissonSchrodingerInputFile | ( | const Teuchos::RCP< Teuchos::ParameterList > & | appParams, | |
int | numDims, | |||
int | nEigen, | |||
const std::string & | xmlOutputFile, | |||
const std::string & | exoOutputFile | |||
) | const [private] |
Definition at line 891 of file QCAD_Solver.cpp.
void QCAD::Solver::evalPoissonSchrodingerModel | ( | const InArgs & | inArgs, | |
const OutArgs & | outArgs, | |||
std::vector< double > & | eigenvalResponses, | |||
std::map< std::string, SolverSubSolver > & | subSolvers | |||
) | const [private] |
Definition at line 1206 of file QCAD_Solver.cpp.
void QCAD::Solver::evalPoissonCIModel | ( | const InArgs & | inArgs, | |
const OutArgs & | outArgs, | |||
std::vector< double > & | eigenvalResponses, | |||
std::map< std::string, SolverSubSolver > & | subSolvers | |||
) | const [private] |
Definition at line 1441 of file QCAD_Solver.cpp.
void QCAD::Solver::evalCIModel | ( | const InArgs & | inArgs, | |
const OutArgs & | outArgs, | |||
std::vector< double > & | eigenvalResponses, | |||
std::map< std::string, SolverSubSolver > & | subSolvers | |||
) | const [private] |
Definition at line 1330 of file QCAD_Solver.cpp.
bool QCAD::Solver::doPSLoop | ( | const std::string & | mode, | |
const InArgs & | inArgs, | |||
std::map< std::string, SolverSubSolver > & | subSolvers, | |||
Teuchos::RCP< Albany::EigendataStruct > & | eigenDataResult, | |||
bool | bPrintNumOfQuantumElectrons | |||
) | const [private] |
Definition at line 1658 of file QCAD_Solver.cpp.
void QCAD::Solver::setupParameterMapping | ( | const Teuchos::ParameterList & | list, | |
const std::string & | defaultSubSolver, | |||
const std::map< std::string, SolverSubSolverData > & | subSolversData | |||
) | [private] |
Definition at line 1945 of file QCAD_Solver.cpp.
void QCAD::Solver::setupResponseMapping | ( | const Teuchos::ParameterList & | list, | |
const std::string & | defaultSubSolver, | |||
int | nEigenvalues, | |||
const std::map< std::string, SolverSubSolverData > & | subSolversData | |||
) | [private] |
Definition at line 1985 of file QCAD_Solver.cpp.
void QCAD::Solver::fillSingleSubSolverParams | ( | const InArgs & | inArgs, | |
const std::string & | name, | |||
QCAD::SolverSubSolver & | subSolver, | |||
int | nLeaveOffEnd = 0 | |||
) | const [private] |
Definition at line 2012 of file QCAD_Solver.cpp.
QCAD::SolverSubSolver QCAD::Solver::CreateSubSolver | ( | const Teuchos::RCP< Teuchos::ParameterList > | appParams, | |
const Epetra_Comm & | comm, | |||
const Teuchos::RCP< const Epetra_Vector > & | initial_guess = Teuchos::null | |||
) | const [private] |
Create solver factory, which reads xml input filen
Create solver and application objects via solver factory
Definition at line 2034 of file QCAD_Solver.cpp.
QCAD::SolverSubSolverData QCAD::Solver::CreateSubSolverData | ( | const QCAD::SolverSubSolver & | sub | ) | const [private] |
Definition at line 2098 of file QCAD_Solver.cpp.
const Teuchos::RCP< Teuchos::ParameterList > & QCAD::Solver::getSubSolverParams | ( | const std::string & | name | ) | const [private] |
Definition at line 2027 of file QCAD_Solver.cpp.
Teuchos::RCP< const Teuchos::ParameterList > QCAD::Solver::getValidProblemParameters | ( | ) | const [private] |
Definition at line 2160 of file QCAD_Solver.cpp.
void QCAD::Solver::printResponses | ( | const QCAD::SolverSubSolver & | solver, | |
const std::string & | solverName, | |||
Teuchos::RCP< Teuchos::FancyOStream > | out | |||
) | const [private] |
Definition at line 2134 of file QCAD_Solver.cpp.
int QCAD::Solver::numDims [private] |
Definition at line 122 of file QCAD_Solver.hpp.
std::string QCAD::Solver::problemNameBase [private] |
Definition at line 123 of file QCAD_Solver.hpp.
std::string QCAD::Solver::defaultSubSolver [private] |
Definition at line 124 of file QCAD_Solver.hpp.
Teuchos::RCP<Teuchos::ParameterList> QCAD::Solver::mainAppParams [private] |
Definition at line 125 of file QCAD_Solver.hpp.
std::map<std::string, Teuchos::RCP<Teuchos::ParameterList> > QCAD::Solver::subProblemAppParams [private] |
Definition at line 126 of file QCAD_Solver.hpp.
std::vector< std::vector<Teuchos::RCP<SolverParamFn> > > QCAD::Solver::paramFnVecs [private] |
Definition at line 128 of file QCAD_Solver.hpp.
std::vector<Teuchos::RCP<SolverResponseFn> > QCAD::Solver::responseFns [private] |
Definition at line 129 of file QCAD_Solver.hpp.
std::size_t QCAD::Solver::maxIter [private] |
Definition at line 131 of file QCAD_Solver.hpp.
std::size_t QCAD::Solver::nParameters [private] |
Definition at line 132 of file QCAD_Solver.hpp.
std::size_t QCAD::Solver::nResponseDoubles [private] |
Definition at line 133 of file QCAD_Solver.hpp.
std::string QCAD::Solver::iterationMethod [private] |
Definition at line 135 of file QCAD_Solver.hpp.
int QCAD::Solver::nEigenvectors [private] |
Definition at line 136 of file QCAD_Solver.hpp.
int QCAD::Solver::num_p [private] |
Definition at line 138 of file QCAD_Solver.hpp.
int QCAD::Solver::num_g [private] |
Definition at line 138 of file QCAD_Solver.hpp.
Teuchos::RCP<Epetra_LocalMap> QCAD::Solver::epetra_param_map [private] |
Definition at line 139 of file QCAD_Solver.hpp.
Teuchos::RCP<Epetra_LocalMap> QCAD::Solver::epetra_response_map [private] |
Definition at line 140 of file QCAD_Solver.hpp.
Teuchos::RCP<Epetra_Map> QCAD::Solver::epetra_x_map [private] |
Definition at line 141 of file QCAD_Solver.hpp.
Teuchos::RCP<Epetra_Vector> QCAD::Solver::epetra_param_vec [private] |
Definition at line 143 of file QCAD_Solver.hpp.
DerivativeSupport QCAD::Solver::deriv_support [private] |
Definition at line 144 of file QCAD_Solver.hpp.
Teuchos::RCP<const Epetra_Comm> QCAD::Solver::solverComm [private] |
Definition at line 146 of file QCAD_Solver.hpp.
Teuchos::RCP<const Epetra_Vector> QCAD::Solver::saved_initial_guess [private] |
Definition at line 147 of file QCAD_Solver.hpp.
bool QCAD::Solver::bVerbose [private] |
Definition at line 149 of file QCAD_Solver.hpp.
bool QCAD::Solver::bSupportDpDg [private] |
Definition at line 150 of file QCAD_Solver.hpp.
bool QCAD::Solver::bRealEvecs [private] |
Definition at line 151 of file QCAD_Solver.hpp.
std::string QCAD::Solver::eigensolverName [private] |
Definition at line 153 of file QCAD_Solver.hpp.
double QCAD::Solver::ps_converge_tol [private] |
Definition at line 154 of file QCAD_Solver.hpp.
double QCAD::Solver::shiftPercentBelowMin [private] |
Definition at line 155 of file QCAD_Solver.hpp.
int QCAD::Solver::minCIParticles [private] |
Definition at line 156 of file QCAD_Solver.hpp.
int QCAD::Solver::maxCIParticles [private] |
Definition at line 157 of file QCAD_Solver.hpp.
int QCAD::Solver::nCIParticles [private] |
Definition at line 158 of file QCAD_Solver.hpp.
int QCAD::Solver::nCIExcitations [private] |
Definition at line 159 of file QCAD_Solver.hpp.
double QCAD::Solver::fixedPSOcc [private] |
Definition at line 160 of file QCAD_Solver.hpp.
bool QCAD::Solver::bUseIntegratedPS [private] |
Definition at line 161 of file QCAD_Solver.hpp.
bool QCAD::Solver::bUseTotalSpinSymmetry [private] |
Definition at line 162 of file QCAD_Solver.hpp.