![]() |
MFEM v4.8.0
Finite element discretization library
|
Extension class supporting Hybridization on device (GPU). More...
#include <hybridization_ext.hpp>
Public Types | |
enum | DofType : char { ESSENTIAL , BOUNDARY , INTERIOR } |
Public Member Functions | |
void | ConstructC () |
Construct the constraint matrix. | |
template<int MID, int MBD> | |
void | FactorElementMatrices (Vector &AhatInvCt_mat) |
void | ConstructH () |
Form the Schur complement matrix | |
void | MultCt (const Vector &x, Vector &y) const |
Compute the action of C^t x. | |
void | MultC (const Vector &x, Vector &y) const |
Compute the action of C x. | |
void | AssembleMatrix (int el, const class DenseMatrix &elmat) |
Assemble the element matrix A into the hybridized system matrix. | |
void | AssembleBdrMatrix (int bdr_el, const class DenseMatrix &elmat) |
Assemble the boundary element matrix A into the hybridized system matrix. | |
void | AssembleElementMatrices (const class DenseTensor &el_mats) |
Invert and store the element matrices Ahat. | |
void | MultR (const Vector &b, Vector &b_hat) const |
Apply the action of R mapping from "hat DOFs" to T-vector. | |
void | MultRt (const Vector &b, Vector &b_hat) const |
Apply the action of R^t mapping into the "hat DOF" space. | |
void | MultAhatInv (Vector &x) const |
Apply the elementwise A_hat^{-1}. | |
HybridizationExtension (class Hybridization &hybridization_) | |
Constructor. | |
void | Init (const Array< int > &ess_tdof_list) |
Prepare for assembly; form the constraint matrix. | |
void | ReduceRHS (const Vector &b, Vector &b_r) const |
Given a right-hand side on the original space, compute the corresponding right-hand side for the Lagrange multipliers. | |
void | ComputeSolution (const Vector &b, const Vector &sol_r, Vector &sol) const |
Given Lagrange multipliers sol_r and the original right-hand side b, recover the solution sol on the original finite element space. | |
void | Reset () |
Destroys the stored element matrices. | |
Protected Attributes | |
class Hybridization & | h |
The associated Hybridization object.=. | |
int | num_hat_dofs |
Number of Lagrange multipliers. | |
Vector | tmp1 |
Vector | tmp2 |
Temporary vectors. | |
Array< int > | hat_dof_gather_map |
Array< DofType > | hat_dof_marker |
Array< int > | el_to_face |
Array< int > | face_to_el |
Vector | Ct_mat |
Constraint matrix (transposed) stored element-wise. | |
Array< int > | idofs |
Array< int > | bdofs |
Vector | Ahat |
Vector | Ahat_ii |
Vector | Ahat_ib |
Vector | Ahat_bi |
Vector | Ahat_bb |
Array< int > | Ahat_ii_piv |
Array< int > | Ahat_bb_piv |
Friends | |
class | Hybridization |
Extension class supporting Hybridization on device (GPU).
Similar to BilinearFormExtension and LinearFormExtension, this extension class provides device execution capabilities for the Hybridization class.
As with the other extension classes, a limitation of this class is that it requires meshes consisting only of tensor-product elements, and finite element spaces without variable polynomial degrees.
Definition at line 30 of file hybridization_ext.hpp.
enum mfem::HybridizationExtension::DofType : char |
Enumerator | |
---|---|
ESSENTIAL | |
BOUNDARY | |
INTERIOR |
Definition at line 34 of file hybridization_ext.hpp.
mfem::HybridizationExtension::HybridizationExtension | ( | class Hybridization & | hybridization_ | ) |
Constructor.
Definition at line 22 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::AssembleBdrMatrix | ( | int | bdr_el, |
const class DenseMatrix & | elmat ) |
Assemble the boundary element matrix A into the hybridized system matrix.
Definition at line 643 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::AssembleElementMatrices | ( | const class DenseTensor & | el_mats | ) |
Invert and store the element matrices Ahat.
Definition at line 689 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::AssembleMatrix | ( | int | el, |
const class DenseMatrix & | elmat ) |
Assemble the element matrix A into the hybridized system matrix.
Definition at line 631 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::ComputeSolution | ( | const Vector & | b, |
const Vector & | sol_r, | ||
Vector & | sol ) const |
Given Lagrange multipliers sol_r and the original right-hand side b, recover the solution sol on the original finite element space.
Definition at line 1103 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::ConstructC | ( | ) |
Construct the constraint matrix.
Definition at line 37 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::ConstructH | ( | ) |
Form the Schur complement matrix
Definition at line 291 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::FactorElementMatrices | ( | Vector & | AhatInvCt_mat | ) |
Definition at line 108 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::Init | ( | const Array< int > & | ess_tdof_list | ) |
Prepare for assembly; form the constraint matrix.
Definition at line 699 of file hybridization_ext.cpp.
void mfem::HybridizationExtension::MultAhatInv | ( | Vector & | x | ) | const |
Apply the elementwise A_hat^{-1}.
Definition at line 988 of file hybridization_ext.cpp.
Compute the action of C x.
Definition at line 586 of file hybridization_ext.cpp.
Compute the action of C^t x.
Definition at line 546 of file hybridization_ext.cpp.
Apply the action of R mapping from "hat DOFs" to T-vector.
Definition at line 910 of file hybridization_ext.cpp.
Apply the action of R^t mapping into the "hat DOF" space.
Definition at line 953 of file hybridization_ext.cpp.
Given a right-hand side on the original space, compute the corresponding right-hand side for the Lagrange multipliers.
Definition at line 1076 of file hybridization_ext.cpp.
|
inline |
Destroys the stored element matrices.
Definition at line 114 of file hybridization_ext.hpp.
|
friend |
Definition at line 32 of file hybridization_ext.hpp.
|
protected |
Definition at line 54 of file hybridization_ext.hpp.
|
protected |
Definition at line 54 of file hybridization_ext.hpp.
|
protected |
Definition at line 55 of file hybridization_ext.hpp.
|
protected |
Definition at line 54 of file hybridization_ext.hpp.
|
protected |
Definition at line 54 of file hybridization_ext.hpp.
|
protected |
Definition at line 54 of file hybridization_ext.hpp.
|
protected |
Definition at line 55 of file hybridization_ext.hpp.
|
protected |
Definition at line 52 of file hybridization_ext.hpp.
|
protected |
Constraint matrix (transposed) stored element-wise.
Definition at line 50 of file hybridization_ext.hpp.
|
protected |
Definition at line 48 of file hybridization_ext.hpp.
|
protected |
Definition at line 49 of file hybridization_ext.hpp.
|
protected |
The associated Hybridization object.=.
Definition at line 41 of file hybridization_ext.hpp.
|
protected |
Definition at line 45 of file hybridization_ext.hpp.
Definition at line 46 of file hybridization_ext.hpp.
|
protected |
Definition at line 52 of file hybridization_ext.hpp.
|
protected |
Number of Lagrange multipliers.
Definition at line 42 of file hybridization_ext.hpp.
|
mutableprotected |
Definition at line 43 of file hybridization_ext.hpp.
|
protected |
Temporary vectors.
Definition at line 43 of file hybridization_ext.hpp.