Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
FEDD::LinearSolver< SC, LO, GO, NO > Class Template Reference

Public Types

typedef Problem< SC, LO, GO, NO > Problem_Type
 
typedef Teuchos::RCP< Problem_TypeProblemPtr_Type
 
typedef TimeProblem< SC, LO, GO, NO > TimeProblem_Type
 
typedef Teuchos::RCP< const Thyra::LinearOpBase< SC > > ThyraLinOpConstPtr_Type
 
typedef Thyra::BlockedLinearOpBase< SC > ThyraLinOpBlock_Type
 
typedef Teuchos::RCP< ThyraLinOpBlock_Type > ThyraLinOpBlockPtr_Type
 
typedef Teuchos::RCP< const ThyraLinOpBlock_Type > ThyraLinOpBlockConstPtr_Type
 
typedef Teuchos::RCP< Thyra::PreconditionerBase< SC > > ThyraPrecPtr_Type
 
typedef Problem_Type::Matrix_Type Matrix_Type
 
typedef Problem_Type::MatrixPtr_Type MatrixPtr_Type
 
typedef Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type
 
typedef BlockMultiVector< SC, LO, GO, NO > BlockMultiVector_Type
 
typedef Teuchos::RCP< BlockMultiVector_TypeBlockMultiVectorPtr_Type
 

Public Member Functions

int solve (Problem_Type *problem, BlockMultiVectorPtr_Type rhs, std::string type="Monolithic")
 Call to solve a linear/linearized problem with right-hand side rhs. Depending on 'type' solveMonolithic, solveTeko, solveBlock is called.
 
int solve (TimeProblem_Type *timeProblem, BlockMultiVectorPtr_Type rhs, std::string type="Monolithic")
 Call to solve a linear/linearized problem with right-hand side rhs. Depending on 'type' solveMonolithic, solveTeko, solveBlock is called.
 
int solveMonolithic (Problem_Type *problem, BlockMultiVectorPtr_Type rhs, std::string type)
 Solve linear/linearized problem monolithicly.
 
int solveMonolithic (TimeProblem_Type *problem, BlockMultiVectorPtr_Type rhs)
 Solve linear/linearized time dependent problem monolithicly.
 
int solveBlock (Problem_Type *problem, BlockMultiVectorPtr_Type rhs, std::string precType)
 In case of a block system, solve block is called. It works also for teko.
 
int solveBlock (TimeProblem_Type *problem, BlockMultiVectorPtr_Type rhs, std::string precType)
 In case of a block system, solve block is called. It works also for teko.
 

Member Function Documentation

◆ solve() [1/2]

template<class SC, class LO, class GO, class NO>
int FEDD::LinearSolver< SC, LO, GO, NO >::solve ( Problem_Type * problem,
BlockMultiVectorPtr_Type rhs,
std::string type = "Monolithic" )

Call to solve a linear/linearized problem with right-hand side rhs. Depending on 'type' solveMonolithic, solveTeko, solveBlock is called.

Parameters
[in]problem
[in]rhs
[in]type
Here is the call graph for this function:

◆ solve() [2/2]

template<class SC, class LO, class GO, class NO>
int FEDD::LinearSolver< SC, LO, GO, NO >::solve ( TimeProblem_Type * timeProblem,
BlockMultiVectorPtr_Type rhs,
std::string type = "Monolithic" )

Call to solve a linear/linearized problem with right-hand side rhs. Depending on 'type' solveMonolithic, solveTeko, solveBlock is called.

Parameters
[in]timeProblem
[in]rhs
[in]type
Here is the call graph for this function:

◆ solveBlock() [1/2]

template<class SC, class LO, class GO, class NO>
int FEDD::LinearSolver< SC, LO, GO, NO >::solveBlock ( Problem_Type * problem,
BlockMultiVectorPtr_Type rhs,
std::string precType )

In case of a block system, solve block is called. It works also for teko.

Parameters
[in]problem
[in]rhs
[in]precType
Here is the caller graph for this function:

◆ solveBlock() [2/2]

template<class SC, class LO, class GO, class NO>
int FEDD::LinearSolver< SC, LO, GO, NO >::solveBlock ( TimeProblem_Type * problem,
BlockMultiVectorPtr_Type rhs,
std::string precType )

In case of a block system, solve block is called. It works also for teko.

Parameters
[in]problem
[in]rhs
[in]precTypes

◆ solveMonolithic() [1/2]

template<class SC, class LO, class GO, class NO>
int FEDD::LinearSolver< SC, LO, GO, NO >::solveMonolithic ( Problem_Type * problem,
BlockMultiVectorPtr_Type rhs,
std::string type )

Solve linear/linearized problem monolithicly.

Parameters
[in]problem
[in]rhs
[in]type
Here is the caller graph for this function:

◆ solveMonolithic() [2/2]

template<class SC, class LO, class GO, class NO>
int FEDD::LinearSolver< SC, LO, GO, NO >::solveMonolithic ( TimeProblem_Type * problem,
BlockMultiVectorPtr_Type rhs )

Solve linear/linearized time dependent problem monolithicly.

Parameters
[in]problem
[in]rhs

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