Normal RefinementsΒΆ
Learning targets
- Use normal mesh refinements to increase mesh density near metal interfaces
- Stack extrusion layouts
- Use individual meshing options within each layout
This example consists of brick like scatter, e.g. a metallic particle. For an electromagnetic field simulation the field has has singularity-like profile near the edges and corners of the metallic particle. To account for this we use a fine mesh in the direction of the metallic interface:
We use a stack of layouts to mitigate the mesh requirements outside the metallic region.
.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 131 132 133 134 135 136
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 = 100 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 } } Parallelogram { DomainId = 2 Width = 200 Height = 200 MeshOptions { NormalRefinement { Outer { StartThickness = 5 TotalThickness = 20 } Inner { StartThickness = 5 TotalThickness = 20 } } } } } MultiLayer { MeshOptions { MaximumSideLengthZ = 50 } Layer { Thickness = 20 DomainId = 1 MeshOptions { MaximumSideLengthZUpper = 5 } } Layer { Thickness = 20 DomainIdMapping = [1 2 2 3] } LayerInterface { GlobalZ = 0.0 } Layer { Thickness = 20 DomainId = 4 MeshOptions { MaximumSideLengthZLower = 10 } } } } } 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 } Layer { Thickness = 100 DomainId = 4 } LayerInterface { BoundaryClass = Transparent } } }