Z-Corner Rounding (parametric)

Learning targets

  • Use builtin options to parameterize a complicated dependency in z-direction

This example describes a unit cell of a hexagonal lattice (equilateral triangular lattice) of cones with capping layer and corner rounding. The computational domain is specified as an extruded polygon, the cone is specified as extruded circle where radius and material change with the z-coordinate.

In contrast to the scripting variant of this example we do not use Matlab® or Python but define the height dependence of the circles Radius as a piecewise defined polynomial. Here, the typical Radius=120 definition is replaced by a section Radius { ... } which yields a PiecewiseMonomial. At each Interface (enumerating the LayerInterface between subsequent layers we set a radius and JCMgeo uses a polynomial in between sampling points. In addition we have simpler CornerRounding syntax to describe a circular arc at the bottom and top of the structure. Note that JCMgeo detects the top/bottom facets of the cone as the layers where the Circle primitive is not mapped to the background material.

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

_images/snapshot_cone.png

Input Files

  • layout.jcm [ASCII]

     1Layout3D {
     2  Name = "TutorialExample3D"
     3  UnitOfLength = 1e-09
     4  MeshOptions {
     5    MaximumSideLength = 100
     6    MinimumMeshAngle = 20
     7    CurvilinearDegree = 2
     8    
     9  }
    10  BoundaryConditions {
    11    Boundary {
    12      Class = Periodic  
    13      Direction = Horizontal  
    14    }
    15    Boundary {
    16      Class = Transparent 
    17      Direction = Vertical
    18    }
    19  }
    20  Extrusion {
    21    Objects {
    22      Polygon {
    23        Name = "ComputationalDomain/Air"
    24        DomainId = 101
    25        Priority = -1
    26        Points = [125.000 216.506 -125.000 216.506 -250.000 0.000 -125.000 -216.506 125.000 -216.506 250.000 -0.000]
    27      }      
    28      Circle {
    29        DomainId = 102
    30        Radius {
    31          PiecewiseMonomial {             
    32            AtInterface {
    33              Interface = 1 
    34              Radius = 150
    35            }
    36            AtInterface {
    37              Interface = 2 
    38              Radius = 107.025
    39            }            
    40            AtInterface {
    41              Interface = 3
    42              Radius = 97.2026
    43            }
    44            CornerRounding {
    45              Top {
    46                Radius = 30
    47                Type = Convex
    48              }
    49              Bottom {
    50                Radius = 50
    51                NPoints = 4
    52                Type = Concave
    53              }
    54            } # CornerRounding
    55          } 
    56        } # Radius   
    57      }
    58    } # Objects
    59    MultiLayer {
    60      Layer {
    61        Thickness = 50
    62        DomainIdMapping = [101 1, 102 1]
    63      }      
    64      Layer {
    65        Thickness = 350
    66        DomainIdMapping = [101 4, 102 2]
    67      }      
    68      Layer {
    69        Thickness = 80
    70        MeshOptions {
    71          MaximumSideLengthZUpper = 5
    72          ProgressionZUpper = 3
    73        }
    74        DomainIdMapping = [101 4, 102 3]
    75      } 
    76      Layer {
    77        Thickness = 40
    78        DomainIdMapping = [101 4, 102 4]
    79      }      
    80    }
    81  }
    82}
    

Note

The concept of GeometryValues is conceptually similar but yields only a PiecewiseLinear height variation.

Note

The mesh parameters in the example may not be suitable for computation and will likely report strong deformations coarse meshes with curvilinear elements.