|  | MFEM v4.8.0
    Finite element discretization library | 
#include <pfem_extras.hpp>
| Public Member Functions | |
| ParDiscreteInterpolationOperator (ParFiniteElementSpace *dfes, ParFiniteElementSpace *rfes) | |
| virtual | ~ParDiscreteInterpolationOperator () | 
|  Public Member Functions inherited from mfem::ParDiscreteLinearOperator | |
| ParDiscreteLinearOperator (ParFiniteElementSpace *dfes, ParFiniteElementSpace *rfes) | |
| Construct a ParDiscreteLinearOperator on the given FiniteElementSpaces dfes (domain FE space) and rfes (range FE space). | |
| HypreParMatrix * | ParallelAssemble () const | 
| Returns the matrix "assembled" on the true dofs. | |
| void | ParallelAssemble (OperatorHandle &A) | 
| Returns the matrix assembled on the true dofs, i.e. A = R_test A_local P_trial, in the format (type id) specified by A. | |
| void | GetParBlocks (Array2D< HypreParMatrix * > &blocks) const | 
| virtual void | FormRectangularSystemMatrix (OperatorHandle &A) | 
| Return in A a parallel (on truedofs) version of this operator. | |
| virtual | ~ParDiscreteLinearOperator () | 
| virtual void | FormRectangularSystemMatrix (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, OperatorHandle &A) | 
| Return in A that is column-constrained. | |
| template<typename OpType > | |
| void | FormRectangularSystemMatrix (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, OpType &A) | 
| Form the column-constrained linear system matrix A. | |
|  Public Member Functions inherited from mfem::DiscreteLinearOperator | |
| DiscreteLinearOperator (FiniteElementSpace *domain_fes, FiniteElementSpace *range_fes) | |
| Construct a DiscreteLinearOperator on the given FiniteElementSpaces domain_fes and range_fes. | |
| void | AddDomainInterpolator (DiscreteInterpolator *di) | 
| Adds a domain interpolator. Assumes ownership of di. | |
| void | AddDomainInterpolator (DiscreteInterpolator *di, Array< int > &elem_marker) | 
| void | AddTraceFaceInterpolator (DiscreteInterpolator *di) | 
| Adds a trace face interpolator. Assumes ownership of di. | |
| Array< BilinearFormIntegrator * > * | GetDI () | 
| Access all interpolators added with AddDomainInterpolator(). | |
| Array< Array< int > * > * | GetDI_Marker () | 
| void | SetAssemblyLevel (AssemblyLevel assembly_level) | 
| Set the desired assembly level. The default is AssemblyLevel::FULL. | |
| virtual void | Assemble (int skip_zeros=1) | 
| Construct the internal matrix representation of the discrete linear operator. | |
| const Operator * | GetOutputRestrictionTranspose () const override | 
| Get the output finite element space restriction matrix in transposed form. | |
|  Public Member Functions inherited from mfem::MixedBilinearForm | |
| MixedBilinearForm (FiniteElementSpace *tr_fes, FiniteElementSpace *te_fes) | |
| Construct a MixedBilinearForm on the given trial, tr_fes, and test, te_fes, FiniteElementSpaces. | |
| MixedBilinearForm (FiniteElementSpace *tr_fes, FiniteElementSpace *te_fes, MixedBilinearForm *mbf) | |
| Create a MixedBilinearForm on the given trial, tr_fes, and test, te_fes, FiniteElementSpaces, using the same integrators as the MixedBilinearForm mbf. | |
| real_t & | Elem (int i, int j) override | 
| Returns a reference to: \( M_{ij} \). | |
| const real_t & | Elem (int i, int j) const override | 
| Returns a reference to: \( M_{ij} \). | |
| void | Mult (const Vector &x, Vector &y) const override | 
| Matrix multiplication: \( y = M x \). | |
| void | AddMult (const Vector &x, Vector &y, const real_t a=1.0) const override | 
| Add the matrix vector multiple to a vector: \( y += a M x \). | |
| void | MultTranspose (const Vector &x, Vector &y) const override | 
| Matrix transpose vector multiplication: \( y = M^T x \). | |
| void | AddMultTranspose (const Vector &x, Vector &y, const real_t a=1.0) const override | 
| Add the matrix transpose vector multiplication: \( y += a M^T x \). | |
| MatrixInverse * | Inverse () const override | 
| Returns a pointer to (approximation) of the matrix inverse: \( M^{-1} \) (currently unimplemented and returns NULL) | |
| void | Finalize (int skip_zeros=1) override | 
| Finalizes the matrix initialization if the AssemblyLevel is AssemblyLevel::LEGACY. | |
| void | GetBlocks (Array2D< SparseMatrix * > &blocks) const | 
| Extract the associated matrix as SparseMatrix blocks. The number of block rows and columns is given by the vector dimensions (vdim) of the test and trial spaces, respectively. | |
| const SparseMatrix & | SpMat () const | 
| Returns a const reference to the sparse matrix: \( M \). | |
| SparseMatrix & | SpMat () | 
| Returns a reference to the sparse matrix: \( M \). | |
| SparseMatrix * | LoseMat () | 
| Nullifies the internal matrix \( M \) and returns a pointer to it. Used for transferring ownership. | |
| const SparseMatrix & | SpMatElim () const | 
| Returns a const reference to the sparse matrix of eliminated b.c.: \( M_e \). | |
| SparseMatrix & | SpMatElim () | 
| Returns a reference to the sparse matrix of eliminated b.c.: \( M_e \). | |
| void | AddDomainIntegrator (BilinearFormIntegrator *bfi) | 
| Adds a domain integrator. Assumes ownership of bfi. | |
| void | AddDomainIntegrator (BilinearFormIntegrator *bfi, Array< int > &elem_marker) | 
| Adds a domain integrator. Assumes ownership of bfi. | |
| void | AddBoundaryIntegrator (BilinearFormIntegrator *bfi) | 
| Adds a boundary integrator. Assumes ownership of bfi. | |
| void | AddBoundaryIntegrator (BilinearFormIntegrator *bfi, Array< int > &bdr_marker) | 
| Adds a boundary integrator. Assumes ownership of bfi. | |
| void | AddInteriorFaceIntegrator (BilinearFormIntegrator *bfi) | 
| Adds an interior face integrator. Assumes ownership of bfi. | |
| void | AddBdrFaceIntegrator (BilinearFormIntegrator *bfi) | 
| Adds a boundary face integrator. Assumes ownership of bfi. | |
| void | AddBdrFaceIntegrator (BilinearFormIntegrator *bfi, Array< int > &bdr_marker) | 
| Adds a boundary face integrator. Assumes ownership of bfi. | |
| void | AddTraceFaceIntegrator (BilinearFormIntegrator *bfi) | 
| Add a trace face integrator. Assumes ownership of bfi. | |
| void | AddBdrTraceFaceIntegrator (BilinearFormIntegrator *bfi) | 
| Adds a boundary trace face integrator. Assumes ownership of bfi. | |
| void | AddBdrTraceFaceIntegrator (BilinearFormIntegrator *bfi, Array< int > &bdr_marker) | 
| Adds a boundary trace face integrator. Assumes ownership of bfi. | |
| Array< BilinearFormIntegrator * > * | GetDBFI () | 
| Access all integrators added with AddDomainIntegrator(). | |
| Array< Array< int > * > * | GetDBFI_Marker () | 
| Access all domain markers added with AddDomainIntegrator(). If no marker was specified when the integrator was added, the corresponding pointer (to Array<int>) will be NULL. | |
| Array< BilinearFormIntegrator * > * | GetBBFI () | 
| Access all integrators added with AddBoundaryIntegrator(). | |
| Array< Array< int > * > * | GetBBFI_Marker () | 
| Access all boundary markers added with AddBoundaryIntegrator(). | |
| Array< BilinearFormIntegrator * > * | GetFBFI () | 
| Access all integrators added with AddInteriorFaceIntegrator(). | |
| Array< BilinearFormIntegrator * > * | GetBFBFI () | 
| Access all integrators added with AddBdrFaceIntegrator(). | |
| Array< Array< int > * > * | GetBFBFI_Marker () | 
| Access all boundary markers added with AddBdrFaceIntegrator(). If no marker was specified when the integrator was added, the corresponding pointer (to Array<int>) will be NULL. | |
| Array< BilinearFormIntegrator * > * | GetTFBFI () | 
| Access all integrators added with AddTraceFaceIntegrator(). | |
| Array< BilinearFormIntegrator * > * | GetBTFBFI () | 
| Access all integrators added with AddBdrTraceFaceIntegrator(). | |
| Array< Array< int > * > * | GetBTFBFI_Marker () | 
| Access all boundary markers added with AddBdrTraceFaceIntegrator() | |
| void | operator= (const real_t a) | 
| Sets all sparse values of \( M \) to a. | |
| void | SetAssemblyLevel (AssemblyLevel assembly_level) | 
| Set the desired assembly level. The default is AssemblyLevel::LEGACY. | |
| void | Assemble (int skip_zeros=1) | 
| void | AssembleDiagonal_ADAt (const Vector &D, Vector &diag) const | 
| Assemble the diagonal of ADA^T into diag, where A is this mixed bilinear form and D is a diagonal. | |
| const Operator * | GetProlongation () const override | 
| Get the input finite element space prolongation matrix. | |
| const Operator * | GetRestriction () const override | 
| Get the input finite element space restriction matrix. | |
| const Operator * | GetOutputProlongation () const override | 
| Get the test finite element space prolongation matrix. | |
| const Operator * | GetOutputRestriction () const override | 
| Get the test finite element space restriction matrix. | |
| void | ConformingAssemble () | 
| For partially conforming trial and/or test FE spaces, complete the assembly process by performing \( P2^t A P1 \) where \( A \) is the internal sparse matrix; \( P1 \) and \( P2 \) are the conforming prolongation matrices of the trial and test FE spaces, respectively. After this call the MixedBilinearForm becomes an operator on the conforming FE spaces. | |
| void | ComputeElementMatrix (int i, DenseMatrix &elmat) const | 
| Compute the element matrix of the given element. | |
| void | ComputeBdrElementMatrix (int i, DenseMatrix &elmat) const | 
| Compute the boundary element matrix of the given boundary element. | |
| void | ComputeTraceFaceMatrix (int i, DenseMatrix &elmat) const | 
| Compute the trace face matrix of the given face element. | |
| void | ComputeBdrTraceFaceMatrix (int i, DenseMatrix &elmat) const | 
| Compute the boundary trace face matrix of the given boundary element. | |
| void | ComputeFaceMatrix (int i, DenseMatrix &elmat) const | 
| Compute the face matrix of the given face element. | |
| void | ComputeBdrFaceMatrix (int i, DenseMatrix &elmat) const | 
| Compute the boundary face matrix of the given boundary element. | |
| void | AssembleElementMatrix (int i, const DenseMatrix &elmat, int skip_zeros=1) | 
| Assemble the given element matrix. | |
| void | AssembleElementMatrix (int i, const DenseMatrix &elmat, Array< int > &trial_vdofs, Array< int > &test_vdofs, int skip_zeros=1) | 
| Assemble the given element matrix. | |
| void | AssembleBdrElementMatrix (int i, const DenseMatrix &elmat, int skip_zeros=1) | 
| Assemble the given boundary element matrix. | |
| void | AssembleBdrElementMatrix (int i, const DenseMatrix &elmat, Array< int > &trial_vdofs, Array< int > &test_vdofs, int skip_zeros=1) | 
| Assemble the given boundary element matrix. | |
| void | EliminateTrialEssentialBC (const Array< int > &bdr_attr_is_ess, const Vector &sol, Vector &rhs) | 
| Eliminate essential boundary trial DOFs from the system. | |
| void | EliminateTrialEssentialBC (const Array< int > &bdr_attr_is_ess) | 
| Eliminate essential boundary trial DOFs from the system matrix. | |
| MFEM_DEPRECATED void | EliminateTrialDofs (const Array< int > &bdr_attr_is_ess, const Vector &sol, Vector &rhs) | 
| (DEPRECATED) Eliminate essential boundary trial DOFs from the system. | |
| void | EliminateTrialVDofs (const Array< int > &vdofs, const Vector &sol, Vector &rhs) | 
| Eliminate the given trial vdofs. NOTE: here, vdofs is a list of DOFs. | |
| void | EliminateTrialVDofs (const Array< int > &vdofs) | 
| Eliminate the given trial vdofs, storing the eliminated part internally in \( M_e \). | |
| void | EliminateTrialVDofsInRHS (const Array< int > &vdofs, const Vector &x, Vector &b) | 
| Use the stored eliminated part of the matrix (see EliminateTrialVDofs(const Array<int> &)) to modify the r.h.s. b; vdofs is a list of DOFs (non-directional, i.e. >= 0). | |
| void | EliminateEssentialBCFromTrialDofs (const Array< int > &marked_vdofs, const Vector &sol, Vector &rhs) | 
| Similar to EliminateTrialVDofs(const Array<int> &, const Vector &, Vector &) but here ess_dofs is a marker (boolean) array on all vector-dofs (ess_dofs[i] < 0 is true). | |
| void | EliminateTestEssentialBC (const Array< int > &bdr_attr_is_ess) | 
| Eliminate essential boundary test DOFs from the system matrix. | |
| virtual MFEM_DEPRECATED void | EliminateTestDofs (const Array< int > &bdr_attr_is_ess) | 
| (DEPRECATED) Eliminate essential boundary test DOFs from the system. | |
| void | EliminateTestVDofs (const Array< int > &vdofs) | 
| Eliminate the given test vdofs. NOTE: here, vdofs is a list of DOFs. | |
| template<typename OpType > | |
| void | FormRectangularSystemMatrix (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, OpType &A) | 
| Form the column-constrained linear system matrix A. | |
| virtual void | FormRectangularLinearSystem (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, Vector &x, Vector &b, OperatorHandle &A, Vector &X, Vector &B) | 
| Form the linear system A X = B, corresponding to this mixed bilinear form and the linear form b(.). | |
| template<typename OpType > | |
| void | FormRectangularLinearSystem (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, Vector &x, Vector &b, OpType &A, Vector &X, Vector &B) | 
| Form the linear system A X = B, corresponding to this bilinear form and the linear form b(.). | |
| void | Update () | 
| Must be called after making changes to trial_fes or test_fes. | |
| FiniteElementSpace * | TrialFESpace () | 
| Return the trial FE space associated with the BilinearForm. | |
| const FiniteElementSpace * | TrialFESpace () const | 
| Read-only access to the associated trial FiniteElementSpace. | |
| FiniteElementSpace * | TestFESpace () | 
| Return the test FE space associated with the BilinearForm. | |
| const FiniteElementSpace * | TestFESpace () const | 
| Read-only access to the associated test FiniteElementSpace. | |
| void | Print (std::ostream &os=mfem::out, int width_=4) const override | 
| Prints operator to stream os. | |
| virtual | ~MixedBilinearForm () | 
| Deletes internal matrices, bilinear integrators, and the BilinearFormExtension. | |
|  Public Member Functions inherited from mfem::Matrix | |
| Matrix (int s) | |
| Creates a square matrix of size s. | |
| Matrix (int h, int w) | |
| Creates a matrix of the given height and width. | |
| bool | IsSquare () const | 
| Returns whether the matrix is a square matrix. | |
| virtual | ~Matrix () | 
| Destroys matrix. | |
|  Public Member Functions inherited from mfem::Operator | |
| void | InitTVectors (const Operator *Po, const Operator *Ri, const Operator *Pi, Vector &x, Vector &b, Vector &X, Vector &B) const | 
| Initializes memory for true vectors of linear system. | |
| Operator (int s=0) | |
| Construct a square Operator with given size s (default 0). | |
| Operator (int h, int w) | |
| Construct an Operator with the given height (output size) and width (input size). | |
| int | Height () const | 
| Get the height (size of output) of the Operator. Synonym with NumRows(). | |
| int | NumRows () const | 
| Get the number of rows (size of output) of the Operator. Synonym with Height(). | |
| int | Width () const | 
| Get the width (size of input) of the Operator. Synonym with NumCols(). | |
| int | NumCols () const | 
| Get the number of columns (size of input) of the Operator. Synonym with Width(). | |
| virtual MemoryClass | GetMemoryClass () const | 
| Return the MemoryClass preferred by the Operator. | |
| virtual void | ArrayMult (const Array< const Vector * > &X, Array< Vector * > &Y) const | 
| Operator application on a matrix: Y=A(X). | |
| virtual void | ArrayMultTranspose (const Array< const Vector * > &X, Array< Vector * > &Y) const | 
| Action of the transpose operator on a matrix: Y=A^t(X). | |
| virtual void | ArrayAddMult (const Array< const Vector * > &X, Array< Vector * > &Y, const real_t a=1.0) const | 
| Operator application on a matrix: Y+=A(X)(default) orY+=a*A(X). | |
| virtual void | ArrayAddMultTranspose (const Array< const Vector * > &X, Array< Vector * > &Y, const real_t a=1.0) const | 
| Operator transpose application on a matrix: Y+=A^t(X)(default) orY+=a*A^t(X). | |
| virtual Operator & | GetGradient (const Vector &x) const | 
| Evaluate the gradient operator at the point x. The default behavior in class Operator is to generate an error. | |
| virtual void | AssembleDiagonal (Vector &diag) const | 
| Computes the diagonal entries into diag. Typically, this operation only makes sense for linear Operators. In some cases, only an approximation of the diagonal is computed. | |
| void | FormLinearSystem (const Array< int > &ess_tdof_list, Vector &x, Vector &b, Operator *&A, Vector &X, Vector &B, int copy_interior=0) | 
| Form a constrained linear system using a matrix-free approach. | |
| void | FormRectangularLinearSystem (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, Vector &x, Vector &b, Operator *&A, Vector &X, Vector &B) | 
| Form a column-constrained linear system using a matrix-free approach. | |
| virtual void | RecoverFEMSolution (const Vector &X, const Vector &b, Vector &x) | 
| Reconstruct a solution vector x (e.g. a GridFunction) from the solution X of a constrained linear system obtained from Operator::FormLinearSystem() or Operator::FormRectangularLinearSystem(). | |
| void | FormSystemOperator (const Array< int > &ess_tdof_list, Operator *&A) | 
| Return in A a parallel (on truedofs) version of this square operator. | |
| void | FormRectangularSystemOperator (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, Operator *&A) | 
| Return in A a parallel (on truedofs) version of this rectangular operator (including constraints). | |
| void | FormDiscreteOperator (Operator *&A) | 
| Return in A a parallel (on truedofs) version of this rectangular operator. | |
| void | PrintMatlab (std::ostream &out, int n, int m=0) const | 
| Prints operator with input size n and output size m in Matlab format. | |
| virtual void | PrintMatlab (std::ostream &out) const | 
| Prints operator in Matlab format. | |
| virtual | ~Operator () | 
| Virtual destructor. | |
| Type | GetType () const | 
| Return the type ID of the Operator class. | |
Definition at line 85 of file pfem_extras.hpp.
| 
 | inline | 
Definition at line 88 of file pfem_extras.hpp.
| 
 | virtual | 
Definition at line 73 of file pfem_extras.cpp.