Describes IGL 0.5. Page revision 1.0, 2026-08-07. Definitions revision 1.
Block reference
Every block IGL defines. This page is generated from the same definitions the
checker uses, so a statement listed here is one your model can use, and one
that is missing is one you will be told about
(IG210).
They are in the order they have to appear in a file, so you can read down this
page and write down your model at the same time.
META
core profile · takes no name
Descriptive metadata. No effect on execution, recommended for reproducibility.
| Statement | Kind | Value | Needed? | Notes |
| author | assignation | text | optional | |
| date | assignation | a date | optional | |
| version | assignation | a version number | optional | |
| language | assignation | a version number | recommended | |
| description | assignation | text in quotes | optional | |
| license | assignation | text | optional | |
| reference | assignation | text | optional | |
DATABASE
core profile · takes no name
IGDB files loaded before resolution, in order. Later entries override earlier ones.
| Statement | Kind | Value | Needed? | Notes |
| file | assignation | a file path | required | repeatable |
UNITS
core profile · takes no name
Default units applied where a statement omits one.
| Statement | Kind | Value | Needed? | Notes |
| concentration | assignation | a name | optional | |
| time | assignation | a name | optional | |
| temperature | assignation | a name | optional | |
| delta | assignation | a name | optional | |
| volume | assignation | a name | optional | |
| mass | assignation | a name | optional | |
| pressure | assignation | a name | optional | |
CONDITIONS
core profile · takes no name · can declare parameters of its own
Model wide temperature, pressure and pH.
| Statement | Kind | Value | Needed? | Notes |
| temperature | assignation | number, temperature | optional | |
| pressure | assignation | number, pressure | optional | |
| pH | assignation | number, dimensionless | optional | |
| Eh | assignation | number, potential | optional | |
| ionic_strength | assignation | number, molality | optional | |
STANDARD
core profile · takes no name
Reference standards overriding IGDB for this model.
| Statement | Kind | Value | Needed? | Notes |
| standard | ref_value | number | optional | repeatable · takes ratio · takes uncertainty |
PHREEQC
extended profile · takes a name · can appear more than once · declares a Backend other blocks can refer to
PHREEQC interoperation. The referenced file stays valid standalone PHREEQC input.
| Statement | Kind | Value | Needed? | Notes |
| input_file | assignation | a file path | required | written input file |
| database | assignation | a file path | optional | |
| mode | assignation | one of a list | optional | one of oneshot, series · default oneshot |
| export | assignation | text in quotes | optional | repeatable · takes to |
PARAMETERS
core profile · takes no name
Global scalars and expressions. Every statement is an expression statement.
SPECIES
core profile · takes no name
Chemical species not supplied by IGDB.
| Statement | Kind | Value | Needed? | Notes |
| species | assignation | a species | required | repeatable |
ISOTOPES
core profile · takes no name
Isotope systems the model tracks. Compositions belong to RESERVOIR, not here.
| Statement | Kind | Value | Needed? | Notes |
| mode | assignation | one of a list | optional | one of absolute, relative · default absolute |
| ratio | assignation | an isotope ratio | required | repeatable · takes standard |
LAW
extended profile · takes a name · can appear more than once · declares a Law other blocks can refer to · takes an indented formula
Reusable fractionation or rate law, referenced by name from several processes.
SOLUTION
extended profile · takes a name · can appear more than once
Held in reserve. The name belongs to IGL but what goes inside it has not been decided. You can write this block; nothing in it is checked, nothing reads it, and the tools report
IG011 so you are not left guessing.
RESERVOIR
core profile · takes a name · can appear more than once · declares a Reservoir other blocks can refer to · can declare parameters of its own
Physical compartment. Species concentrations and isotopic compositions.
| Statement | Kind | Value | Needed? | Notes |
| volume | assignation | number, volume | optional | |
| mass | assignation | number, mass | optional | |
| temperature | assignation | number, temperature | optional | |
INITIAL
extended profile · takes no name
Held in reserve. The name belongs to IGL but what goes inside it has not been decided. You can write this block; nothing in it is checked, nothing reads it, and the tools report
IG011 so you are not left guessing.
PROCESS
core profile · takes a name · can appear more than once · declares a Process other blocks can refer to · can declare parameters of its own
Central object. `type` discriminates which properties are required.
| Statement | Kind | Value | Needed? | Notes |
| type | assignation | one of a list | required | one of reduction, oxidation, dissolution, precipitation, mixing, adsorption, exchange, evaporation, diffusion, uptake, ligand_exchange |
| from | reference | reference to Reservoir | optional | |
| into | reference | reference to Reservoir | optional | |
| extent | assignation | number, dimensionless | optional | 0.0 to 1.0 |
| context | assignation | one of a list | optional | one of pyrometallurgy, hydrometallurgy, natural, biotic |
| regime | assignation | one of a list | optional | one of equilibrium, kinetic |
| reactant | reference | reference to Species | optional | |
| product | reference | reference to any | optional | |
| source | ref_value | reference to Reservoir | optional | repeatable |
| sorbent | reference | reference to Species | optional | |
| phase_a | reference | reference to Species | optional | |
| phase_b | reference | reference to Species | optional | |
| location | reference | reference to Reservoir | optional | inferred when only one exists |
| law | reference | reference to Law | optional | |
FRACTIONATION
core profile · takes a name · can appear more than once · extends Process
Fractionation attached to a process. The identifier always names a Process.
| Statement | Kind | Value | Needed? | Notes |
| isotope | assignation | an isotope ratio | required | |
| alpha | assignation | number, dimensionless | optional | one of the mode group |
| epsilon | assignation | number, delta | optional | one of the mode group |
| law | law_body | | optional | one of the mode group |
| law_file | assignation | a file path | optional | written law file · one of the mode group |
| phase | assignation | number, delta | optional | |
KINETICS
core profile · takes a name · can appear more than once · extends Process
Rate law attached to a process. Its presence is what makes the process kinetic.
| Statement | Kind | Value | Needed? | Notes |
| rate | assignation | one of a list | required | one of zero_order, first_order, second_order, monod |
| constant | assignation | number, rate_constant | optional | |
| half_saturation | assignation | number, molality | optional | |
SAMPLE
identification profile · takes a name · can appear more than once · declares a Sample other blocks can refer to
A measured composition, taken as the source or the product of an identification.
| Statement | Kind | Value | Needed? | Notes |
| element | assignation | a name | required | |
| uncertainty | assignation | number, delta | optional | |
| material | assignation | text | optional | |
| note | assignation | text in quotes | optional | |
| series | list | number | optional | |
MODEL
core profile · takes a name · declares a Model other blocks can refer to
Simulation boundaries, process ordering and stopping condition.
| Statement | Kind | Value | Needed? | Notes |
| reservoirs | list | reference to Reservoir | optional | default all |
| processes | list | reference to Process | optional | default all |
| step | assignation | number, time | optional | |
| progress | assignation | one of a list | optional | one of time, extent · default time |
| until | condition | | optional | |
IDENTIFY
identification profile · takes a name · can appear more than once · declares a Identification other blocks can refer to
Searches for the process or chain of processes that explains the gap between two samples.
| Statement | Kind | Value | Needed? | Notes |
| source | reference | reference to Sample | required | |
| product | reference | reference to Sample | required | |
| mode | assignation | one of a list | required | one of single, chain, rayleigh, hybrid |
| candidates | list | one of a list | optional | one of reduction, oxidation, dissolution, precipitation, adsorption, evaporation, exchange, diffusion, mixing, uptake, ligand_exchange · default all |
| context | assignation | one of a list | optional | one of pyrometallurgy, hydrometallurgy, natural, biotic |
| regime | assignation | one of a list | optional | one of equilibrium, kinetic |
| max_chain | assignation | number, dimensionless | optional | |
| tolerance | assignation | number, delta | optional | |
| top | assignation | number, dimensionless | optional | |
| extent | assignation | number, dimensionless | optional | 0.0 to 1.0 |
DATASET
extended profile · takes a name · can appear more than once · declares a Dataset other blocks can refer to
Held in reserve. The name belongs to IGL but what goes inside it has not been decided. You can write this block; nothing in it is checked, nothing reads it, and the tools report
IG011 so you are not left guessing.
OUTPUT
core profile · takes no name
State variables recorded during the run.
| Statement | Kind | Value | Needed? | Notes |
| variable | reference | reference to any | required | a qualified path · repeatable |
| every | assignation | number, time | optional | |
PLOT
extended profile · takes no name · can appear more than once
Held in reserve. The name belongs to IGL but what goes inside it has not been decided. You can write this block; nothing in it is checked, nothing reads it, and the tools report
IG011 so you are not left guessing.
REPORT
extended profile · takes no name
Held in reserve. The name belongs to IGL but what goes inside it has not been decided. You can write this block; nothing in it is checked, nothing reads it, and the tools report
IG011 so you are not left guessing.
EXPORT
core profile · takes no name · can appear more than once
Result serialisation. May repeat, once per output format.
| Statement | Kind | Value | Needed? | Notes |
| format | assignation | one of a list | required | one of isof, csv, json |
| file | assignation | a file path | required | |
ADSORPTION
extended profile · takes a name · can appear more than once · a shorthand for PROCESS
Shorthand for PROCESS with type adsorption plus its FRACTIONATION.
| Statement | Kind | Value | Needed? | Notes |
| sorbent | reference | reference to Species | required | |
| reactant | reference | reference to Species | required | |
| isotope | assignation | an isotope ratio | required | |
| alpha | assignation | number, dimensionless | optional | one of the mode group |
| epsilon | assignation | number, delta | optional | one of the mode group |
| extent | assignation | number, dimensionless | optional | 0.0 to 1.0 |
| regime | assignation | one of a list | optional | one of equilibrium, kinetic |
EXCHANGE
extended profile · takes a name · can appear more than once · a shorthand for PROCESS
Shorthand for PROCESS with type exchange plus its FRACTIONATION.
| Statement | Kind | Value | Needed? | Notes |
| phase_a | reference | reference to Species | required | |
| phase_b | reference | reference to Species | required | |
| isotope | assignation | an isotope ratio | required | |
| alpha | assignation | text | optional | one of the mode group |
| epsilon | assignation | number, delta | optional | one of the mode group |
| extent | assignation | number, dimensionless | optional | 0.0 to 1.0 |
| regime | assignation | one of a list | optional | one of equilibrium, kinetic |
FIT
extended profile · takes no name
Held in reserve. The name belongs to IGL but what goes inside it has not been decided. You can write this block; nothing in it is checked, nothing reads it, and the tools report
IG011 so you are not left guessing.
MONTE_CARLO
extended profile · takes no name
Held in reserve. The name belongs to IGL but what goes inside it has not been decided. You can write this block; nothing in it is checked, nothing reads it, and the tools report
IG011 so you are not left guessing.
RAYLEIGH
extended profile · takes a name · can appear more than once · a shorthand for PROCESS
Shorthand for open system Rayleigh distillation.
| Statement | Kind | Value | Needed? | Notes |
| reservoir | reference | reference to Reservoir | required | |
| isotope | assignation | an isotope ratio | required | |
| reactant | reference | reference to Species | required | |
| product | reference | reference to Species | required | |
| alpha | assignation | number, dimensionless | optional | one of the mode group |
| epsilon | assignation | number, delta | optional | one of the mode group |
| extent | assignation | number, dimensionless | optional | 0.0 to 1.0 |
SENSITIVITY
extended profile · takes no name
Held in reserve. The name belongs to IGL but what goes inside it has not been decided. You can write this block; nothing in it is checked, nothing reads it, and the tools report
IG011 so you are not left guessing.
TITLE
core profile · takes no name
Human readable model title. One content line, no statements.
Top of page