===================== Behaviour integrators ===================== A Behaviour integrator computes residual and jacobian terms for a material. Behaviour integrators are associated with: - a physical phenomenon (mechanics, heat transfer, etc.), - a modeling hypothesis (plane strain, plane stress, etc.), - a material symmetry (isotropy, geometry). .. contents:: :depth: 3 :local: .. note:: Behaviour integrators are generally declared using the :code:`addBehaviourIntegrator` method of the :code:`NonLinearEvolutionProblem` class, as in the following example: .. code:: c++ mechanics.addBehaviourIntegrator("Mechanics", "beam", "src/libBehaviour.so", "MicromorphicDamageI_SpectralSplit"); Based on the generic category :code:`Mechanics`, this declaration automatically handles the selection of a behaviour integrator consistent with the modeling hypothesis declared by the nonlinear evolution problem and the material symmetry declared by the behaviour. Behaviour integrators and :code:`MFront` behaviours =================================================== Behaviour integrators rely on external behaviours that shall be generated by :code:`MFront`. In practice, those external behaviours are compiled by :code:`MFront` into shared libraries that are loaded dynamically when an behaviour integrator is loaded. Mechanical behaviour integrator =============================== A mechanical behaviour integrator computes the residual and jacobian associated with one of the following variational operators: .. math:: \begin{aligned} \int_{\Omega_r} \underline{\sigma}\,\colon\,\underline{\varepsilon}^{\star}\,\mathrm{d}\,V & \quad\quad &\text{(small strain)} \\ \int_{\Omega_r} \underline{P}\,\colon\,\underline{F}^{\star}\,\mathrm{d}\,V & \quad\quad & \text{(finite strain)} \end{aligned} where: - :math:`\Omega_r` is the domain occupied by the material of interest in the reference configuration, - :math:`\underline{\sigma}` is the `Cauchy` stress (expressed in the reference configuration for a small strain analysis, - :math:`\underline{\varepsilon}^{\star}` is the virtual deformation, - :math:`\underline{P}` is the first Piola-Kirchhoff stress, - :math:`\underline{F}^{\star}` is the virtual deformation gradient. The mechanical behaviour integrators available in :code:`MFEM/MGIS` support: - small and finite strain behaviours, - isotropic and orthotropic behaviours, - plane strain, plane stress and tridimensional modeling hypotheses. Heat transfer behaviour integrators =================================== Nonlinear heat transfer behaviour integrators compute the residual and jacobian associated with the following variational operator: .. math:: -\int_{\Omega_r} \vec{j}\,\cdot\,\vec{\nabla} T^{\star}\,\mathrm{d}\,V where: - :math:`\Omega_r` is the domain occupied by the material of interest in the reference configuration, - :math:`\vec{j}` is the heat flux, - :math:`\vec{\nabla} T^{\star}` is the virtual temperature. The heat transfer behaviour integrators available in :code:`MFEM/MGIS` support: - small and finite strain behaviours, - isotropic and orthotropic behaviours, - plane strain, plane stress and tridimensional modeling hypotheses. Micromorphic damage behaviour integrators ========================================= Micromorphic damage behaviour integrators compute the residual and jacobian associated with the following variational operator: .. math:: \int_{\Omega_r} \vec{b}_{\chi}\,\cdot\,\vec{\nabla} d_{\chi}^{\star}+a_{\chi}\,d_{\chi}^{\star}\,\mathrm{d}\,V where: - :math:`\Omega_r` is the domain occupied by the material of interest in the reference configuration, - :math:`b_{\chi}` is the thermodynamic force associated with the gradient of the micromorphic damage :math:`\vec{\nabla} d_{\chi}`, - :math:`a_{\chi}` is the thermodynamic force associated with the micromorphic damage :math:`d_{\chi}`, - :math:`d_{\chi}^{\star}` is the virtual micromorphic damage. The micromorphic damage integrators available in :code:`MFEM/MGIS` support: - isotropic behaviour in :math:`2D` (plane strain and plain stress) and :math:`3D` computations, - orhotropic behaviours in :math:`2D`.