Stacked LayoutsΒΆ
Learning targets
- Stack extrusion layouts
- Use individual meshing options within each layout
With stacking several layouts on top of each other more complicated geometries become feasible for JCMsuite
. However, this example shows that it might be advantageous to use stacked layouts also for geometries easily constructed by one single extrusion layout, when we want to use coarser meshes in certain layers of the extrusion. This is for example the case, when one layer has a high refractive index material with smaller local wavelength, requiring a fine mesh only there.
.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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
Layout3D { UnitOfLength = 1e-09 MeshOptions { MaximumSideLength = 50 } Extrusion { Objects { Polygon { Name = "ComputationalDomain/Background" DomainId = 1 Priority = -1 Points = [-200 -200, 200 -200, 200 200, -200 200] Boundary { Class = Periodic } } } MultiLayer { MeshOptions { MaximumSideLengthZ = 50 } LayerInterface { BoundaryClass = Transparent } Layer { Thickness = 50 DomainId = 1 } } } } Layout3D { UnitOfLength = 1e-09 MeshOptions { MaximumSideLength = 50 } Extrusion { Objects { Polygon { Name = "ComputationalDomain/Background" DomainId = 1 Priority = -1 Points = [-200 -200, 200 -200, 200 200, -200 200] Boundary { Class = Periodic } } Circle { Name = "Circle" DomainId = 2 Radius = 100 RefineAll = 2 MeshOptions { MaximumSideLength = 20 } } } MultiLayer { MeshOptions { MaximumSideLengthZ = 50 } Layer { Thickness = 100 DomainId = 1 } LayerInterface { GlobalZ = 0 } Layer { Thickness = 100 DomainIdMapping = [1 3 2 2] MeshOptions { MaximumSideLengthZ = 20 } } LayerInterface { GeometryValues = [ Circle/Radius = 80 ] } Layer { Thickness = 10 DomainIdMapping = [1 3] } } } } Layout3D { UnitOfLength = 1e-09 MeshOptions { MaximumSideLength = 100 } Extrusion { Objects { Polygon { Name = "ComputationalDomain/Background" DomainId = 1 Priority = -1 Points = [-200 -200, 200 -200, 200 200, -200 200] Boundary { Class = Periodic } } } MultiLayer { MeshOptions { MaximumSideLengthZ = 50 } Layer { Thickness = 50 DomainId = 3 } LayerInterface { BoundaryClass = Transparent } } } }