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]
1Layout3D { 2 UnitOfLength = 1e-09 3 4 MeshOptions { 5 MaximumSideLength = 50 6 } 7 Extrusion { 8 Objects { 9 Polygon { 10 Name = "ComputationalDomain/Background" 11 DomainId = 1 12 Priority = -1 13 Points = [-200 -200, 200 -200, 200 200, -200 200] 14 Boundary { 15 Class = Periodic 16 } 17 } 18 } 19 20 MultiLayer { 21 MeshOptions { 22 MaximumSideLengthZ = 50 23 } 24 25 LayerInterface { 26 BoundaryClass = Transparent 27 } 28 Layer { 29 Thickness = 50 30 DomainId = 1 31 } 32 } 33 } 34} 35 36Layout3D { 37 UnitOfLength = 1e-09 38 39 MeshOptions { 40 MaximumSideLength = 50 41 } 42 Extrusion { 43 Objects { 44 Polygon { 45 Name = "ComputationalDomain/Background" 46 DomainId = 1 47 Priority = -1 48 Points = [-200 -200, 200 -200, 200 200, -200 200] 49 Boundary { 50 Class = Periodic 51 } 52 } 53 54 Circle { 55 Name = "Circle" 56 DomainId = 2 57 Radius = 100 58 RefineAll = 2 59 MeshOptions { 60 MaximumSideLength = 20 61 } 62 } 63 } 64 MultiLayer { 65 MeshOptions { 66 MaximumSideLengthZ = 50 67 } 68 69 Layer { 70 Thickness = 100 71 DomainId = 1 72 } 73 LayerInterface { 74 GlobalZ = 0 75 } 76 Layer { 77 Thickness = 100 78 DomainIdMapping = [1 3 79 2 2] 80 MeshOptions { 81 MaximumSideLengthZ = 20 82 } 83 } 84 LayerInterface { 85 GeometryValues = [ 86 Circle/Radius = 80 87 ] 88 } 89 Layer { 90 Thickness = 10 91 DomainIdMapping = [1 3] 92 } 93 } 94 } 95} 96 97Layout3D { 98 UnitOfLength = 1e-09 99 100 MeshOptions { 101 MaximumSideLength = 100 102 } 103 Extrusion { 104 Objects { 105 Polygon { 106 Name = "ComputationalDomain/Background" 107 DomainId = 1 108 Priority = -1 109 Points = [-200 -200, 200 -200, 200 200, -200 200] 110 Boundary { 111 Class = Periodic 112 } 113 } 114 } 115 MultiLayer { 116 117 MeshOptions { 118 MaximumSideLengthZ = 50 119 } 120 121 Layer { 122 Thickness = 50 123 DomainId = 3 124 } 125 LayerInterface { 126 BoundaryClass = Transparent 127 } 128 } 129 } 130}