![]() |
v0.14.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 More... | |
MoFEMErrorCode | initializeQTKQ () |
initialize vectors and matrices for CTC+QTKQ shell matrices, scattering is set based on x_problem and y_problem More... | |
MoFEMErrorCode | recalculateCTandCCT () |
re-calculate CT and CCT if C matrix has been changed since initialization More... | |
MoFEMErrorCode | recalculateCTC () |
re-calculate CTC matrix has been changed since initialization More... | |
MoFEMErrorCode | destroyQorP () |
destroy sub-matrices used for shell matrices P, Q, R, RT More... | |
MoFEMErrorCode | destroyQTKQ () |
destroy sub-matrices used for shell matrix QTKQ More... | |
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. More... | |
MoFEMErrorCode | ConstrainMatrixMultOpP (Mat P, Vec x, Vec f) |
Multiplication operator for P = CT(CCT)^-1C. More... | |
MoFEMErrorCode | ConstrainMatrixMultOpR (Mat R, Vec x, Vec f) |
Multiplication operator for R = CT(CCT)^-1. More... | |
MoFEMErrorCode | ConstrainMatrixMultOpRT (Mat RT, Vec x, Vec f) |
Multiplication operator for RT = (CCT)^-TC. More... | |
MoFEMErrorCode | ConstrainMatrixMultOpCTC_QTKQ (Mat CTC_QTKQ, Vec x, Vec f) |
Multiplication operator for RT = (CCT)^-TC. More... | |
MoFEMErrorCode | ConstrainMatrixDestroyOpPorQ () |
MoFEMErrorCode | ConstrainMatrixDestroyOpQTKQ () |
structure for projection matrices
Definition at line 18 of file ConstrainMatrixCtx.hpp.
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.
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 ConstrainMatrixCtx::destroyQorP | ( | ) |
destroy sub-matrices used for shell matrices P, Q, R, RT
Definition at line 94 of file ConstrainMatrixCtx.cpp.
MoFEMErrorCode ConstrainMatrixCtx::destroyQTKQ | ( | ) |
destroy sub-matrices used for shell matrix QTKQ
Definition at line 151 of file ConstrainMatrixCtx.cpp.
MoFEMErrorCode 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 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 ConstrainMatrixCtx::recalculateCTandCCT | ( | ) |
re-calculate CT and CCT if C matrix has been changed since initialization
Definition at line 85 of file ConstrainMatrixCtx.cpp.
MoFEMErrorCode 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 70 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.