Skip to content

Calculation management

Jip Claassens edited this page Jul 6, 2026 · 3 revisions

Expression fast calculations: Calculation Management

The GeoDMS treats a model as a dependency tree of data items: every item declares, through its expression, which source data and other items it is calculated from. The engine manages this tree, so the modeller never specifies a calculation order.

lazy evaluation

Calculations are demand driven. Only the items that are actually requested (viewed in the GUI, exported, or updated from the command line) are calculated, together with the suppliers they depend on. Items that nothing asks for are never computed.

incremental updates

Within a session, calculated results are kept and reused; nothing is computed twice. Results are invalidated only by changes in:

  1. the direct or indirect expressions used to calculate them;
  2. the source data they are derived from.

After such a change, only the invalidated part of the tree is recalculated; everything else is reused. See Update Mechanism for a description of this incremental update mechanism. Results that should persist between sessions can be written to disk explicitly, see Strategic decoupling.

optimization of the calculation process

In determining how to calculate the requested results, the engine also:

  • rewrites calculation rules symbolically to remove redundant calculation steps;
  • optimizes the path of calculation steps (for example in the trade-off between calculating each country per year or each year per country);
  • splits pre- and post-processing steps off from the core calculations;
  • processes large domains in segments/tiles, in parallel where possible (see GeoDMS Default Tiling).

Clone this wiki locally