31 #ifndef LINEAR_ALGEBRA_H
32 #define LINEAR_ALGEBRA_H
42 static const std::map<std::string, consts::LinearAlgebraType> name_to_type;
43 static const std::map<consts::LinearAlgebraType, std::string> type_to_name;
45 const consts::LinearAlgebraType lin_alg_type,
const consts::LinearAlgebraType assembly_type);
50 virtual void assemble(
ComMod& com_mod,
const int num_elem_nodes,
const Vector<int>& eqN,
52 virtual void check_options(
const consts::PreconditionerType prec_cond_type,
const consts::LinearAlgebraType assembly_type) = 0;
53 virtual void initialize(
ComMod& com_mod,
eqType& lEq) = 0;
54 virtual void set_assembly(consts::LinearAlgebraType assembly_type) = 0;
55 virtual void set_preconditioner(consts::PreconditionerType prec_type) = 0;
58 virtual consts::LinearAlgebraType get_interface_type() {
return interface_type; }
60 consts::LinearAlgebraType interface_type = consts::LinearAlgebraType::none;
61 consts::LinearAlgebraType assembly_type = consts::LinearAlgebraType::none;
62 consts::PreconditionerType preconditioner_type = consts::PreconditionerType::PREC_NONE;
The ComMod class duplicates the data structures in the Fortran COMMOD module defined in MOD....
Definition: ComMod.h:1332
The LinearAlgebraFactory class provides a factory used to create objects derived from LinearAlgebra.
Definition: LinearAlgebra.h:66
static LinearAlgebra * create_interface(consts::LinearAlgebraType interface_type)
Create objects derived from LinearAlgebra.
Definition: LinearAlgebra.cpp:72
The LinearAlgebra class provides an abstract interface to linear algebra frameworks: FSILS,...
Definition: LinearAlgebra.h:40
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.
Definition: LinearAlgebra.cpp:52
Equation type.
Definition: ComMod.h:1000