31 #ifndef PETSC_LINEAR_ALGEBRA_H
32 #define PETSC_LINEAR_ALGEBRA_H
34 #include "LinearAlgebra.h"
47 virtual void check_options(
const consts::PreconditionerType prec_cond_type,
const consts::LinearAlgebraType assembly_type);
50 virtual void set_assembly(consts::LinearAlgebraType assembly_type);
54 static std::set<consts::LinearAlgebraType> valid_assemblers;
61 bool use_fsils_assembly =
false;
The ComMod class duplicates the data structures in the Fortran COMMOD module defined in MOD....
Definition: ComMod.h:1332
The LinearAlgebra class provides an abstract interface to linear algebra frameworks: FSILS,...
Definition: LinearAlgebra.h:40
Definition: petsc_impl.cpp:933
The PetscLinearAlgebra class implements the LinearAlgebra interface for the PETSc numerical linear al...
Definition: PetscLinearAlgebra.h:39
virtual void initialize(ComMod &com_mod, eqType &lEq)
Initialize the PETSc framework.
Definition: PetscLinearAlgebra.cpp:115
virtual void assemble(ComMod &com_mod, const int num_elem_nodes, const Vector< int > &eqN, const Array3< double > &lK, const Array< double > &lR)
Assemble local element arrays.
Definition: PetscLinearAlgebra.cpp:85
virtual void set_preconditioner(consts::PreconditionerType prec_type)
Set the proconditioner.
Definition: PetscLinearAlgebra.cpp:149
virtual void set_assembly(consts::LinearAlgebraType assembly_type)
Set the linear algebra package for assembly.
Definition: PetscLinearAlgebra.cpp:129
virtual void solve(ComMod &com_mod, eqType &lEq, const Vector< int > &incL, const Vector< double > &res)
Solve a system of linear equations.
Definition: PetscLinearAlgebra.cpp:162
virtual void check_options(const consts::PreconditionerType prec_cond_type, const consts::LinearAlgebraType assembly_type)
Check the validity of the precondition and assembly types options.
Definition: PetscLinearAlgebra.cpp:92
virtual void alloc(ComMod &com_mod, eqType &lEq)
Allocate data arrays.
Definition: PetscLinearAlgebra.cpp:79
Equation type.
Definition: ComMod.h:1000