MFEM v2.0
|
#include <bilinearform.hpp>
Public Member Functions | |
DiscreteLinearOperator (FiniteElementSpace *domain_fes, FiniteElementSpace *range_fes) | |
void | AddDomainInterpolator (DiscreteInterpolator *di) |
virtual void | Assemble (int skip_zeros=1) |
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 276 of file bilinearform.hpp.
DiscreteLinearOperator::DiscreteLinearOperator | ( | FiniteElementSpace * | domain_fes, |
FiniteElementSpace * | range_fes | ||
) | [inline] |
Definition at line 279 of file bilinearform.hpp.
void DiscreteLinearOperator::AddDomainInterpolator | ( | DiscreteInterpolator * | di | ) | [inline] |
Definition at line 283 of file bilinearform.hpp.
References MixedBilinearForm::AddDomainIntegrator().
void DiscreteLinearOperator::Assemble | ( | int | skip_zeros = 1 | ) | [virtual] |
Reimplemented from MixedBilinearForm.
Definition at line 574 of file bilinearform.cpp.
References MixedBilinearForm::dom, FiniteElementSpace::GetElementTransformation(), FiniteElementSpace::GetElementVDofs(), FiniteElementSpace::GetFE(), FiniteElementSpace::GetNE(), MixedBilinearForm::mat, SparseMatrix::SetSubMatrix(), Array< T >::Size(), Operator::size, MixedBilinearForm::test_fes, MixedBilinearForm::trial_fes, and MixedBilinearForm::width.