![]() |
v0.15.0 |
Interface for Time Stepping (TS) solver. More...
#include "src/petsc/TsCtx.hpp"
Public Types | |
typedef MoFEM::PairNameFEMethodPtr | PairNameFEMethodPtr |
typedef MoFEM::FEMethodsSequence | FEMethodsSequence |
typedef MoFEM::BasicMethodsSequence | BasicMethodsSequence |
Public Member Functions | |
TsCtx (MoFEM::Interface &m_field, const std::string &problem_name) | |
virtual | ~TsCtx ()=default |
FEMethodsSequence & | getLoopsIFunction () |
Get the loops to do IFunction object. | |
FEMethodsSequence & | getLoopsRHSFunction () |
Get the loops to do RHSFunction object. | |
FEMethodsSequence & | getLoopsIJacobian () |
Get the loops to do IJacobian object. | |
FEMethodsSequence & | getLoopsRHSJacobian () |
Get the loops to do RHSJacobian object. | |
FEMethodsSequence & | getLoopsMonitor () |
Get the loops to do Monitor object. | |
BasicMethodsSequence & | getPreProcessIFunction () |
Get the preProcess to do IFunction object. | |
BasicMethodsSequence & | getPostProcessIFunction () |
Get the postProcess to do IFunction object. | |
BasicMethodsSequence & | getPreProcessIJacobian () |
Get the preProcess to do IJacobian object. | |
BasicMethodsSequence & | getPostProcessIJacobian () |
Get the postProcess to do IJacobian object. | |
BasicMethodsSequence & | getPreProcessMonitor () |
Get the preProcess to do Monitor object. | |
BasicMethodsSequence & | getPostProcessMonitor () |
Get the postProcess to do Monitor object. | |
BasicMethodsSequence & | getPreProcessRHSJacobian () |
Get the preProcess to do RHSJacobian object. | |
BasicMethodsSequence & | getPostProcessRHSJacobian () |
Get the postProcess to do RHSJacobian object. | |
BasicMethodsSequence & | getPreProcessRHSFunction () |
Get the preProcess to do RHSFunction object. | |
BasicMethodsSequence & | getPostProcessRHSFunction () |
Get the postProcess to do RHSFunction object. | |
MoFEMErrorCode | clearLoops () |
Clear loops. | |
Public Attributes | |
MoFEM::Interface & | mField |
moab::Interface & | moab |
std::string | problemName |
MoFEMTypes | bH |
If set to MF_EXIST check if element exist. | |
FEMethodsSequence | loopsIJacobian |
FEMethodsSequence | loopsIFunction |
FEMethodsSequence | loopsMonitor |
FEMethodsSequence | loopsRHSJacobian |
FEMethodsSequence | loopsRHSFunction |
BasicMethodsSequence | preProcessIJacobian |
BasicMethodsSequence | postProcessIJacobian |
BasicMethodsSequence | preProcessIFunction |
BasicMethodsSequence | postProcessIFunction |
BasicMethodsSequence | preProcessMonitor |
BasicMethodsSequence | postProcessMonitor |
BasicMethodsSequence | preProcessRHSJacobian |
BasicMethodsSequence | preProcessRHSFunction |
BasicMethodsSequence | postProcessRHSJacobian |
BasicMethodsSequence | postProcessRHSFunction |
boost::function< MoFEMErrorCode(TS ts, PetscReal t, Vec u, Vec u_t, Vec u_tt, Vec F, void *ctx)> | tsDebugHook |
bool | zeroMatrix |
Private Attributes | |
PetscLogEvent | MOFEM_EVENT_TsCtxRHSFunction |
PetscLogEvent | MOFEM_EVENT_TsCtxRHSJacobian |
PetscLogEvent | MOFEM_EVENT_TsCtxIFunction |
PetscLogEvent | MOFEM_EVENT_TsCtxIJacobian |
PetscLogEvent | MOFEM_EVENT_TsCtxMonitor |
PetscLogEvent | MOFEM_EVENT_TsCtxI2Function |
PetscLogEvent | MOFEM_EVENT_TsCtxI2Jacobian |
boost::movelib::unique_ptr< bool > | vecAssembleSwitch |
boost::movelib::unique_ptr< bool > | matAssembleSwitch |
Friends | |
PetscErrorCode | TsSetIFunction (TS ts, PetscReal t, Vec u, Vec u_t, Vec F, void *ctx) |
Set IFunction for TS solver. | |
PetscErrorCode | TsSetIJacobian (TS ts, PetscReal t, Vec u, Vec U_t, PetscReal a, Mat A, Mat B, void *ctx) |
Set function evaluating jacobian in TS solver. | |
PetscErrorCode | TsMonitorSet (TS ts, PetscInt step, PetscReal t, Vec u, void *ctx) |
Set monitor for TS solver. | |
PetscErrorCode | TsSetRHSFunction (TS ts, PetscReal t, Vec u, Vec F, void *ctx) |
TS solver function. | |
PetscErrorCode | TsSetRHSJacobian (TS ts, PetscReal t, Vec u, Mat A, Mat B, void *ctx) |
TS solver function. | |
PetscErrorCode | TsSetI2Function (TS ts, PetscReal t, Vec U, Vec U_t, Vec U_tt, Vec F, void *ctx) |
Calculation the right hand side for second order PDE in time. | |
PetscErrorCode | TsSetI2Jacobian (TS ts, PetscReal t, Vec U, Vec U_t, Vec U_tt, PetscReal v, PetscReal a, Mat J, Mat P, void *ctx) |
Calculation Jacobian for second order PDE in time. | |
Interface for Time Stepping (TS) solver.
MoFEM::TsCtx::TsCtx | ( | MoFEM::Interface & | m_field, |
const std::string & | problem_name ) |
Definition at line 5 of file TsCtx.cpp.
|
virtualdefault |
MoFEMErrorCode MoFEM::TsCtx::clearLoops | ( | ) |
Clear loops.
Definition at line 36 of file TsCtx.cpp.
|
inline |
Get the loops to do IFunction object.
It is sequence of finite elements used to evaluate the right hand side of implicit time solver.
Definition at line 63 of file TsCtx.hpp.
|
inline |
|
inline |
Get the loops to do Monitor object.
It is sequence used to monitor solution of time solver.
Definition at line 102 of file TsCtx.hpp.
|
inline |
|
inline |
|
inline |
Get the postProcess to do IFunction object.
|
inline |
Get the postProcess to do IJacobian object.
|
inline |
Get the postProcess to do Monitor object.
Definition at line 148 of file TsCtx.hpp.
|
inline |
Get the postProcess to do RHSFunction object.
|
inline |
Get the postProcess to do RHSJacobian object.
|
inline |
Get the preProcess to do IFunction object.
Definition at line 109 of file TsCtx.hpp.
|
inline |
Get the preProcess to do IJacobian object.
Definition at line 125 of file TsCtx.hpp.
|
inline |
|
inline |
Get the preProcess to do RHSFunction object.
|
inline |
Get the preProcess to do RHSJacobian object.
|
friend |
Set monitor for TS solver.
ts | |
step | |
t | |
u | |
ctx |
Definition at line 263 of file TsCtx.cpp.
|
friend |
Calculation the right hand side for second order PDE in time.
ts | |
t | |
u | |
u_t | |
u_tt | |
F | |
ctx |
Definition at line 620 of file TsCtx.cpp.
|
friend |
Calculation Jacobian for second order PDE in time.
ts | |
t | time at step/stage being solved |
u | state vectora |
u_t | time derivative of state vector |
u_tt | second time derivative of state vector |
a | shift for u_t |
aa | shift for u_tt |
A | Jacobian of G(U) = F(t,U,W+v*U,W'+a*U), equivalent to dF/dU + v*dF/dU_t + a*dF/dU_tt |
B | preconditioning matrix for J, may be same as J |
ctx | TsCtx context for matrix evaluation routine |
Definition at line 519 of file TsCtx.cpp.
|
friend |
Set IFunction for TS solver.
ts | |
t | |
u | |
u_t | |
F | |
ctx |
Definition at line 56 of file TsCtx.cpp.
|
friend |
Set function evaluating jacobian in TS solver.
ts | |
t | |
u | |
u_t | |
a | |
A | |
B | |
ctx |
Definition at line 169 of file TsCtx.cpp.
|
friend |
TS solver function.
ts | |
t | |
u | |
F | |
ctx |
Definition at line 327 of file TsCtx.cpp.
|
friend |
TS solver function.
ts | |
t | |
u | |
A | |
B | |
ctx |
Definition at line 430 of file TsCtx.cpp.
MoFEMTypes MoFEM::TsCtx::bH |
FEMethodsSequence MoFEM::TsCtx::loopsIFunction |
FEMethodsSequence MoFEM::TsCtx::loopsIJacobian |
FEMethodsSequence MoFEM::TsCtx::loopsMonitor |
FEMethodsSequence MoFEM::TsCtx::loopsRHSFunction |
FEMethodsSequence MoFEM::TsCtx::loopsRHSJacobian |
|
private |
MoFEM::Interface& MoFEM::TsCtx::mField |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
BasicMethodsSequence MoFEM::TsCtx::postProcessIFunction |
BasicMethodsSequence MoFEM::TsCtx::postProcessIJacobian |
BasicMethodsSequence MoFEM::TsCtx::postProcessMonitor |
BasicMethodsSequence MoFEM::TsCtx::postProcessRHSFunction |
BasicMethodsSequence MoFEM::TsCtx::postProcessRHSJacobian |
BasicMethodsSequence MoFEM::TsCtx::preProcessIFunction |
BasicMethodsSequence MoFEM::TsCtx::preProcessIJacobian |
BasicMethodsSequence MoFEM::TsCtx::preProcessMonitor |
BasicMethodsSequence MoFEM::TsCtx::preProcessRHSFunction |
BasicMethodsSequence MoFEM::TsCtx::preProcessRHSJacobian |
boost::function<MoFEMErrorCode(TS ts, PetscReal t, Vec u, Vec u_t, Vec u_tt, Vec F, void *ctx)> MoFEM::TsCtx::tsDebugHook |
|
private |