Updating to new syntaxΒΆ

Since JCMsuite Version 4, JCMgeo relies on a more capable syntax to define geometries. While the previous syntax is still recognized by JCMgeo, the current syntax allows for a simpler layout definition with more and improved features. Using the syntax highlighting, autocomplete and indentation features in JCMcontrol is the easiest way to create new and to update existing setups to the newest syntax. In the following, we highlight the major differences between JCMgeo Version 4 and the previous syntax:

  • Layout sections are now referenced by the dimension of the grid the generate, i.e. Layout2D and Layout3D for 2D and 3D geometries.
  • All geometrical primitives are collected in an Objects section.
  • To convert a layout in 2D:
    1. Rename Layout to Layout2D
    2. Create a section Objects enclosing all geometrical primitives
  • For an extruded layout in 3D :
    1. Rename Layout to Layout3D
    2. Rename the Extrusion section enclosing the Layer and LayerInterfaces to MultiLayer
    3. Create a new Extrusion section to open before the first 2D geometrical primitive and close after the freshly renamed MultiLayer section
    4. In this new Extrusion section, create a section Objects enclosing all 2D geometrical primitives

Below is a side-by-side comparison of the old and new syntax

Old New
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Layout {


  # 2D definitions (x-y-coordinates)
  Parallelogram {...}
  Circle {...}
  ...

  # extrusion to 3D (z-direction)
  Extrusion {
    LayerInterface { ...}
    Layer { ... }
    ...
    LayerInterface { ... }
  }








}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Layout3D {
  Extrusion {
    Objects {
      # 2D definitions (x-y-coordinates)
      Parallelogram {...}
      Circle {...}
      ...      
    }
    # extrusion to 3D (z-direction)
    MultiLayer {
      LayerInterface { ...}
      Layer { ... }
      ...
      LayerInterface { ... }
    }
  }
  Objects {
    Box { ... }
    Sphere { ... }
    Helix { ... }
    Cylinder { ... }
    ...
  }
}