Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
Public Member Functions | Private Attributes | List of all members
sierra::nalu::TpetraLinearSolver Class Reference

#include <LinearSolver.h>

Inheritance diagram for sierra::nalu::TpetraLinearSolver:
sierra::nalu::LinearSolver

Public Member Functions

 TpetraLinearSolver (std::string solverName, TpetraLinearSolverConfig *config, const Teuchos::RCP< Teuchos::ParameterList > params, const Teuchos::RCP< Teuchos::ParameterList > paramsPrecond, LinearSolvers *linearSolvers)
 
 ~TpetraLinearSolver ()
 
void setSystemObjects (Teuchos::RCP< LinSys::Matrix > matrix, Teuchos::RCP< LinSys::Vector > rhs)
 
void setupLinearSolver (Teuchos::RCP< LinSys::Vector > sln, Teuchos::RCP< LinSys::Matrix > matrix, Teuchos::RCP< LinSys::Vector > rhs, Teuchos::RCP< LinSys::MultiVector > coords)
 
void destroyLinearSolver ()
 
void setMueLu ()
 
int residual_norm (int whichNorm, Teuchos::RCP< LinSys::Vector > sln, double &norm)
 
int solve (Teuchos::RCP< LinSys::Vector > sln, int &iterationCount, double &scaledResidual)
 
virtual PetraType getType ()
 
TpetraLinearSolverConfiggetConfig ()
 
bool & activeMueLu ()
 
- Public Member Functions inherited from sierra::nalu::LinearSolver
 LinearSolver (std::string name, LinearSolvers *linearSolvers, bool recompute_preconditioner, bool reuse_preconditioner)
 
virtual ~LinearSolver ()
 
Simulationroot ()
 
LinearSolversparent ()
 
bool & recomputePreconditioner ()
 
bool & reusePreconditioner ()
 
void zero_timer_precond ()
 
double get_timer_precond ()
 

Private Attributes

TpetraLinearSolverConfigconfig_
 
const Teuchos::RCP< Teuchos::ParameterList > params_
 
const Teuchos::RCP< Teuchos::ParameterList > paramsPrecond_
 
Teuchos::RCP< LinSys::Matrixmatrix_
 
Teuchos::RCP< LinSys::Vectorrhs_
 
Teuchos::RCP< LinSys::LinearProblemproblem_
 
Teuchos::RCP< LinSys::SolverManagersolver_
 
Teuchos::RCP< LinSys::Preconditionerpreconditioner_
 
Teuchos::RCP< MueLu::TpetraOperator< SC, LO, GO, NO > > mueluPreconditioner_
 
Teuchos::RCP< LinSys::MultiVectorcoords_
 
bool activateMueLu_
 
std::string preconditionerType_
 

Additional Inherited Members

- Public Attributes inherited from sierra::nalu::LinearSolver
std::string name_
 
LinearSolverslinearSolvers_
 
- Protected Attributes inherited from sierra::nalu::LinearSolver
bool recomputePreconditioner_
 
bool reusePreconditioner_
 
double timerPrecond_
 

Constructor & Destructor Documentation

sierra::nalu::TpetraLinearSolver::TpetraLinearSolver ( std::string  solverName,
TpetraLinearSolverConfig config,
const Teuchos::RCP< Teuchos::ParameterList >  params,
const Teuchos::RCP< Teuchos::ParameterList >  paramsPrecond,
LinearSolvers linearSolvers 
)
sierra::nalu::TpetraLinearSolver::~TpetraLinearSolver ( )

References destroyLinearSolver().

Member Function Documentation

bool& sierra::nalu::TpetraLinearSolver::activeMueLu ( )
inline
void sierra::nalu::TpetraLinearSolver::destroyLinearSolver ( )
TpetraLinearSolverConfig* sierra::nalu::TpetraLinearSolver::getConfig ( )
inline
virtual PetraType sierra::nalu::TpetraLinearSolver::getType ( )
inlinevirtual
int sierra::nalu::TpetraLinearSolver::residual_norm ( int  whichNorm,
Teuchos::RCP< LinSys::Vector sln,
double &  norm 
)

matrix_->fillComplete(map_, map_);

References matrix_, anonymous_namespace{UnitTestContinuityAdvElem.C}::hex8_golds::advection_default::rhs, and rhs_.

Referenced by solve().

void sierra::nalu::TpetraLinearSolver::setMueLu ( )
void sierra::nalu::TpetraLinearSolver::setSystemObjects ( Teuchos::RCP< LinSys::Matrix matrix,
Teuchos::RCP< LinSys::Vector rhs 
)
void sierra::nalu::TpetraLinearSolver::setupLinearSolver ( Teuchos::RCP< LinSys::Vector sln,
Teuchos::RCP< LinSys::Matrix matrix,
Teuchos::RCP< LinSys::Vector rhs,
Teuchos::RCP< LinSys::MultiVector coords 
)
int sierra::nalu::TpetraLinearSolver::solve ( Teuchos::RCP< LinSys::Vector sln,
int &  iterationCount,
double &  scaledResidual 
)

Member Data Documentation

bool sierra::nalu::TpetraLinearSolver::activateMueLu_
private
TpetraLinearSolverConfig* sierra::nalu::TpetraLinearSolver::config_
private

Referenced by setMueLu(), and setupLinearSolver().

Teuchos::RCP<LinSys::MultiVector> sierra::nalu::TpetraLinearSolver::coords_
private
Teuchos::RCP<LinSys::Matrix> sierra::nalu::TpetraLinearSolver::matrix_
private
Teuchos::RCP<MueLu::TpetraOperator<SC,LO,GO,NO> > sierra::nalu::TpetraLinearSolver::mueluPreconditioner_
private

Referenced by destroyLinearSolver(), and setMueLu().

const Teuchos::RCP<Teuchos::ParameterList> sierra::nalu::TpetraLinearSolver::params_
private

Referenced by setMueLu(), and setupLinearSolver().

const Teuchos::RCP<Teuchos::ParameterList> sierra::nalu::TpetraLinearSolver::paramsPrecond_
private

Referenced by setupLinearSolver().

Teuchos::RCP<LinSys::Preconditioner> sierra::nalu::TpetraLinearSolver::preconditioner_
private
std::string sierra::nalu::TpetraLinearSolver::preconditionerType_
private

Referenced by setupLinearSolver(), and solve().

Teuchos::RCP<LinSys::LinearProblem> sierra::nalu::TpetraLinearSolver::problem_
private
Teuchos::RCP<LinSys::Vector> sierra::nalu::TpetraLinearSolver::rhs_
private
Teuchos::RCP<LinSys::SolverManager> sierra::nalu::TpetraLinearSolver::solver_
private

The documentation for this class was generated from the following files: