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