Rotational (Cn) symmetryΒΆ

Learning targets

  • Using rotational symmetry or Cn boundary specifier
  • Specify different conditions at different boundaries of the computational domain

This geometry example specifies a isosceles triangular computational domain with Cn boundary identifiers at the left and right legs of the triangle domain and transparent boundaries at the base side of the computational domain. This is a typical situation for propagation mode simulations of multi core optical fibers where the size of the computational domain can be reduced by a factor of N when symmetry considerations about the geometry and the source are taken into account.

The resulting geometry and mesh correspond to the following figure:

_images/snapshot_190.png

The geometry is automatically unfolded by JCMview. Only shown mesh elements are present in the grid.

.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
    Layout2D {
      MeshOptions {
        MaximumSideLength = 1
      }
      Objects {
        Triangle {       
          DomainId = 1
          Priority = ComputationalDomain
          Port = Point1
          Width = 10       
          AngleAlpha = 30
          AngleBeta = 75
          RotationAngle = -15
          Boundary {
            Class = Cn      
            Number = [1 3]          
          }
          Boundary {
            Class = Transparent
            BoundaryId = 2          
          }
        }
        Circle {
          DomainId = 2
          GlobalPosition = [0 0]
          Radius = 2
          MeshOptions {
            BoundaryMeshConstraint = .2
          }
        }
        Circle {
          DomainId = 2
          GlobalPosition = [7 0]
          Radius = 1.5
          MeshOptions {
            BoundaryMeshConstraint = .2
          }
        }
    
      }
    }