12#ifndef __MFRONT_INTERFACE_HPP__
13#define __MFRONT_INTERFACE_HPP__
38 setMonitor(boost::shared_ptr<MoFEM::FEMethod> monitor_ptr) = 0;
46 boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pip,
55 boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pip,
87 std::string fe_name) = 0;
123boost::shared_ptr<MFrontInterface>
Interface for integrating MFront material models with MoFEM.
virtual ~MFrontInterface()=default
virtual MoFEMErrorCode setMonitor(boost::shared_ptr< MoFEM::FEMethod > monitor_ptr)=0
Set a monitor for the interface.
virtual MoFEMErrorCode setUpdateInternalVariablesOperators(ForcesAndSourcesCore::RuleHookFun rule, std::string field_name)=0
Set operators for updating internal variables using internal pipeline.
virtual MoFEMErrorCode postProcess(int step, SmartPetscObj< DM > dm, string fe_name)=0
Perform post-processing for displacement, strain and stress.
virtual MoFEMErrorCode getCommandLineParameters()=0
Retrieve command-line parameters for the interface.
virtual MoFEMErrorCode opFactoryDomainLhs(boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pip, std::string field_name)=0
Push domain operators for the left-hand side (LHS).
virtual MoFEMErrorCode setPostProcessOperators(ForcesAndSourcesCore::RuleHookFun rule, std::string fe_name, std::string field_name, int order)=0
Set operators for post-processing using internal pipeline.
virtual MoFEMErrorCode updateInternalVariables(SmartPetscObj< DM > dm, std::string fe_name)=0
Loop internal pipeline to update internal variables at each Gauss point.
virtual MoFEMErrorCode opFactoryDomainRhs(boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pip, std::string field_name)=0
Push domain operators for the right-hand side (RHS).
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
boost::shared_ptr< MFrontInterface > createMFrontInterface(MoFEM::Interface &m_field, ModelHypothesis mh, AssemblyType at=AssemblyType::PETSC)
create mfront interface
ModelHypothesis
Enumeration of model hypotheses supported by MFront interface.
@ AXISYMMETRICAL
Axisymmetrical model hypothesis.
@ PLANESTRAIN
Plane strain model hypothesis.
@ TRIDIMENSIONAL
3D model hypothesis.
constexpr auto field_name
Deprecated interface functions.
Data on single entity (This is passed as argument to DataOperator::doWork)
boost::function< int(int order_row, int order_col, int order_data)> RuleHookFun
intrusive_ptr for managing petsc objects