12 #ifndef MFEM_DGMASSINV_HPP
13 #define MFEM_DGMASSINV_HPP
15 #include "../linalg/operator.hpp"
106 template<
int DIM,
int D1D = 0,
int Q1D = 0>
Class for an integration rule - an Array of IntegrationPoint.
void SetOperator(const Operator &op)
Not implemented. Aborts.
DGMassInverse(FiniteElementSpace &fes_, Coefficient *coeff, const IntegrationRule *ir, int btype)
Protected constructor, used internally.
void SetAbsTol(const double abs_tol_)
Set the absolute tolerance.
Array< double > Bt_
Inverse of change of basis, transposed.
void SetMaxIter(const double max_iter_)
Set the maximum number of iterations.
double abs_tol
Absolute CG tolerance.
double rel_tol
Relative CG tolerance.
Array< double > B_
Inverse of change of basis.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormI...
DG_FECollection fec
FE collection in requested basis.
Structure representing the matrices/tensors needed to evaluate (in reference space) the values...
void Mult(const Vector &b, Vector &u) const
Solve the system M b = u.
class BilinearForm * M
Mass bilinear form, owned.
int max_iter
Maximum number of CG iterations;.
void DGMassCGIteration(const Vector &b_, Vector &u_) const
Solve the system M b = u. Not part of the public interface.
class MassIntegrator * m
Mass integrator, owned by the form M.
const DofToQuad * d2q
Change of basis. Not owned.
Vector diag_inv
Jacobi preconditioner.
double u(const Vector &xvec)
FiniteElementSpace fes
FE space in requested basis.
void SetRelTol(const double rel_tol_)
Set the relative tolerance.
Solver for the discontinuous Galerkin mass matrix.
void Update()
Recompute operator and preconditioner (when coefficient or mesh changes).
Arbitrary order "L2-conforming" discontinuous finite elements.