Page MenuHomec4science

manual-cohesive_elements_insertion.tex
No OneTemporary

File Metadata

Created
Fri, Nov 8, 18:59

manual-cohesive_elements_insertion.tex

For cohesive material, \akantu has a pre-defined material selector to
assign the first cohesive material by default to the cohesive elements
which is called
\code{DefaultMaterialCohesiveSelector} and it inherits its properties from
\code{DefaultMaterialSelector}. Multiple cohesive materials can be assigned
using mesh data information (for more details,
see \ref{intrinsic_insertion}).
\subsection{Insertion of Cohesive Elements}
Cohesive elements are currently compatible only with static simulation
and dynamic simulation with an explicit time integration scheme (see
section~\ref{ssect:smm:expl-time-integr}). They do not have to be
inserted when the mesh is generated (intrinsic) but can be added
during the simulation (extrinsic). At any time during the simulation,
it is possible to access the following energies with the relative
function:
\begin{cpp}
Real Ed = model.getEnergy("dissipated");
Real Er = model.getEnergy("reversible");
Real Ec = model.getEnergy("contact");
\end{cpp}
A new model have to be call in a very similar way that the solid
mechanics model:
\begin{cpp}
SolidMechanicsModelCohesive model(mesh);
model.initFull(_analysis_method = _explicit_lumped_mass,
_is_extrinsic = true);
\end{cpp}
\subsubsection{Extrinsic approach \label{extrinsic_insertion}}
During the simulation, stress has to be checked along each facet in
order to insert cohesive elements where the stress criterion is
reached. This check is performed by calling the
method \code{checkCohesiveStress}, as example before each step
resolution:
\begin{cpp}
model.checkCohesiveStress();
model.solveStep();
\end{cpp}
% In case the extrinsic cohesive method is used in the implicit solution
% scheme, the cohesive elements are inserted one by one, starting from
% the highest locally stressed element (more precisely, the most
% stressed element per material type is inserted). When a cohesive
% element is inserted, the new equilibrated solution of the last
% incremental step is sought. Then, the
% method \code{checkCohesiveStress} is called again to check if new
% cohesive elements have to be inserted. When the insertion is
% terminated, the solution of the incremental loading step is stored,
% and the simulation can advance to the next incremental loading step.
% This procedure is managed by the function \code{solveStepCohesive}
% (for more details see \ref{sect:smm:static})
The area where stresses are checked and cohesive elements inserted can
be limited using the method \code{setLimit} on the \code{CohesiveInserter} during
initialization. As example, to limit insertion in the range $[-1.5,
1.5]$ in the $x$ direction:
\begin{cpp}
auto & inserter = model.getElementInserter();
inserter.setLimit(_x, -1.5, 1.5);
\end{cpp}
Additional restrictions with respect to $y$ and $z$ directions can be added as well.
\subsubsection{Intrinsic approach \label{intrinsic_insertion}}
Intrinsic cohesive elements are inserted in the mesh with the method
\code{initFull}. Similarly, the range of insertion can be limited
with \code{setLimit} before the \code{initFull} call.
In both cases extrinsic and intrinsic the insertion can be restricted to group of elements. To do so the list of groups should be specified in the input file.
\begin{cpp}
...
model solid_mechanics_model_cohesive [
cohesive_inserter [
cohesive_surfaces = [surface1, surface2, ...]
]
material cohesive_linear [
name = insertion
beta = 1
G_c = 10
sigma_c = 1e6
]
]
\end{cpp}

Event Timeline