3D ConceptsΒΆ

Learning targets

  • Extruded 2D shapes create 3D geometries
  • Stack extruded layouts
  • Define textures on horizontal interfaces

The following figure summarizes the ability of 3D mesh generation with JCMgeo:

_images/geo3D_showroom_example.png

Complicated geometries such as rough surfaces and waveguides reaching into the exterior domain can be easily created.

The construction of 3D geometries with JCMgeo is based on the extrusion of a 2D base layout in the xy-plane into the z-direction. In different layers of the extrusion, different domain identifiers can be attributed to the extruded shapes. Furthermore, the geometry parameters such as the Radius for a circle can be reset across a layer interface. This allows to construct non-rectangular side-walls, e.g., corner roundings in z-direction, spherical shapes, etc.

Such an extruded layout reads as:

Layout {
  UnitOfLength = 1e-6

  # 2D definitions (x-y-coordinates)
  Polygon {
    DomainId = 1
  }

  Circle {
    Name = "Circle"
    DomainId = 2
    Radius = 1
  }

  ...

  # extrusion to 3D (z-direction)
  Extrusion {
    LayerInterface {
      BoundaryClass = Transparent
    }
    ...
    Layer {
      Thickness = 0.3
      DomainIdMapping = [1 1 2 1]
    }
    LayerInterface {
      GeometryValues = [
        Circle/Radius = 0.8
      ]
    }
    Layer {
      Thickness = 0.5
      DomainIdMapping = [1 1
                         2 2
                         3 11
                         4 12
                         5 13
                         ]
    }
    LayerInterface {
      BoundaryClass = Domain
    }
  }
}

Note

  • The 3D layout contains a section in xy-coordinates (2D) and a section for extrusion in the z-direction (Extrusion).
  • The Extrusion stacks several layers upon each other in positive z-direction.
  • Each Layer has a specific thickness in z-direction.
  • A LayerInterface section between two layers or on top or bottom of all layers allows to reset geometry values of the 2D-base layout (Circle/Radius = 0.8) and to set boundary conditions.
  • Each layer contains a DomainIdMapping. This defines domain identifiers attributed to the different 3D objects in this layer. Each 2D geometrical primitive of the 2D part of the layout carries an identifier, DomainId. Through the DomainIdMapping, the corresponding extruded 3D region in this layer of the 3D Extrusion gets attributed a new domain identifier. The domain identifier is used in the file materials.jcm for attributing material properties to the geometrical object.

Multiple extruded layouts are stacked on top of each other to construct a geometry as above with completely different geometries in different layers.

Please also see the following tutorial examples for a detailed description of specific layouts for 3D geometries, e.g., for layouts with non-rectangular sidewalls in z-direction..