Periodic boundaries IΒΆ

Learning targets

  • Periodic boundary conditions
  • 2D-periodic square lattice of 3D objects with transparent boundary conditions in the third dimension

This example constructs the unit cell of an periodic array of nano-scale circular holes in a thin layer (e.g. metal) on top of a substrate.

The following figure shows an image of parts of the geometry and mesh:

_images/ex3d_pinhole_periodic_square_mesh.png

The periodic boundary conditions are defined in the 2D section of the 3D layout, the transparent boundary conditions are applied in the Extrusion section of the layout.

.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
    Layout3D {
      UnitOfLength = 1e-09
      
      MeshOptions {
        MaximumSideLength = 50
      }
      BoundaryConditions {
        Boundary {
          Direction = Vertical 
          Class = Transparent 
        }
        Boundary {
          Direction = Horizontal 
          Class = Periodic
        }
      }
      Extrusion {
        Objects {
          Polygon { 
            Name = "ComputationalDomain/Background" 
            DomainId = 1
            Priority = -1 
            Points = [-200 -200, 200 -200, 200 200, -200 200] 
          } 
          
          Circle {
            Name = "Circle" 
            DomainId = 2
            Radius = 100
            RefineAll = 2
          }
        }
        MultiLayer {
          MeshOptions {
            MaximumSideLengthZ = 50
          }    
          
          Layer {
            Thickness = 100
            DomainId = 1
          }
          Layer {
            Thickness = 20
            DomainIdMapping = [1 2 
                               2 3]
          }
          LayerInterface {
            GeometryValues = [
            Circle/Radius = 80
            ]
            GlobalZ = 10
          }
          Layer {
            Thickness = 100
            DomainIdMapping = [1 3]
          }
         }  
      } 
    }