MFEM
v3.0
|
#include <bilinearform.hpp>
Public Member Functions | |
DiscreteLinearOperator (FiniteElementSpace *domain_fes, FiniteElementSpace *range_fes) | |
void | AddDomainInterpolator (DiscreteInterpolator *di) |
Array< BilinearFormIntegrator * > * | GetDI () |
virtual void | Assemble (int skip_zeros=1) |
Public Member Functions inherited from mfem::MixedBilinearForm | |
MixedBilinearForm (FiniteElementSpace *tr_fes, FiniteElementSpace *te_fes) | |
virtual double & | Elem (int i, int j) |
Returns reference to a_{ij}. More... | |
virtual const double & | Elem (int i, int j) const |
Returns constant reference to a_{ij}. More... | |
virtual void | Mult (const Vector &x, Vector &y) const |
Operator application. More... | |
virtual void | AddMult (const Vector &x, Vector &y, const double a=1.0) const |
virtual void | AddMultTranspose (const Vector &x, Vector &y, const double a=1.0) const |
virtual void | MultTranspose (const Vector &x, Vector &y) const |
Action of the transpose operator. More... | |
virtual MatrixInverse * | Inverse () const |
Returns a pointer to (an approximation) of the matrix inverse. More... | |
virtual void | Finalize (int skip_zeros=1) |
Finalizes the matrix initialization. More... | |
void | GetBlocks (Array2D< SparseMatrix * > &blocks) const |
const SparseMatrix & | SpMat () const |
SparseMatrix & | SpMat () |
SparseMatrix * | LoseMat () |
void | AddDomainIntegrator (BilinearFormIntegrator *bfi) |
void | AddBoundaryIntegrator (BilinearFormIntegrator *bfi) |
void | AddTraceFaceIntegrator (BilinearFormIntegrator *bfi) |
Array< BilinearFormIntegrator * > * | GetDBFI () |
Array< BilinearFormIntegrator * > * | GetBBFI () |
Array< BilinearFormIntegrator * > * | GetTFBFI () |
void | operator= (const double a) |
void | Assemble (int skip_zeros=1) |
void | ConformingAssemble () |
void | EliminateTrialDofs (Array< int > &bdr_attr_is_ess, Vector &sol, Vector &rhs) |
void | EliminateEssentialBCFromTrialDofs (Array< int > &marked_vdofs, Vector &sol, Vector &rhs) |
virtual void | EliminateTestDofs (Array< int > &bdr_attr_is_ess) |
void | Update () |
virtual | ~MixedBilinearForm () |
Public Member Functions inherited from mfem::Matrix | |
Matrix (int s) | |
Creates a square matrix of size s. More... | |
Matrix (int h, int w) | |
Creates a matrix of the given height and width. More... | |
virtual void | Print (std::ostream &out=std::cout, int width_=4) const |
Prints matrix to stream out. More... | |
virtual | ~Matrix () |
Destroys matrix. More... | |
Public Member Functions inherited from mfem::Operator | |
Operator (int s=0) | |
Construct a square Operator with given size s (default 0) More... | |
Operator (int h, int w) | |
int | Height () const |
Get the height (size of output) of the Operator. Synonym with NumRows. More... | |
int | NumRows () const |
int | Width () const |
Get the width (size of input) of the Operator. Synonym with NumCols. More... | |
int | NumCols () const |
virtual Operator & | GetGradient (const Vector &x) const |
Evaluate the gradient operator at the point x. More... | |
void | PrintMatlab (std::ostream &out, int n=0, int m=0) |
Prints operator with input size n and output size m in matlab format. More... | |
virtual | ~Operator () |
Additional Inherited Members | |
Protected Attributes inherited from mfem::MixedBilinearForm | |
SparseMatrix * | mat |
FiniteElementSpace * | trial_fes |
FiniteElementSpace * | test_fes |
Array< BilinearFormIntegrator * > | dom |
Array< BilinearFormIntegrator * > | bdr |
Array< BilinearFormIntegrator * > | skt |
Protected Attributes inherited from mfem::Operator | |
int | height |
int | width |
Class for constructing the matrix representation of a linear operator, v = L u, from one FiniteElementSpace (domain) to another FiniteElementSpace (range). The constructed matrix A is such that
V = A U
where U and V are the vectors of degrees of freedom representing the functions u and v, respectively. The dimensions of A are
number of rows of A = dimension of the range space and number of cols of A = dimension of the domain space.
This class is very similar to MixedBilinearForm. One difference is that the linear operator L is defined using a special kind of BilinearFormIntegrator (we reuse its functionality instead of defining a new class). The other difference with the MixedBilinearForm class is that the "assembly" process overwrites the global matrix entries using the local element matrices instead of adding them.
Note that if we define the bilinear form b(u,v) := (Lu,v) using an inner product in the range space, then its matrix representation, B, is
B = M A, (since V^t B U = b(u,v) = (Lu,v) = V^t M A U)
where M denotes the mass matrix for the inner product in the range space: V1^t M V2 = (v1,v2). Similarly, if c(u,w) := (Lu,Lw) then
C = A^t M A.
Definition at line 337 of file bilinearform.hpp.
|
inline |
Definition at line 340 of file bilinearform.hpp.
|
inline |
Definition at line 344 of file bilinearform.hpp.
|
virtual |
Definition at line 731 of file bilinearform.cpp.
|
inline |
Definition at line 347 of file bilinearform.hpp.