svMultiPhysics
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
LinearAlgebra Class Referenceabstract

The LinearAlgebra class provides an abstract interface to linear algebra frameworks: FSILS, Trilinos, PETSc, etc. More...

#include <LinearAlgebra.h>

Inheritance diagram for LinearAlgebra:
[legend]

Public Member Functions

virtual void alloc (ComMod &com_mod, eqType &lEq)=0
 
virtual void assemble (ComMod &com_mod, const int num_elem_nodes, const Vector< int > &eqN, const Array3< double > &lK, const Array< double > &lR)=0
 
virtual void check_options (const consts::PreconditionerType prec_cond_type, const consts::LinearAlgebraType assembly_type)=0
 
virtual void initialize (ComMod &com_mod, eqType &lEq)=0
 
virtual void set_assembly (consts::LinearAlgebraType assembly_type)=0
 
virtual void set_preconditioner (consts::PreconditionerType prec_type)=0
 
virtual void solve (ComMod &com_mod, eqType &lEq, const Vector< int > &incL, const Vector< double > &res)=0
 
virtual consts::LinearAlgebraType get_interface_type ()
 

Static Public Member Functions

static void check_equation_compatibility (const consts::EquationType eq_phys, const consts::LinearAlgebraType lin_alg_type, const consts::LinearAlgebraType assembly_type)
 Check that equation physics is compatible with LinearAlgebra type. More...
 

Public Attributes

consts::LinearAlgebraType interface_type = consts::LinearAlgebraType::none
 
consts::LinearAlgebraType assembly_type = consts::LinearAlgebraType::none
 
consts::PreconditionerType preconditioner_type = consts::PreconditionerType::PREC_NONE
 

Static Public Attributes

static const std::map< std::string, consts::LinearAlgebraType > name_to_type
 
static const std::map< consts::LinearAlgebraType, std::string > type_to_name
 

Detailed Description

The LinearAlgebra class provides an abstract interface to linear algebra frameworks: FSILS, Trilinos, PETSc, etc.

Member Function Documentation

◆ check_equation_compatibility()

void LinearAlgebra::check_equation_compatibility ( const consts::EquationType  eq_phys,
const consts::LinearAlgebraType  lin_alg_type,
const consts::LinearAlgebraType  assembly_type 
)
static

Check that equation physics is compatible with LinearAlgebra type.

Member Data Documentation

◆ name_to_type

const std::map< std::string, consts::LinearAlgebraType > LinearAlgebra::name_to_type
static
Initial value:
= {
{"none", consts::LinearAlgebraType::none},
{"fsils", consts::LinearAlgebraType::fsils},
{"petsc", consts::LinearAlgebraType::petsc},
{"trilinos", consts::LinearAlgebraType::trilinos}
}

◆ type_to_name

const std::map< consts::LinearAlgebraType, std::string > LinearAlgebra::type_to_name
static
Initial value:
= {
{consts::LinearAlgebraType::none, "none"},
{consts::LinearAlgebraType::fsils, "fsils"},
{consts::LinearAlgebraType::petsc, "petsc"},
{consts::LinearAlgebraType::trilinos, "trilinos"}
}

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