Stack LayoutsΒΆ

Learning targets (advanced)

  • Stack extrusion layouts on top of each other

With the extrusion construction of the previous sections only geometries with a moderate z-dependence are feasible. To allow for abrupt changes in the z-direction, we stack multiple extrusion layouts on top of each other:

_images/stack_layout.png

The lower and upper extrusion prism meshes are glued by an intermediate tetrahedral mesh. This allows for extrusion geometries that are usually incompatible, such as the circle and parallelogram shown here, to be combined into a single mesh.

Note

You may also use multiple Layout3D sections within the same layout.jcm file.

Note

Currently, shape derivatives are not supported within these gluing layers.

.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
     Layout3D {
       UnitOfLength = 1e-06
       MeshOptions {
         MaximumSideLength = 1.3
       }   
       Extrusion {
         Objects {
           Polygon { 
             Name = "ComputationalDomain/Background" 
             DomainId = 1
             Priority = -1 
             Points = [-2 -2, 2 -2, 2 2, -2 2] 
             Boundary {
               Class = Periodic
             }
           } 
           
           Circle {
             Name = "Circle"
             DomainId = 2
             Radius = 1
             RefineAll = 2
           }       
         }
         MultiLayer {
           
           LayerInterface {
             BoundaryClass = Transparent
           }
           Layer {
             Thickness = 1.0
             DomainId = 1
           }
           Layer {
             Thickness = 0.1
             DomainId = 3
           }
           LayerInterface {
             GlobalZ = 0.0
           }
           Layer {
             Thickness = 1.5
             DomainIdMapping = [1 2 
                                2 3]
           }
           LayerInterface {
             GeometryValues = [
             Circle/Radius = 0.8
             ]
           }
           Layer {
             Thickness = 2.0
             DomainIdMapping = [1 4]
           }
         }  
       } 
       Extrusion {
         Objects {
           Polygon { 
             Name = "ComputationalDomain2/Background" 
             DomainId = 1
             Priority = -1 
             Points = [-2 -2, 2 -2, 2 2, -2 2] 
             Boundary {
               Class = Periodic
             }
           } 
           
           Parallelogram {
             Name = "Parallelogram"
             DomainId = 2
             Height = 2.1
             Width = 2.1
             NormalDisplacement = 0.0         
           }
         }
         MultiLayer {
           Layer {
             Thickness = 1.5
             DomainIdMapping = [1 2 
                                2 5]
           }
           LayerInterface {
             GeometryValues = [
             Parallelogram/NormalDisplacement = 0.3
             ]
           }
           Layer {
             Thickness = 2.0
             DomainIdMapping = [1 2]
           }
           LayerInterface {
             BoundaryClass = Transparent
           }
         }  
       } 
     }