#ifndef __NONLINEARELEMENTINTERFACE_HPP__
#define __NONLINEARELEMENTINTERFACE_HPP__
string postion_field,
string mesh_posi_field_name = "MESH_NODE_POSITIONS",
bool is_displacement_field = true,
}
PETSC_NULL);
CHKERR PetscOptionsGetInt(PETSC_NULL,
"-order", &
oRder, PETSC_NULL);
};
3);
}
3);
}
};
false, false, false);
false, false, false);
true, false, false, false);
};
}
this->dM = dm;
CHKERR DMMoFEMAddElement(
dM,
"ELASTIC");
"ELASTIC");
};
CHKERR DMMoFEMSNESSetJacobian(
};
CHKERR DMMoFEMSNESSetFunction(
dM,
"ELASTIC",
PETSC_NULL, PETSC_NULL);
};
switch (type) {
CHKERR DMMoFEMTSSetIJacobian(
dM,
"ELASTIC", &method, &method, &method);
break;
CHKERR DMMoFEMTSSetI2Jacobian(
dM,
"ELASTIC", &method, &method, &method);
break;
CHKERR DMMoFEMTSSetRHSJacobian(
dM,
"ELASTIC", &method, &method, &method);
break;
default:
"This TS is not yet implemented");
break;
}
};
switch (type) {
CHKERR DMMoFEMTSSetIFunction(
dM,
"ELASTIC", &method, &method, &method);
break;
CHKERR DMMoFEMTSSetI2Function(
dM,
"ELASTIC", &method, &method, &method);
break;
CHKERR DMMoFEMTSSetRHSFunction(
dM,
"ELASTIC", &method, &method, &method);
break;
default:
break;
}
};
false, false);
}
}
CHKERR DMoFEMLoopFiniteElements(
dM,
"ELASTIC",
MOFEM_LOG_C(
"WORLD", Sev::inform,
"%d Time %3.2e Elastic energy %3.2e",
auto out_name = "out_vol_" + to_string(step) + ".h5m";
};
};
#endif
#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 refernce to pointer of interface.
Set of functions declaring elements and setting operators for generic element interface.
~NonlinearElasticElementInterface()
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)