# How to model wooden joints with mathematica's FEM?

This is a dovetail joint: and I'd like to see the stresses and deformation on the joint.I haven't seen any modeling of disconnected regions with FEM, only connected regions, so I'm curious if you can do it. I guess you "need" disconnected regions since one would like to study how the fit of the joint determines its strength.

I don't need a full answer, just to know if it's possible to couple the boundary conditions between these two meshes, and how to. The idea being fixing one side on one beam and applying a force on the other beam, when the join is together. code for the regions:

L = 1
Subscript[\[CapitalGamma], D] =
DirichletCondition[{u[x, y] == 0., v[x, y] == 0.}, y == -L];
r = RegionUnion[Rectangle[{0, -L}, {10, 1}],
Triangle[{{9, 0}, {11, .75}, {11, -.75}}]];
r2 = RegionDifference[Rectangle[{10, -5}, {12, 5}],
Triangle[{{9, 0}, {11, .75}, {11, -.75}}]];
mesh =
ToElementMesh[r, "MaxCellMeasure" -> 0.05,
MeshQualityGoal -> "Maximal"];
mesh2 =
ToElementMesh[r2, "MaxCellMeasure" -> 0.05,
MeshQualityGoal -> "Maximal"];


Update:

the code of user21 is not exactly what I look for since the mesh regions are continuous. What's the problem with this? Wood joints only work on compression, not on tension, so the results we obtain with this mesh are totally unrealistic. Note how the lower part of the green beam is pulled by the "endgrain" of the red beam, this cannot happen in reality. This is why I'm asking for discontinuous (disconnected) regions that I haven't seen on the documentation. Maybe another solution is to define lines where only compression happens?

To further elaborate on my comment, one could add a third region "air" around the joints, and give it a very low young modulus. This however will make the meshing far too small when the joints are precisely "cut".

• I could imagine that making a sandwich of 3 materials, the middle one with a very low young modulus could do the trick, but I rather have two distinct entities. – tsuresuregusa Apr 6 '16 at 5:44

Here is a way to generate the mesh including region markers and different refinement in different regions:

Needs["NDSolveFEM"]
L = 1; i1 = 0.625; i2 = 0.25;
(bmesh = ToBoundaryMesh[
"Coordinates" -> {{0, -L}, {10, -L}, {10, -L + i1}, {11, -L +
i2}, {11, L - i2}, {10, L - i1}, {10, L}, {0,
L}, {10, -5}, {12, -5}, {12, 5}, {10, 5}},
"BoundaryElements" -> {LineElement[Partition[Range, 2, 1, 1]],
LineElement[{{2, 9}, {9, 10}, {10, 11}, {11, 12}, {12, 7}}]}]);
mesh = ToElementMesh[bmesh,
"RegionMarker" -> {{{1, 0}, 1, 0.2}, {{11.5, 0}, 2, 0.03}}];


To visualize:

mesh["Wireframe"[
"MeshElementStyle" -> {FaceForm[Green], FaceForm[Red]}]] For more modeling please see the documentation here, here and here