Periodic boundaries IIIΒΆ

Learning targets

  • Periodic boundary conditions

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

  • Usage of a rectilinear unit cell

This example constructs the unit cell for a periodic array of nano-scale lines on top of a substrate. The periodic lattice is hexagonal, but we use a rectilinear unit cell to avoid unfavorable intersections of the unit cell boundary with the actual structure

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

_images/ex3d_rip_periodic_hexagonal_step_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]

     1Layout3D {
     2  UnitOfLength = 1e-09
     3  
     4  MeshOptions {
     5    MaximumSideLength = 50
     6  }
     7  BoundaryConditions {
     8    Boundary {
     9      Direction = Vertical 
    10      Class = Transparent 
    11    }
    12  }
    13  Extrusion {
    14    Objects {
    15      Polygon { 
    16        Name = "ComputationalDomain/Background" 
    17        DomainId = 1
    18        Priority = -1 
    19        Port = 1
    20        PeriodicUnitCell {
    21          LatticeVectorLengths = [500 500]
    22          LatticeAngle = 60
    23          Shape = Rectilinear
    24          StepHeight = 0.5
    25        }
    26      } 
    27      
    28      Parallelogram {
    29        Width = 300
    30        Height = 80
    31        GlobalPosition = [250 108.253175473055] # y-component = sind(60)*500/4
    32        DomainId = 2
    33      }
    34      
    35      Parallelogram {
    36        Width = 200
    37        Height = 120
    38        GlobalPosition = [500 324.759526419164] # y-component = sind(60)*500*3/4
    39        DomainId = 2
    40      }
    41    }
    42    
    43    MultiLayer {
    44      MeshOptions {
    45        MaximumSideLengthZ = 50
    46      }         
    47      Layer {
    48        Thickness = 100
    49        DomainId = 1
    50      }
    51      Layer {
    52        Thickness = 100
    53        DomainIdMapping = [1 2 
    54                           2 3]
    55      }
    56      LayerInterface {
    57        GlobalZ = 0.0
    58      }
    59      Layer {
    60        Thickness = 20
    61        DomainId = 2
    62      }
    63    }  
    64  } 
    65}