Skip to content

Schema Reference

Configuration contract for SimulationConfig. Generated from mp3du-rs/python/mp3du_schema.json.

Auto-generated

This page is generated by scripts/gen_schema_docs.py. Do not edit manually.

Top-Level Properties

Property Type Required Default Constraints Description
velocity_method string Yes one of: Waterloo
solver string Yes one of: Euler, Rk4StepDoubling, DormandPrince, CashKarp, VernerRobust, VernerEfficient
adaptive object Yes
dispersion object ("None" | "Gsde" | "Ito") Yes
retardation_enabled boolean Yes
capture object Yes
initial_dt number Yes > 0
max_dt number Yes > 0
direction number Yes one of: 1.0, -1.0

adaptive

Property Type Required Default Constraints Description
tolerance number Yes > 0
safety number Yes > 0
alpha number Yes > 0
min_scale number Yes > 0
max_scale number Yes > 0
max_rejects integer Yes ≥ 0
min_dt number Yes > 0
euler_dt number Yes > 0

capture

Property Type Required Default Constraints Description
max_time number Yes > 0
max_steps integer Yes ≥ 1
stagnation_velocity number Yes ≥ 0
stagnation_limit integer Yes ≥ 1
capture_radius number No > 0 Distance from well centre (cell centre) within which a particle is captured. Omit or set to null for immediate capture on cell entry.
face_epsilon number No 1e-06 > 0 Tolerance for top/bottom face proximity checks during IFACE-based capture. Particle is considered at the face when z > 1 - face_epsilon (top) or z < face_epsilon (bottom). Default: 1e-6.

dispersion

The dispersion property uses one of the following variant schemas:

Variant: "None"

Property Type Required Default Constraints Description
method string Yes must be None

Variant: "Gsde"

Property Type Required Default Constraints Description
method string Yes must be Gsde
alpha_l number Yes ≥ 0
alpha_th number Yes ≥ 0
alpha_tv number Yes ≥ 0

Variant: "Ito"

Property Type Required Default Constraints Description
method string Yes must be Ito
alpha_l number Yes ≥ 0
alpha_th number Yes ≥ 0
alpha_tv number Yes ≥ 0
Raw JSON Schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "MP3DU SimulationConfig",
  "type": "object",
  "required": [
    "velocity_method",
    "solver",
    "adaptive",
    "dispersion",
    "retardation_enabled",
    "capture",
    "initial_dt",
    "max_dt",
    "direction"
  ],
  "properties": {
    "velocity_method": {
      "type": "string",
      "enum": [
        "Waterloo"
      ]
    },
    "solver": {
      "type": "string",
      "enum": [
        "Euler",
        "Rk4StepDoubling",
        "DormandPrince",
        "CashKarp",
        "VernerRobust",
        "VernerEfficient"
      ]
    },
    "adaptive": {
      "type": "object",
      "required": [
        "tolerance",
        "safety",
        "alpha",
        "min_scale",
        "max_scale",
        "max_rejects",
        "min_dt",
        "euler_dt"
      ],
      "properties": {
        "tolerance": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "safety": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "alpha": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "min_scale": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "max_scale": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "max_rejects": {
          "type": "integer",
          "minimum": 0
        },
        "min_dt": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "euler_dt": {
          "type": "number",
          "exclusiveMinimum": 0
        }
      },
      "additionalProperties": false
    },
    "dispersion": {
      "oneOf": [
        {
          "type": "object",
          "required": [
            "method"
          ],
          "properties": {
            "method": {
              "const": "None"
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "method",
            "alpha_l",
            "alpha_th",
            "alpha_tv"
          ],
          "properties": {
            "method": {
              "const": "Gsde"
            },
            "alpha_l": {
              "type": "number",
              "minimum": 0
            },
            "alpha_th": {
              "type": "number",
              "minimum": 0
            },
            "alpha_tv": {
              "type": "number",
              "minimum": 0
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "method",
            "alpha_l",
            "alpha_th",
            "alpha_tv"
          ],
          "properties": {
            "method": {
              "const": "Ito"
            },
            "alpha_l": {
              "type": "number",
              "minimum": 0
            },
            "alpha_th": {
              "type": "number",
              "minimum": 0
            },
            "alpha_tv": {
              "type": "number",
              "minimum": 0
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "retardation_enabled": {
      "type": "boolean"
    },
    "capture": {
      "type": "object",
      "required": [
        "max_time",
        "max_steps",
        "stagnation_velocity",
        "stagnation_limit"
      ],
      "properties": {
        "max_time": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "max_steps": {
          "type": "integer",
          "minimum": 1
        },
        "stagnation_velocity": {
          "type": "number",
          "minimum": 0
        },
        "stagnation_limit": {
          "type": "integer",
          "minimum": 1
        },
        "capture_radius": {
          "type": "number",
          "exclusiveMinimum": 0,
          "description": "Distance from well centre (cell centre) within which a particle is captured. Omit or set to null for immediate capture on cell entry."
        },
        "face_epsilon": {
          "type": "number",
          "exclusiveMinimum": 0,
          "default": 1e-06,
          "description": "Tolerance for top/bottom face proximity checks during IFACE-based capture. Particle is considered at the face when z > 1 - face_epsilon (top) or z < face_epsilon (bottom). Default: 1e-6."
        }
      },
      "additionalProperties": false
    },
    "initial_dt": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "max_dt": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "direction": {
      "type": "number",
      "enum": [
        1.0,
        -1.0
      ]
    }
  },
  "additionalProperties": false
}