![]() |
v0.15.0 |
Public Types | |
using | PairNameFEMethodPtr = MoFEM::PairNameFEMethodPtr |
using | FEMethodsSequence = MoFEM::FEMethodsSequence |
using | BasicMethodsSequence = MoFEM::BasicMethodsSequence |
using | HookFunction = SnesCtx::HookFunction |
Public Member Functions | |
SnesCtxImpl (Interface &m_field, std::string problem_name) | |
virtual | ~SnesCtxImpl ()=default |
FEMethodsSequence & | getSetOperators () |
FEMethodsSequence & | getComputeRhs () |
BasicMethodsSequence & | getPreProcComputeRhs () |
BasicMethodsSequence & | getPostProcComputeRhs () |
BasicMethodsSequence & | getPreProcSetOperators () |
BasicMethodsSequence & | getPostProcSetOperators () |
FEMethodsSequence & | getLoadTangent () |
BasicMethodsSequence & | getPreProcLoadTangent () |
BasicMethodsSequence & | getPostProcLoadTangent () |
MoFEMErrorCode | copyLoops (const SnesCtxImpl &snes_ctx) |
MoFEMErrorCode | clearLoops () |
HookFunction & | getLoadTangentHook () |
HookFunction & | getRhsHook () |
Friends | |
PetscErrorCode | SnesRhs (SNES snes, Vec x, Vec f, void *ctx) |
This is MoFEM implementation for the right hand side (residual vector) evaluation in SNES solver. | |
PetscErrorCode | SnesMat (SNES snes, Vec x, Mat A, Mat B, void *ctx) |
This is MoFEM implementation for the left hand side (tangent matrix) evaluation in SNES solver. | |
MoFEMErrorCode | SNESMoFEMSetAssmblyType (SNES snes, MatAssemblyType type) |
MoFEMErrorCode | SnesMoFEMSetBehavior (SNES snes, MoFEMTypes bh) |
Set behavior if finite element in sequence does not exist. | |
MoFEMErrorCode | SnesMoFEMSetAssemblyType (SNES snes, MatAssemblyType type) |
Set assembly type at the end of SnesMat. | |
MoFEMErrorCode | SnesMoFEMSetBehavior (SNES snes, MoFEMTypes bh) |
Set behavior if finite element in sequence does not exist. | |
MoFEMErrorCode | MoFEMSNESMonitorFields (SNES snes, PetscInt its, PetscReal fgnorm, SnesCtx *snes_ctx) |
Sens monitor printing residual field by field. | |
MoFEMErrorCode | MoFEMSNESMonitorEnergy (SNES snes, PetscInt its, PetscReal fgnorm, SnesCtx *snes_ctx) |
Sens monitor printing residual field by field. | |
PetscErrorCode | SnesLoadTangent (SNES snes, Vec u, Vec F, void *ctx) |
This function calls finite element pipeline to compute tangent of of load vector in arc length control. | |
Definition at line 9 of file SnesCtx.cpp.
Definition at line 13 of file SnesCtx.cpp.
Definition at line 12 of file SnesCtx.cpp.
Definition at line 14 of file SnesCtx.cpp.
Definition at line 11 of file SnesCtx.cpp.
MoFEM::SnesCtx::SnesCtxImpl::SnesCtxImpl | ( | Interface & | m_field, |
std::string | problem_name ) |
Definition at line 181 of file SnesCtx.cpp.
|
virtualdefault |
MoFEMErrorCode MoFEM::SnesCtx::SnesCtxImpl::clearLoops | ( | ) |
Definition at line 209 of file SnesCtx.cpp.
MoFEMErrorCode MoFEM::SnesCtx::SnesCtxImpl::copyLoops | ( | const SnesCtxImpl & | snes_ctx | ) |
Definition at line 195 of file SnesCtx.cpp.
|
inline |
Definition at line 22 of file SnesCtx.cpp.
|
inline |
Definition at line 34 of file SnesCtx.cpp.
|
inline |
Definition at line 48 of file SnesCtx.cpp.
|
inline |
Definition at line 26 of file SnesCtx.cpp.
|
inline |
Definition at line 40 of file SnesCtx.cpp.
|
inline |
Definition at line 30 of file SnesCtx.cpp.
|
inline |
Definition at line 24 of file SnesCtx.cpp.
|
inline |
Definition at line 36 of file SnesCtx.cpp.
|
inline |
Definition at line 28 of file SnesCtx.cpp.
|
inline |
Definition at line 50 of file SnesCtx.cpp.
|
inline |
Definition at line 20 of file SnesCtx.cpp.
|
friend |
Sens monitor printing residual field by field.
Definition at line 648 of file SnesCtx.cpp.
|
friend |
Sens monitor printing residual field by field.
Definition at line 592 of file SnesCtx.cpp.
|
friend |
This function calls finite element pipeline to compute tangent of of load vector in arc length control.
For more information pleas look to PETSc manual, i.e. SNESSetFunction https://petsc.org/main/manualpages/SNES/SNESSetFunction/
snes | SNES solver |
u | Solution vector at current iteration |
F | The right hand side vector |
ctx | Pointer to context i.e. SnesCtx |
Definition at line 353 of file SnesCtx.cpp.
|
friend |
This is MoFEM implementation for the left hand side (tangent matrix) evaluation in SNES solver.
For more information pleas look to PETSc manual, i.e. SNESSetJacobian http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESSetJacobian.html#SNESSetJacobian
snes | SNES solver |
x | Solution vector at current iteration |
A | Tangent matrix |
B | Preconditioner tangent matrix |
ctx | Pointer to context i.e. SnesCtx |
Definition at line 483 of file SnesCtx.cpp.
|
friend |
Set assembly type at the end of SnesMat.
snes | |
type | type of assembly, either MAT_FLUSH_ASSEMBLY or MAT_FINAL_ASSEMBLY |
Definition at line 564 of file SnesCtx.cpp.
|
friend |
|
friend |
Set behavior if finite element in sequence does not exist.
snes | |
bh | If set to MF_EXIST check if element exist, default MF_EXIST. Otherwise set MF_ZERO |
Definition at line 578 of file SnesCtx.cpp.
|
friend |
Set behavior if finite element in sequence does not exist.
snes | |
bh | If set to MF_EXIST check if element exist, default MF_EXIST. Otherwise set MF_ZERO |
Definition at line 578 of file SnesCtx.cpp.
|
friend |
This is MoFEM implementation for the right hand side (residual vector) evaluation in SNES solver.
For more information pleas look to PETSc manual, i.e. SNESSetFunction http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESSetFunction.html
snes | SNES solver |
x | Solution vector at current iteration |
f | The right hand side vector |
ctx | Pointer to context i.e. SnesCtx |
Definition at line 223 of file SnesCtx.cpp.
|
protected |
If set to MF_EXIST check if element exist, default MF_EXIST.
Definition at line 110 of file SnesCtx.cpp.
|
protected |
Hook function called at the end of load tangent evaluation
Definition at line 118 of file SnesCtx.cpp.
|
protected |
Sequence of finite elements instances assembling tangent of load vector in arc length control
Definition at line 91 of file SnesCtx.cpp.
|
protected |
Sequence of finite elements instances assembling tangent matrix
Definition at line 86 of file SnesCtx.cpp.
|
protected |
Sequence of finite elements instances assembling residual vector
Definition at line 88 of file SnesCtx.cpp.
|
protected |
database Interface
Definition at line 81 of file SnesCtx.cpp.
|
protected |
moab Interface
Definition at line 82 of file SnesCtx.cpp.
|
protected |
Log events to assemble tangent of load vector
Definition at line 78 of file SnesCtx.cpp.
|
protected |
Log events to assemble tangent matrix.
Definition at line 77 of file SnesCtx.cpp.
|
protected |
Log events to assemble residual.
Definition at line 76 of file SnesCtx.cpp.
|
protected |
Sequence of methods run after tangent of load vector in arc length control is assembled
Definition at line 107 of file SnesCtx.cpp.
|
protected |
Sequence of methods run after tangent matrix is assembled
Definition at line 96 of file SnesCtx.cpp.
|
protected |
Sequence of methods run after residual is assembled.
Definition at line 105 of file SnesCtx.cpp.
|
protected |
Sequence of methods run before tangent of load vector in arc length control is assembled
Definition at line 99 of file SnesCtx.cpp.
|
protected |
Sequence of methods run before tangent matrix is assembled
Definition at line 94 of file SnesCtx.cpp.
|
protected |
Sequence of methods run before residual is assembled.
Definition at line 103 of file SnesCtx.cpp.
|
protected |
problem name
Definition at line 84 of file SnesCtx.cpp.
|
protected |
Hook function called at the end of residual evaluation
Definition at line 121 of file SnesCtx.cpp.
|
protected |
type of assembly at the end
Definition at line 115 of file SnesCtx.cpp.
|
protected |
If true verify vector.
Definition at line 114 of file SnesCtx.cpp.
|
protected |
If true zero matrix, otherwise user need to do it, default true
Definition at line 112 of file SnesCtx.cpp.