3D Primitives


The features outlined hereafter are in beta status. This means, they were recently added and are under constant development. Be aware that the syntax and functionality might not be final and subject to change. We are committed to bring back and add functionality from the previous JCMcad. This includes:
  • Modification tools such as corner and edge roundings (fillets and chamfers)
  • Extrusion of 2D primitives
  • Computational domains based on 3D primitives
  • Rotational sweeps of 2D primitives
  • (limited) parameter derivatives of 3D primitives

Please get in touch to give feedback about this new functionality and to address 3D primitives and construction algorithms missing from this list.


3D Primitives

JCMgeo allows addition of 3D primitives to a computational domain defined by an extrusion layout. The 3D primitives are placed in a section Objects at the same level as Extrusion.

Layout3D {
  Extrusion {
    Objects {
      # 2D definitions (x-y-coordinates)
      Parallelogram { ... }
    # extrusion to 3D (z-direction)
    MultiLayer {
      LayerInterface { ...}
      Layer { ... }
      LayerInterface { ... }
  Objects {
    Box { ... }
    Ellipsoid{ ... }
    Sphere { ... }
    SuperEllipsoid { ... }
    Helix { ... }
    Cone { ... }
    Cylinder { ... }

The newly introduced 3D primitives (some are shown in the figure above) share many of the properties of their 2D counterparts. DomainId and Priority are assigned and treated in the same way, i.e. they can be used to cut parts of lower priority objects out or fuse objects with the same DomainId together. MeshOptions additionally include a BoundaryMeshConstraint to control surface and volume meshes independently of each other. The 3D primitives are placed according to their GlobalPosition and their orientation is controlled by the Rotation.

A more detailed description of the different primitives and examples can be found here