Input Schema¶
The input schema declares all possible settings of the input data structures.
The previous chapter Data Structure has introduced the common data structure of the .jcm
input files: It consists of a data tree built up by nested sections containing key-value lists of primitive data types:
Section1 {
Key1 = <Data1>
Key2 = <Data2>
...
Section11 {
Key11_1 = <Data11_1>
...
}
Section12 {
...
}
}
Here, Section1
, Section11
are section names and Key1
, Key2
, etc., are names of primitives. We commonly call them “tags”. The assigned data <Data1>
, <Data2>
, etc., must be of one of the primitive types as listed here.
The data trees contained in the JCM input files must match a schema to be acceptable for JCMsuite
. The input schema has the following function:
- Manifestation of all allowed tags within a section
- Specifying the role of a tag, e.g., if it is a (sub)-section or a primitive of a specific type
- Declaration of default values for primitives
- Setting the allowed range for a primitive, for example:
- Restriction of a real number parameter to a certain interval
- Listing the items of an enumeration primitive
- Setting the shape of a vector or matrix
- Establishing rules concerning the appearance or the interdependency of tags:
- A tag may appear multiple times or not. In the latter case is called “simple”.
- A tag may be optional
- One tag may exclude another: When the first tag is set it is not allowed to set the other.
- One tag may include another: When the first tag is set it is required to set the second tag as well.
The chapters project.jcmp, materials.jcm, boundary_conditions.jcm, sources.jcm, and , layout.jcm declare the input schema of JCMsolve
and JCMgeo
for the individual input files. Before browsing through these, it is advised to look into the next chapter: How to Use the Parameter Reference.