Dear Getfem users,
I am trying to find an easy and efficient way to take into account an
elastic linear interface between two different materials in Getfem (using
the python interface and/or in C++). The problem is defined on a uniform
elastic matrix containing an elastic inclusion (with different moduli from
that of the matrix) such that the matrix/inclusion interface is ruled by a
relationship of the form T=K.[u] where T is the stress vector acting on the
interface, K is the interface stiffness and [u] is the displacement jump
(simple bilateral contact). Some finite element codes address this problem
by allowing to build "joint elements".
I have already succeeded in solving this problem but in a very inefficient
way I think. I have indeed defined two differents meshes, one for the
matrix and one for the inclusion. Although occupying the same geometrical
domain, the interface boundaries are different from one mesh to the other
(pairs of points at the same place but one in the matric mesh and the other
one in the inclusion). I then defined two MeshFems, two variables (umat and
uinc), two integration methods,... and the contribution of the interface to
the global elastic stiffness "(umat-uinc).K.(Test_umat-Test_uinc)" by using
the "interpolate transformation" to project fields expressed on one mesh to
the other one (kind of mortar method on consistent boundaries). It works
fine on a small mesh in 2D but is too time consuming on large meshes or in
3D.
Is there a better way to do it either by using one or two meshes in which
the interface correspond to element edges or, even better, by resorting to
a levelset to define the interface independently of the mesh and xfem ?
In the case of a levelset, how is it possible to build the discontinuous
field of elastic moduli (the elements crossed by the levelset contain two
different materials but how to correctly define all the degrees of freedom
including those related to the Heaviside function) ? And finally how can I
define the interface contribution to the stiffness ie integral_{interface}
[ (umat-uinc).K.(Test_umat-Test_uinc) ] dS, possibly in a high-level
generic assembly procedure in Python since I don't know how to access to
discontinuity terms in the high-level language ?
I haven't really found solutions to my questions in the examples (either
related to mortar, cracks, contacts...) but I may have missed something.
Thank you very much in advance for any help or piece of code.
Best regards,
Jean-François Barthélémy
_______________________________________________
Getfem-users mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-users