8#include <petsc/private/tsimpl.h>
10#define TSADAPTMOFEM "mofem"
45 boost::function<
MoFEMErrorCode(TS ts, PetscReal
t, Vec u, Vec u_t, Vec u_tt,
193 friend PetscErrorCode
TsSetIFunction(TS ts, PetscReal
t, Vec u, Vec u_t,
195 friend PetscErrorCode
TsSetIJacobian(TS ts, PetscReal
t, Vec u, Vec U_t,
196 PetscReal
a, Mat A, Mat
B,
void *ctx);
197 friend PetscErrorCode
TsMonitorSet(TS ts, PetscInt step, PetscReal
t, Vec u,
205 Vec U_tt, Vec
F,
void *ctx);
208 Vec U_tt, PetscReal
v, PetscReal
a,
209 Mat
J, Mat P,
void *ctx);
259PetscErrorCode
TsSetIJacobian(TS ts, PetscReal
t, Vec u, Vec u_t, PetscReal
a,
260 Mat A, Mat
B,
void *ctx);
276PetscErrorCode
TsMonitorSet(TS ts, PetscInt step, PetscReal
t, Vec u,
334 PetscReal
a, PetscReal aa, Mat A, Mat
B,
357 PetscInt *next_sc, PetscReal *next_h,
358 PetscBool *accept, PetscReal *wlte,
359 PetscReal *wltea, PetscReal *wlter);
MoFEMTypes
Those types control how functions respond on arguments, f.e. error handling.
const double v
phase velocity of light in medium (cm/ns)
FTensor::Index< 'J', DIM1 > J
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
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 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 TsSetRHSFunction(TS ts, PetscReal t, Vec u, Vec F, void *ctx)
TS solver function.
PetscErrorCode TSAdaptChooseMoFEM(TSAdapt adapt, TS ts, PetscReal h, PetscInt *next_sc, PetscReal *next_h, PetscBool *accept, PetscReal *wlte, PetscReal *wltea, PetscReal *wlter)
PetscErrorCode TsSetIFunction(TS ts, PetscReal t, Vec u, Vec u_t, Vec F, void *ctx)
Set IFunction for TS solver.
PetscErrorCode TSAdaptDestroyMoFEM(TSAdapt adapt)
std::deque< BasicMethodPtr > BasicMethodsSequence
PetscErrorCode TsSetI2Jacobian(TS ts, PetscReal t, Vec u, Vec u_t, Vec u_tt, PetscReal a, PetscReal aa, Mat A, Mat B, void *ctx)
Calculation Jacobian for second order PDE in time.
PetscErrorCode TSAdaptResetMoFEM(TSAdapt adapt)
std::deque< PairNameFEMethodPtr > FEMethodsSequence
PetscErrorCode TsSetRHSJacobian(TS ts, PetscReal t, Vec u, Mat A, Mat B, void *ctx)
TS solver function.
PetscErrorCode TSAdaptCreateMoFEM(TSAdapt adapt)
Craete MOFEM adapt.
constexpr double t
plate stiffness
Deprecated interface functions.
Interface for Time Stepping (TS) solver.
BasicMethodsSequence & getPostProcessRHSFunction()
Get the postProcess to do RHSFunction object.
PetscLogEvent MOFEM_EVENT_TsCtxI2Jacobian
FEMethodsSequence loopsIJacobian
MoFEMTypes bH
If set to MF_EXIST check if element exist.
PetscLogEvent MOFEM_EVENT_TsCtxRHSJacobian
BasicMethodsSequence & getPostProcessIJacobian()
Get the postProcess to do IJacobian object.
friend PetscErrorCode TsSetIFunction(TS ts, PetscReal t, Vec u, Vec u_t, Vec F, void *ctx)
Set IFunction for TS solver.
FEMethodsSequence loopsRHSFunction
friend 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.
MoFEM::FEMethodsSequence FEMethodsSequence
PetscLogEvent MOFEM_EVENT_TsCtxMonitor
BasicMethodsSequence postProcessRHSFunction
FEMethodsSequence & getLoopsMonitor()
Get the loops to do Monitor object.
BasicMethodsSequence & getPreProcessMonitor()
Get the preProcess to do Monitor object.
BasicMethodsSequence preProcessMonitor
BasicMethodsSequence & getPostProcessRHSJacobian()
Get the postProcess to do RHSJacobian object.
PetscLogEvent MOFEM_EVENT_TsCtxRHSFunction
BasicMethodsSequence & getPostProcessIFunction()
Get the postProcess to do IFunction object.
BasicMethodsSequence preProcessIJacobian
friend PetscErrorCode TsMonitorSet(TS ts, PetscInt step, PetscReal t, Vec u, void *ctx)
Set monitor for TS solver.
BasicMethodsSequence & getPreProcessRHSFunction()
Get the preProcess to do RHSFunction object.
BasicMethodsSequence postProcessIFunction
friend PetscErrorCode TsSetRHSJacobian(TS ts, PetscReal t, Vec u, Mat A, Mat B, void *ctx)
TS solver function.
FEMethodsSequence & getLoopsIFunction()
Get the loops to do IFunction object.
MoFEM::PairNameFEMethodPtr PairNameFEMethodPtr
FEMethodsSequence & getLoopsRHSJacobian()
Get the loops to do RHSJacobian object.
friend 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.
FEMethodsSequence loopsIFunction
FEMethodsSequence loopsRHSJacobian
BasicMethodsSequence preProcessIFunction
FEMethodsSequence loopsMonitor
friend 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.
BasicMethodsSequence postProcessMonitor
BasicMethodsSequence preProcessRHSJacobian
boost::movelib::unique_ptr< bool > vecAssembleSwitch
BasicMethodsSequence & getPreProcessIFunction()
Get the preProcess to do IFunction object.
PetscLogEvent MOFEM_EVENT_TsCtxIJacobian
FEMethodsSequence & getLoopsRHSFunction()
Get the loops to do RHSFunction object.
FEMethodsSequence & getLoopsIJacobian()
Get the loops to do IJacobian object.
boost::movelib::unique_ptr< bool > matAssembleSwitch
MoFEMErrorCode clearLoops()
Clear loops.
BasicMethodsSequence & getPreProcessRHSJacobian()
Get the preProcess to do RHSJacobian object.
TsCtx(MoFEM::Interface &m_field, const std::string &problem_name)
MoFEM::Interface & mField
boost::function< MoFEMErrorCode(TS ts, PetscReal t, Vec u, Vec u_t, Vec u_tt, Vec F, void *ctx)> tsDebugHook
friend PetscErrorCode TsSetRHSFunction(TS ts, PetscReal t, Vec u, Vec F, void *ctx)
TS solver function.
BasicMethodsSequence preProcessRHSFunction
BasicMethodsSequence postProcessIJacobian
BasicMethodsSequence & getPostProcessMonitor()
Get the postProcess to do Monitor object.
PetscLogEvent MOFEM_EVENT_TsCtxIFunction
BasicMethodsSequence & getPreProcessIJacobian()
Get the preProcess to do IJacobian object.
MoFEM::BasicMethodsSequence BasicMethodsSequence
BasicMethodsSequence postProcessRHSJacobian
PetscLogEvent MOFEM_EVENT_TsCtxI2Function