# AceFEM-generated mesh versus Mathematica mesh: How to extrude 2D mesh to create a 3D mesh in AceFEM

The packages MeshTools (@Pinti) and FEMAddons seem to feature similar functions. I sometimes had strange (i.e. inconsistent results when meshing would work/not work without changing anything). Which one should I use?

My main question: Both packages have an Extrude function that can generate a 3D mesh by extrusion of a 2D mesh (see below). However, if I generate a 2D mesh using the SMTAddMesh command (part of the AceFEM package) the function doesn't work. I guess it is due to the objectt nature of the mesh created by AceFEM. Any idea on how to use the Extrude function so it is compatible with AceFEM or how to transform an AceFEM object so it is compatible?

Thank you.

Mathematica code:

Needs["MeshTools"]
mesh2D = ToElementMesh[
Rectangle[{0, 0}, {2, 1}],
MaxCellMeasure -> 1/2,
"MeshOrder" -> 1,
"MeshElementType" -> QuadElement
]
mesh3D = ExtrudeMesh[mesh2D, 2, 3]
Show[
mesh3D["Wireframe"[
"MeshElement" -> "MeshElements",
"MeshElementStyle" -> FaceForm[LightBlue],
Axes -> True,
AxesLabel -> {"X", "Y", "Z"}
]
],
Graphics3D[{PointSize[Large], Point[mesh3D["Coordinates"]]}]
]


AceFEM code:

SMTInputData[];
L = 100; H = 20; nx = 3; ny = 3;
points = {{0, 0}, {L, 0}, {L/2, 2 H}, {0, H}};
SMTAddDomain[
"A", {"ML:", "SE", "PE", "Q1", "DF", "HY", "Q1",
"D", {{"NeoHooke", "WA"}}}, {}];
mesh2D = SMTAddMesh[Polygon[points], "A", "Division" -> {nx, ny}];
SMTAnalysis[];
SMTShowMesh["Marks" -> True]

mesh3D = ExtrudeMesh[mesh2D, 2, 3]
`

## 1 Answer

SMTAddMesh imports the mesh description into AceFEM. The actual mesh is generated by SMTAnalysis command. There is no AceFEM command that would export the AceFEM mesh back to Mathematica. General AceFEM meshes are too complex to be converted back to Mathematica mesh object.

About the 2D mesh extruded to 3D you have 2 possibilities:

1. import your mesh3D object with SMTAddMesh
2. look into AceFEM manual under "3D hexahedral unstructured/structured mesh"