Stack LayoutsΒΆ
Learning targets (advanced)
- Stack extrusion layouts on top of each other
With the extrusion construction of the previous sections only geometries with a moderate z-dependence are feasible. To allow for abrupt changes in the -direction, we stack multiple extrusion layouts on top of each other:
The lower and upper extrusion prism meshes are glued by an intermediate tetrahedral mesh. This allows for extrusion geometries that are usually incompatible, such as the circle and parallelogram shown here, to be combined into a single mesh.
Note
You may also use multiple Layout3D
sections within the same layout.jcm
file.
Note
Currently, shape derivatives are not supported within these gluing layers.
.jcm
Input File
layout.jcm [ASCII]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
Layout3D { UnitOfLength = 1e-06 MeshOptions { MaximumSideLength = 1.3 } Extrusion { Objects { Polygon { Name = "ComputationalDomain/Background" DomainId = 1 Priority = -1 Points = [-2 -2, 2 -2, 2 2, -2 2] Boundary { Class = Periodic } } Circle { Name = "Circle" DomainId = 2 Radius = 1 RefineAll = 2 } } MultiLayer { LayerInterface { BoundaryClass = Transparent } Layer { Thickness = 1.0 DomainId = 1 } Layer { Thickness = 0.1 DomainId = 3 } LayerInterface { GlobalZ = 0.0 } Layer { Thickness = 1.5 DomainIdMapping = [1 2 2 3] } LayerInterface { GeometryValues = [ Circle/Radius = 0.8 ] } Layer { Thickness = 2.0 DomainIdMapping = [1 4] } } } Extrusion { Objects { Polygon { Name = "ComputationalDomain2/Background" DomainId = 1 Priority = -1 Points = [-2 -2, 2 -2, 2 2, -2 2] Boundary { Class = Periodic } } Parallelogram { Name = "Parallelogram" DomainId = 2 Height = 2.1 Width = 2.1 NormalDisplacement = 0.0 } } MultiLayer { Layer { Thickness = 1.5 DomainIdMapping = [1 2 2 5] } LayerInterface { GeometryValues = [ Parallelogram/NormalDisplacement = 0.3 ] } Layer { Thickness = 2.0 DomainIdMapping = [1 2] } LayerInterface { BoundaryClass = Transparent } } } }