Preliminaries¶
This chapter introduces general concepts on how input and output data are organized within JCMsuite
. For this purpose, the major tools JCMsolve
and JCMgeo
of the JCMsuite
package may be regarded as command line tools which transform certain input files into one or several output files. Any JCM input file (as well as the output files) has the suffix .jcm
or .jcmp
. The input files are called .jcm
files regardless of the extra ‘p’. Valid .jcm
input files have to match a strict format, or schema (for details see Input Schema). It is important for the user to know the input schema and to know how it is interpreted by the solver.
The JCMsuite
input structure is general enough to capture complicated geometries, as well as complicated physical situations. For instance, when simulating a modern photonic crystal device, it may be necessary to specify hundreds of individually shaped cells, to account for stress-induced birefringence and to model a complex illumination setup. It comes without saying that the corresponding JCM input files exhibit an accordant complexity.
To deal with this complexity it is the aim of JCMsuite
to support the usage of popular scripting languages such as Python or Matlab®. For doing so, it is possible to enrich the original .jcm
input files with embedded scripting blocks. This concept is called embedded scripting, and the so extended input files carry the suffices .jcmt
or .jcmpt
. The additional character ‘t’ stands for template, since traditional these input files were only used for simple parameter substitutions. The .jcmt
files are pre-processed by the underlying scripting language to generate the proprietary .jcm
. So, the embedded scripting support may be seen as supplemental tool which helps to create and to manage large .jcm
input files.