12 #ifndef MFEM_BILINEARFORM
13 #define MFEM_BILINEARFORM
15 #include "../config/config.hpp"
16 #include "../linalg/linalg.hpp"
133 virtual double &
Elem(
int i,
int j);
136 virtual const double &
Elem(
int i,
int j)
const;
157 virtual void Finalize(
int skip_zeros = 1);
162 MFEM_VERIFY(
mat,
"mat is NULL and can't be dereferenced");
167 MFEM_VERIFY(
mat,
"mat is NULL and can't be dereferenced");
175 MFEM_VERIFY(
mat_e,
"mat_e is NULL and can't be dereferenced");
180 MFEM_VERIFY(
mat_e,
"mat_e is NULL and can't be dereferenced");
198 if (
mat != NULL) { *
mat = a; }
229 int copy_interior = 0);
326 virtual double&
Elem (
int i,
int j);
328 virtual const double&
Elem (
int i,
int j)
const;
333 const double a = 1.0)
const;
336 const double a = 1.0)
const;
343 virtual void Finalize (
int skip_zeros = 1);
439 virtual void Assemble(
int skip_zeros = 1);
Data type dense matrix using column-major storage.
void AddMult(const Vector &x, Vector &y, const double a=1.0) const
y += A * x (default) or y += a * A * x
Abstract data type for matrix inverse.
void AddDomainInterpolator(DiscreteInterpolator *di)
DiscreteLinearOperator(FiniteElementSpace *domain_fes, FiniteElementSpace *range_fes)
Abstract data type matrix.
virtual void Mult(const Vector &x, Vector &y) const
Matrix vector multiplication.
void AddTraceFaceInterpolator(DiscreteInterpolator *di)
FiniteElementSpace * GetTraceFESpace()
Return a pointer to the reduced/trace FE space.
virtual void Assemble(int skip_zeros=1)
Rank 3 tensor (array of matrices)
Array< BilinearFormIntegrator * > * GetDI()
double InnerProduct(const Vector &x, const Vector &y) const
Compute y^t A x.