Transparent and fixed boundariesΒΆ

Learning targets

  • Specify fixed boundary conditions for a 3D computational domain
  • Non-rectangular computational domains

This geometry example specifies a rectangular computational domain with fixed boundary identifiers on the y==0 and x==0 planes and with transparent boundaries otherwhere. This is a typical situation for light scattering simulations with periodic, mirror-symmetrical scattering objects where the size of the computational domain can be reduced by a factor of 4 when symmetry considerations about the geometry and the source (e.g., plane wave at perpendicular incidence) are taken into account. Please compare examples 3D Periodic boundaries I and 2D Transparent and fixed boundaries. The resulting geometry and mesh in different views correspond to the following figure:

_images/figure_360.png

.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
    Layout3D {
      Name = "TutorialExample3D"
      UnitOfLength = 1e-6
      MeshOptions {    
        MinimumMeshAngle = 20
        MaximumSideLength = 0.75
      }
      Extrusion {
        Objects {
          Polygon { 
            Name = "ComputationalDomain/Background" 
            DomainId = 101 
            Priority = -1 
            Points = [0 0, 2 0, 2 2, 0 2] 
            Boundary { 
              Number = 1 
              Class = Domain
              BoundaryId = 1
            } 
            Boundary { 
              Number = [ 2 3]
              Class = Transparent
            }         
            Boundary { 
              Number = 4
              Class = Domain
              BoundaryId = 2
            } 
          } 
          Polygon {  
            Name = "Diamond_for_extrusion"  
            DomainId = 102 
            Priority = 1 
            Points = [0 -1.5, 1.2 0, 0 1.5, -1.2 0]
          } 
          Circle {
            Name = "Circle_for_extrusion"
            DomainId = 103
            Priority = 2
            Radius = 0.5
            RefineAll = 1
            MeshOptions{
              MaximumSideLength = 0.4
            }
          }
        }
        MultiLayer {
          LayerInterface {
            BoundaryClass = Transparent
          }
          Layer {
            Thickness = 0.5
            DomainId = 1
          }
          Layer {
            Thickness = 0.75
            DomainIdMapping = [101 2, 102 3, 103 3]
          }
          Layer {
            Thickness = 0.4
            DomainIdMapping = [101 2, 102 2, 103 4]
          }
          Layer {
            Thickness = 0.4
            DomainIdMapping = [101 2, 102 2, 103 2]
          }
          LayerInterface {
            BoundaryClass = Transparent
          }
        }  
      }
    }