I am trying model heat in an assembly with interfaces between different materials at low temperatures. This implies the existence of Kapitza resistance only at those interfaces (so Discontinuous Gelarkin is probably not appropriate here). As far as I know, and I am not an expert in numerical methods of any kind, there are 2 good ways of dealing with interfacial discontinuities and one bad way. The good ways are eXtended Finite Element Model (XFEM) and Cohesive Elements. My question is, is there support in FreeFEM++ for either XFEM or Cohesive Elements?
The bad way is to increase the number of elements at each interface and write a Fourier heat transfer law equivalent to model Kapitza resistance. I would rather write my FEM engine from scratch than do this, as a matter of principle.
Hello,
I don’t know about XFEM or cohesive elements. Since as far as I understand the locations of discontinuities are known in advance, a simple way to do is to consider several meshes (one for each material) and different sets of unknowns (one for each mesh). Then you can use the “composite finite element spaces” (see FreeFem doc) to solve the global problem, the different sets of unknowns being coupled by conditions at the interfaces.
Thank you! This might solve my problem. I still don’t understand how to write my code based on the examples of the “Compisite Finite Element Spaces” page in the documentation. I have 2 questions:
For the simple 2-d geometry of two rectangles on top of each sharing one boundary, how do I define the fespace of that boundary? My two meshes don’t share any elements; only boundaries.
I need Neumann boundary conditions on that shared boundary. In the language of heat equation, heat flux is known at the boundary, and it affects both sides. Do I insert 2x 1-dimensional integrals into the problem, one for each side?
In all the examples I see on that page, the different fields are defined on the same physical space. Is there more comprehensive documentation on this technique or how it is implemented that I can read?
(with composite and discontinuous Galerkin together)
The description of the problem is in a pdf at the top of that page.
In the .edp code the coupling terms are marked by “//interface” comment.
These terms are written as int1d of each of the two meshes.