9#ifndef __NONLINEARELEMENTINTERFACE_HPP__
10#define __NONLINEARELEMENTINTERFACE_HPP__
33 string mesh_posi_field_name =
"MESH_NODE_POSITIONS",
34 bool is_displacement_field =
true,
51 CHKERR PetscOptionsGetInt(PETSC_NULLPTR,
"-order", &
oRder, PETSC_NULLPTR);
87 true,
false,
false,
false);
115 CHKERR DMMoFEMAddElement(
dM,
"ELASTIC");
125 CHKERR DMMoFEMSNESSetJacobian(
132 CHKERR DMMoFEMSNESSetFunction(
dM,
"ELASTIC",
134 PETSC_NULLPTR, PETSC_NULLPTR);
143 CHKERR DMMoFEMTSSetIJacobian(
dM,
"ELASTIC", &method, &method, &method);
146 CHKERR DMMoFEMTSSetI2Jacobian(
dM,
"ELASTIC", &method, &method, &method);
149 CHKERR DMMoFEMTSSetRHSJacobian(
dM,
"ELASTIC", &method, &method, &method);
153 "This TS is not yet implemented");
164 CHKERR DMMoFEMTSSetIFunction(
dM,
"ELASTIC", &method, &method, &method);
167 CHKERR DMMoFEMTSSetI2Function(
dM,
"ELASTIC", &method, &method, &method);
170 CHKERR DMMoFEMTSSetRHSFunction(
dM,
"ELASTIC", &method, &method, &method);
209 CHKERR DMoFEMLoopFiniteElements(
dM,
"ELASTIC",
214 MOFEM_LOG_C(
"WORLD", Sev::inform,
"%d Time %3.2e Elastic energy %3.2e",
218 auto out_name =
"out_vol_" + to_string(step) +
".h5m";
#define MOFEM_LOG_C(channel, severity, format,...)
void simple(double P1[], double P2[], double P3[], double c[], const int N)
@ AINSWORTH_LEGENDRE_BASE
Ainsworth Cole (Legendre) approx. base nme:nme847.
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
virtual bool check_field(const std::string &name) const =0
check if field is in database
PetscBool is_quasi_static
Set of functions declaring elements and setting operators for generic element interface.
BcMarkerPtr mBoundaryMarker
Deprecated interface functions.
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.
Set of functions declaring elements and setting operators for generic element interface.
~NonlinearElasticElementInterface()
NonlinearElasticElementInterface(MoFEM::Interface &m_field, string postion_field, string mesh_posi_field_name="MESH_NODE_POSITIONS", bool is_displacement_field=true, PetscBool is_quasi_static=PETSC_TRUE)
MoFEMErrorCode createElements()
MoFEMErrorCode setupSolverFunctionSNES()
MoFEMErrorCode setOperators()
MoFEMErrorCode setupSolverJacobianSNES()
MoFEMErrorCode updateElementVariables()
boost::shared_ptr< ElasticMaterials > elasticMaterialsPtr
BitRefLevel getBitRefLevel()
MoFEM::Interface & mField
MoFEMErrorCode setupSolverJacobianTS(const TSType type)
MoFEMErrorCode addElementFields()
MoFEMErrorCode setupSolverFunctionTS(const TSType type)
boost::shared_ptr< NonlinearElasticElement > elasticElementPtr
MoFEMErrorCode addElementsToDM(SmartPetscObj< DM > dm)
MoFEMErrorCode getCommandLineParameters()
boost::shared_ptr< PostProcVolumeOnRefinedMesh > postProcMeshPtr
MoFEMErrorCode postProcessElement(int step)