![]() |
v0.15.0 |
structure for projection matrices More...
#include "src/finite_elements/ConstrainMatrixCtx.hpp"
Public Member Functions | |
| ConstrainMatrixCtx (MoFEM::Interface &m_field, string x_problem, string y_problem, bool create_ksp=true, bool own_contrain_matrix=false) | |
| ConstrainMatrixCtx (MoFEM::Interface &m_field, VecScatter scatter, bool create_ksp=true, bool own_contrain_matrix=false) | |
| virtual | ~ConstrainMatrixCtx () |
| MoFEMErrorCode | initializeQorP (Vec x) |
| initialize vectors and matrices for Q and P shell matrices, scattering is set based on x_problem and y_problem | |
| MoFEMErrorCode | initializeQTKQ () |
| initialize vectors and matrices for CTC+QTKQ shell matrices, scattering is set based on x_problem and y_problem | |
| MoFEMErrorCode | recalculateCTandCCT () |
| re-calculate CT and CCT if C matrix has been changed since initialization | |
| MoFEMErrorCode | recalculateCTC () |
| re-calculate CTC matrix has been changed since initialization | |
| MoFEMErrorCode | destroyQorP () |
| destroy sub-matrices used for shell matrices P, Q, R, RT | |
| MoFEMErrorCode | destroyQTKQ () |
| destroy sub-matrices used for shell matrix QTKQ | |
Public Attributes | |
| MoFEM::Interface & | mField |
| KSP | kSP |
| Mat | C |
| Mat | CT |
| Mat | CCT |
| Mat | CTC |
| Mat | K |
| Vec | Cx |
| Vec | CCTm1_Cx |
| Vec | CT_CCTm1_Cx |
| Vec | CTCx |
| Vec | X |
| Vec | Qx |
| Vec | KQx |
| bool | initQorP |
| bool | initQTKQ |
| bool | createKSP |
| bool | createScatter |
| bool | cancelKSPMonitor |
| bool | ownConstrainMatrix |
| VecScatter | sCatter |
| string | xProblem |
| string | yProblem |
| PetscLogEvent | MOFEM_EVENT_projInit |
| PetscLogEvent | MOFEM_EVENT_projQ |
| PetscLogEvent | MOFEM_EVENT_projP |
| PetscLogEvent | MOFEM_EVENT_projR |
| PetscLogEvent | MOFEM_EVENT_projRT |
| PetscLogEvent | MOFEM_EVENT_projCTC_QTKQ |
| PetscReal | rTol |
| PetscReal | absTol |
| PetscReal | dTol |
| PetscInt | maxIts |
Friends | |
| MoFEMErrorCode | ProjectionMatrixMultOpQ (Mat Q, Vec x, Vec f) |
| Multiplication operator for Q = I-CTC(CCT)^-1C. | |
| MoFEMErrorCode | ConstrainMatrixMultOpP (Mat P, Vec x, Vec f) |
| Multiplication operator for P = CT(CCT)^-1C. | |
| MoFEMErrorCode | ConstrainMatrixMultOpR (Mat R, Vec x, Vec f) |
| Multiplication operator for R = CT(CCT)^-1. | |
| MoFEMErrorCode | ConstrainMatrixMultOpRT (Mat RT, Vec x, Vec f) |
| Multiplication operator for RT = (CCT)^-TC. | |
| MoFEMErrorCode | ConstrainMatrixMultOpCTC_QTKQ (Mat CTC_QTKQ, Vec x, Vec f) |
| Multiplication operator for RT = (CCT)^-TC. | |
| MoFEMErrorCode | ConstrainMatrixDestroyOpPorQ () |
| MoFEMErrorCode | ConstrainMatrixDestroyOpQTKQ () |
structure for projection matrices
Definition at line 18 of file ConstrainMatrixCtx.hpp.
| MoFEM::ConstrainMatrixCtx::ConstrainMatrixCtx | ( | MoFEM::Interface & | m_field, |
| string | x_problem, | ||
| string | y_problem, | ||
| bool | create_ksp = true, |
||
| bool | own_contrain_matrix = false |
||
| ) |
Construct data structure to build operators for projection matrices
User need to set matrix C to make it work
| x_problem | problem on which vector is projected |
| y_problem | problem used to construct projection matrices |
| create_ksp | create ksp solver otherwise user need to set it up |
Definition at line 19 of file ConstrainMatrixCtx.cpp.
| MoFEM::ConstrainMatrixCtx::ConstrainMatrixCtx | ( | MoFEM::Interface & | m_field, |
| VecScatter | scatter, | ||
| bool | create_ksp = true, |
||
| bool | own_contrain_matrix = false |
||
| ) |
Definition at line 33 of file ConstrainMatrixCtx.cpp.
|
inlinevirtual |
Definition at line 61 of file ConstrainMatrixCtx.hpp.
| MoFEMErrorCode MoFEM::ConstrainMatrixCtx::destroyQorP | ( | ) |
destroy sub-matrices used for shell matrices P, Q, R, RT
Definition at line 94 of file ConstrainMatrixCtx.cpp.
| MoFEMErrorCode MoFEM::ConstrainMatrixCtx::destroyQTKQ | ( | ) |
destroy sub-matrices used for shell matrix QTKQ
Definition at line 151 of file ConstrainMatrixCtx.cpp.
| MoFEMErrorCode MoFEM::ConstrainMatrixCtx::initializeQorP | ( | Vec | x | ) |
initialize vectors and matrices for Q and P shell matrices, scattering is set based on x_problem and y_problem
| x | is a vector from problem x |
Definition at line 45 of file ConstrainMatrixCtx.cpp.
| MoFEMErrorCode MoFEM::ConstrainMatrixCtx::initializeQTKQ | ( | ) |
initialize vectors and matrices for CTC+QTKQ shell matrices, scattering is set based on x_problem and y_problem
Definition at line 114 of file ConstrainMatrixCtx.cpp.
| MoFEMErrorCode MoFEM::ConstrainMatrixCtx::recalculateCTandCCT | ( | ) |
re-calculate CT and CCT if C matrix has been changed since initialization
Definition at line 85 of file ConstrainMatrixCtx.cpp.
| MoFEMErrorCode MoFEM::ConstrainMatrixCtx::recalculateCTC | ( | ) |
re-calculate CTC matrix has been changed since initialization
Definition at line 143 of file ConstrainMatrixCtx.cpp.
|
friend |
|
friend |
|
friend |
Multiplication operator for RT = (CCT)^-TC.
Definition at line 261 of file ConstrainMatrixCtx.cpp.
|
friend |
Multiplication operator for P = CT(CCT)^-1C.
Definition at line 197 of file ConstrainMatrixCtx.cpp.
|
friend |
Multiplication operator for R = CT(CCT)^-1.
Definition at line 221 of file ConstrainMatrixCtx.cpp.
|
friend |
Multiplication operator for RT = (CCT)^-TC.
Definition at line 243 of file ConstrainMatrixCtx.cpp.
|
friend |
Multiplication operator for Q = I-CTC(CCT)^-1C.
Definition at line 163 of file ConstrainMatrixCtx.cpp.
| PetscReal MoFEM::ConstrainMatrixCtx::absTol |
Definition at line 72 of file ConstrainMatrixCtx.hpp.
| Mat MoFEM::ConstrainMatrixCtx::C |
Definition at line 23 of file ConstrainMatrixCtx.hpp.
| bool MoFEM::ConstrainMatrixCtx::cancelKSPMonitor |
Definition at line 29 of file ConstrainMatrixCtx.hpp.
| Mat MoFEM::ConstrainMatrixCtx::CCT |
Definition at line 23 of file ConstrainMatrixCtx.hpp.
| Vec MoFEM::ConstrainMatrixCtx::CCTm1_Cx |
Definition at line 24 of file ConstrainMatrixCtx.hpp.
| bool MoFEM::ConstrainMatrixCtx::createKSP |
Definition at line 27 of file ConstrainMatrixCtx.hpp.
| bool MoFEM::ConstrainMatrixCtx::createScatter |
Definition at line 28 of file ConstrainMatrixCtx.hpp.
| Mat MoFEM::ConstrainMatrixCtx::CT |
Definition at line 23 of file ConstrainMatrixCtx.hpp.
| Vec MoFEM::ConstrainMatrixCtx::CT_CCTm1_Cx |
Definition at line 24 of file ConstrainMatrixCtx.hpp.
| Mat MoFEM::ConstrainMatrixCtx::CTC |
Definition at line 23 of file ConstrainMatrixCtx.hpp.
| Vec MoFEM::ConstrainMatrixCtx::CTCx |
Definition at line 24 of file ConstrainMatrixCtx.hpp.
| Vec MoFEM::ConstrainMatrixCtx::Cx |
Definition at line 24 of file ConstrainMatrixCtx.hpp.
| PetscReal MoFEM::ConstrainMatrixCtx::dTol |
Definition at line 72 of file ConstrainMatrixCtx.hpp.
| bool MoFEM::ConstrainMatrixCtx::initQorP |
Definition at line 26 of file ConstrainMatrixCtx.hpp.
| bool MoFEM::ConstrainMatrixCtx::initQTKQ |
Definition at line 26 of file ConstrainMatrixCtx.hpp.
| Mat MoFEM::ConstrainMatrixCtx::K |
Definition at line 23 of file ConstrainMatrixCtx.hpp.
| Vec MoFEM::ConstrainMatrixCtx::KQx |
Definition at line 25 of file ConstrainMatrixCtx.hpp.
| KSP MoFEM::ConstrainMatrixCtx::kSP |
Definition at line 22 of file ConstrainMatrixCtx.hpp.
| PetscInt MoFEM::ConstrainMatrixCtx::maxIts |
Definition at line 73 of file ConstrainMatrixCtx.hpp.
| MoFEM::Interface& MoFEM::ConstrainMatrixCtx::mField |
Definition at line 20 of file ConstrainMatrixCtx.hpp.
| PetscLogEvent MoFEM::ConstrainMatrixCtx::MOFEM_EVENT_projCTC_QTKQ |
Definition at line 43 of file ConstrainMatrixCtx.hpp.
| PetscLogEvent MoFEM::ConstrainMatrixCtx::MOFEM_EVENT_projInit |
Definition at line 38 of file ConstrainMatrixCtx.hpp.
| PetscLogEvent MoFEM::ConstrainMatrixCtx::MOFEM_EVENT_projP |
Definition at line 40 of file ConstrainMatrixCtx.hpp.
| PetscLogEvent MoFEM::ConstrainMatrixCtx::MOFEM_EVENT_projQ |
Definition at line 39 of file ConstrainMatrixCtx.hpp.
| PetscLogEvent MoFEM::ConstrainMatrixCtx::MOFEM_EVENT_projR |
Definition at line 41 of file ConstrainMatrixCtx.hpp.
| PetscLogEvent MoFEM::ConstrainMatrixCtx::MOFEM_EVENT_projRT |
Definition at line 42 of file ConstrainMatrixCtx.hpp.
| bool MoFEM::ConstrainMatrixCtx::ownConstrainMatrix |
Definition at line 30 of file ConstrainMatrixCtx.hpp.
| Vec MoFEM::ConstrainMatrixCtx::Qx |
Definition at line 25 of file ConstrainMatrixCtx.hpp.
| PetscReal MoFEM::ConstrainMatrixCtx::rTol |
Definition at line 72 of file ConstrainMatrixCtx.hpp.
| VecScatter MoFEM::ConstrainMatrixCtx::sCatter |
Definition at line 35 of file ConstrainMatrixCtx.hpp.
| Vec MoFEM::ConstrainMatrixCtx::X |
Definition at line 25 of file ConstrainMatrixCtx.hpp.
| string MoFEM::ConstrainMatrixCtx::xProblem |
Definition at line 36 of file ConstrainMatrixCtx.hpp.
| string MoFEM::ConstrainMatrixCtx::yProblem |
Definition at line 36 of file ConstrainMatrixCtx.hpp.