![]() |
MFEM v4.10.0
Finite element discretization library
|
Class that performs static condensation of interior dofs for multiple FE spaces for complex systems (see BlockStaticCondensation). It's used by the class ComplexDPGWeakForm. More...
#include <complexstaticcond.hpp>
Public Member Functions | |
| ComplexBlockStaticCondensation (Array< FiniteElementSpace * > &fes_) | |
| ~ComplexBlockStaticCondensation () | |
| void | AssembleReducedSystem (int el, ComplexDenseMatrix &elmat, Vector &elvect_r, Vector &elvect_i) |
| void | Finalize (int skip_zeros=0) |
| Finalize the construction of the Schur complement matrix. | |
| void | SetEssentialTrueDofs (const Array< int > &ess_tdof_list) |
| Determine and save internally essential reduced true dofs. | |
| void | EliminateReducedTrueDofs (const Array< int > &ess_rtdof_list, Matrix::DiagonalPolicy dpolicy) |
| Eliminate the given reduced true dofs from the Schur complement matrix S. | |
| bool | HasEliminatedBC () const |
| BlockMatrix & | GetSchurMatrix_r () |
| Return the serial Schur complement matrix. | |
| BlockMatrix & | GetSchurMatrix_i () |
| ComplexOperator & | GetSchurComplexOperator () |
| BlockMatrix & | GetSchurMatrixElim_r () |
| Return the eliminated part of the serial Schur complement matrix. | |
| BlockMatrix & | GetSchurMatrixElim_i () |
| BlockOperator & | GetParallelSchurMatrix_r () |
| Return the parallel Schur complement matrix. | |
| BlockOperator & | GetParallelSchurMatrix_i () |
| BlockOperator & | GetParallelSchurMatrixElim_r () |
| Return the eliminated part of the parallel Schur complement matrix. | |
| BlockOperator & | GetParallelSchurMatrixElim_i () |
| void | ParallelAssemble (BlockMatrix *m_r, BlockMatrix *m_i) |
| void | FormSystemMatrix (Operator::DiagonalPolicy diag_policy) |
| void | ReduceSolution (const Vector &sol, Vector &sc_sol) const |
| void | ReduceSystem (Vector &x, Vector &X, Vector &B, int copy_interior=0) const |
Set the reduced solution X and r.h.s B vectors from the full linear system solution x and r.h.s. b vectors. This method should be called after the internal reduced essential dofs have been set using SetEssentialTrueDofs() and both the Schur complement and its eliminated part have been finalized. | |
| void | ConvertListToReducedTrueDofs (const Array< int > &ess_tdof_list, Array< int > &ess_rtdof_list) const |
| void | ComputeSolution (const Vector &sc_sol, Vector &sol) const |
| void | GetTraceFESpaces (Array< FiniteElementSpace * > &trace_fes) const |
Class that performs static condensation of interior dofs for multiple FE spaces for complex systems (see BlockStaticCondensation). It's used by the class ComplexDPGWeakForm.
Definition at line 24 of file complexstaticcond.hpp.
| mfem::ComplexBlockStaticCondensation::ComplexBlockStaticCondensation | ( | Array< FiniteElementSpace * > & | fes_ | ) |
Definition at line 17 of file complexstaticcond.cpp.
| mfem::ComplexBlockStaticCondensation::~ComplexBlockStaticCondensation | ( | ) |
Definition at line 1130 of file complexstaticcond.cpp.
| void mfem::ComplexBlockStaticCondensation::AssembleReducedSystem | ( | int | el, |
| ComplexDenseMatrix & | elmat, | ||
| Vector & | elvect_r, | ||
| Vector & | elvect_i ) |
Assemble the contribution to the Schur complement from the given element matrix elmat. Save the other blocks internally: A_bb_inv, A_bi, and A_bi.
Definition at line 449 of file complexstaticcond.cpp.
| void mfem::ComplexBlockStaticCondensation::ComputeSolution | ( | const Vector & | sc_sol, |
| Vector & | sol ) const |
Given a solution of the reduced system 'sc_sol', compute the solution of the full system 'sol'.
Definition at line 1022 of file complexstaticcond.cpp.
| void mfem::ComplexBlockStaticCondensation::ConvertListToReducedTrueDofs | ( | const Array< int > & | ess_tdof_list, |
| Array< int > & | ess_rtdof_list ) const |
Restrict a list of true FE space dofs to a list of reduced/trace true FE space dofs.
| void mfem::ComplexBlockStaticCondensation::EliminateReducedTrueDofs | ( | const Array< int > & | ess_rtdof_list, |
| Matrix::DiagonalPolicy | dpolicy ) |
Eliminate the given reduced true dofs from the Schur complement matrix S.
Definition at line 870 of file complexstaticcond.cpp.
| void mfem::ComplexBlockStaticCondensation::Finalize | ( | int | skip_zeros = 0 | ) |
Finalize the construction of the Schur complement matrix.
Definition at line 729 of file complexstaticcond.cpp.
| void mfem::ComplexBlockStaticCondensation::FormSystemMatrix | ( | Operator::DiagonalPolicy | diag_policy | ) |
Form the global reduced system matrix using the given diag_policy. This method can be called after Assemble() is called.
Definition at line 743 of file complexstaticcond.cpp.
|
inline |
Definition at line 184 of file complexstaticcond.hpp.
|
inline |
Return the parallel Schur complement matrix.
Definition at line 183 of file complexstaticcond.hpp.
|
inline |
Definition at line 188 of file complexstaticcond.hpp.
|
inline |
Return the eliminated part of the parallel Schur complement matrix.
Definition at line 187 of file complexstaticcond.hpp.
|
inline |
Definition at line 157 of file complexstaticcond.hpp.
|
inline |
Definition at line 156 of file complexstaticcond.hpp.
|
inline |
Return the serial Schur complement matrix.
Definition at line 155 of file complexstaticcond.hpp.
|
inline |
Definition at line 179 of file complexstaticcond.hpp.
|
inline |
Return the eliminated part of the serial Schur complement matrix.
Definition at line 178 of file complexstaticcond.hpp.
|
inline |
Definition at line 218 of file complexstaticcond.hpp.
|
inline |
Definition at line 144 of file complexstaticcond.hpp.
| void mfem::ComplexBlockStaticCondensation::ParallelAssemble | ( | BlockMatrix * | m_r, |
| BlockMatrix * | m_i ) |
Definition at line 613 of file complexstaticcond.cpp.
| void mfem::ComplexBlockStaticCondensation::ReduceSolution | ( | const Vector & | sol, |
| Vector & | sc_sol ) const |
Restrict a solution vector on the full FE space dofs to a vector on the reduced/trace true FE space dofs.
Definition at line 903 of file complexstaticcond.cpp.
| void mfem::ComplexBlockStaticCondensation::ReduceSystem | ( | Vector & | x, |
| Vector & | X, | ||
| Vector & | B, | ||
| int | copy_interior = 0 ) const |
Set the reduced solution X and r.h.s B vectors from the full linear system solution x and r.h.s. b vectors. This method should be called after the internal reduced essential dofs have been set using SetEssentialTrueDofs() and both the Schur complement and its eliminated part have been finalized.
Definition at line 944 of file complexstaticcond.cpp.
| void mfem::ComplexBlockStaticCondensation::SetEssentialTrueDofs | ( | const Array< int > & | ess_tdof_list | ) |
Determine and save internally essential reduced true dofs.
Definition at line 860 of file complexstaticcond.cpp.