Project DefinitionΒΆ

A simulation project in JCMsuite is defined by a number of input text files placed in a common project folder. Below, the various input files are shortly reviewed. JCMsolve parses the input files and solves the simulation task. Depending on the physical setup, not all files are necessary, e.g. an eigenmode computation project does not require the definition of source fields. The input files are:


The layout file. This file describes the geometry of the project. Complex structures are built from simple objects, e.g. circles, parallelograms, or polygons. As an example, the following snippet defines a Circle with radius of 3.5 units of length:

Layout2D {
  Objects {
    Circle {
      Name = "Scatterer"
      DomainId = 4
      Radius = 3.5

The DomainId refers an object of the layout to the corresponding entry in the materials.jcm file to set the physical properties. The Geometry Tutorial explains how to set up complex layouts.


The material file. This file contains the material properties of the physical domains, e.g. the relative permittivity and permeability tensors. Each geometrical object specified in the layout file has an identifier DomainId which refers to the layout file:

Material {
   DomainId = 4
   Name = "Silica"
   RelPermeability = 1.0
   RelPermittivity = 2.1025


The project file. The name of this file with ending jcmp can be chosen by the user. In the project file the user specifies the physical model to be solved and parameters for the solution process, e.g. the required accuracy. This file can also be used to define so called post-processes executed on the output data from the solution process. Examples are computation of far field coefficients, or derived data like energy densities, etc.


The boundary condition file. This file allows the user to specify boundary conditions on particular parts of the geometry, e.g. a perfectly conducting surface:

BoundaryCondition {
   BoundaryId = 3
   Electromagnetic = TangentialElectric

Please note that transparent and periodic boundaries of the computational domain are not boundaries in a physical sense, but rather properties of the geometry. Therefore, these types of boundaries are defined in the layout file.


The source file. For scattering projects (e.g. light scattering off a diffraction grating or light transition through a lens) a source field has to be prescribed. This could, e.g. be a point source or a plane wave with given wave-vector K and amplitude:

Source {
  ElectricFieldStrength {
    PlaneWave {
      K = [0, -4.0536e+06, 0]
      Amplitude = [0.0, 0.0, 1.0]

Several sources can be specified within a single source file. For resonance and propagating mode projects no sources have to be specified.


The grid file includes the finite element mesh (space discretization) and is generated automatically from the layout file (by the mesh generator JCMgeo).