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 .
#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)