public release 4.2.0 - see README.md and CHANGES.md for details

This commit is contained in:
2026-01-08 19:10:45 +01:00
parent ef781e2db4
commit b64beb694c
181 changed files with 39388 additions and 6527 deletions

View File

@@ -0,0 +1,139 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "file:project.schema.json",
"title": "PMSCO Project",
"description": "PMSCO Project",
"type": "object",
"properties": {
"__module__": {
"type": "string",
"title": "name of project module",
"examples": ["projects.twoatom.twoatom"]
},
"__class__": {
"type": "string",
"title": "name of project class",
"examples": ["TwoatomProject"]
},
"job_tags": {
"type": "object"
},
"description": {"type": "string"},
"mode": {
"type": "string",
"enum": ["genetic", "grid", "single", "swarm", "table", "test", "validate"]
},
"directories": {"type": "object"},
"db_file": {"type": "string"},
"keep_files": {
"type": "array",
"items": {
"type": "string",
"enum": ["all", "cluster", "atomic", "input", "output", "report",
"region", "emitter", "scan", "domain", "model", "log", "debug", "population", "rfac"]
},
"uniqueItems": true
},
"keep_best": {"type": "integer"},
"keep_levels": {"type": "integer"},
"time_limit": {
"type": "number",
"title": "time limit in hours",
"minimum": 0
},
"log_level": {
"type": "string",
"enum": ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
},
"cluster_generator": {
"type": "object",
"description": "class name and initial values of cluster generator attributes",
"examples": ["TwoatomCluster"],
"properties": {
"__class__": {
"type": "string",
"description": "class name of cluster generator"
}
},
"required": ["__class__"]
},
"atomic_scattering_factory": {
"type": "string",
"enum": ["InternalAtomicCalculator", "PhagenCalculator"]
},
"multiple_scattering_factory": {
"type": "string",
"enum": ["EdacCalculator", "TestCalculator"]
},
"model_space": {
"type": "object"
},
"domains": {"type": "array",
"items": {"type": "object"},
"minItems": 1,
"uniqueItems": true
},
"scans": {"type": "array",
"items": {
"type": "object",
"properties": {
"__class__": {
"type": "string",
"enum": ["ScanCreator", "ScanKey", "ScanLoader", "HoloScanCreator"]
},
"key": {"type": "string"},
"filename": {"type": "string"},
"emitter": {"type": "string"},
"initial_state": {"type": "string"},
"positions": {
"type": "object",
"properties": {
"e": {"type": ["number", "string"]},
"t": {"type": ["number", "string"]},
"p": {"type": ["number", "string"]},
"a": {"type": ["number", "string"]}
}
},
"patch": {
"type": "object",
"properties": {
"e": {"type": ["number", "string"]},
"t": {"type": ["number", "string"]},
"p": {"type": ["number", "string"]},
"a": {"type": ["number", "string"]}
}
},
"generator": {"type": "string"},
"generator_params": {"type": "object"},
"other_positions": {
"type": "object",
"properties": {
"e": {"type": ["number", "string"]},
"t": {"type": ["number", "string"]},
"p": {"type": ["number", "string"]},
"a": {"type": ["number", "string"]}
}
},
"is_modf": {"type": "boolean"}
},
"required": ["__class__"]
},
"minItems": 1,
"uniqueItems": true
},
"optimizer_params": {
"type": "object",
"properties": {
"pop_size": {"type": "integer"},
"seed_file": {"type": "string"},
"seed_limit": {"type": "integer"},
"recalc_seed": {"type": "boolean"},
"table_source": {"type": "string"}
}
},
"reports": {
"$ref": "file:reports.schema.json"
}
},
"required": ["__class__", "__module__"]
}

View File

@@ -0,0 +1,60 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "file:reports.schema.json",
"title": "PMSCO Reports",
"description": "PMSCO Reports",
"type": "array",
"items": {
"type": "object",
"properties": {
"__class__": {
"type": "string",
"enum": [
"ConvergencePlot",
"GeneticPlot",
"Rfactor1DPlot",
"Rfactor2DPlot",
"SwarmPlot"
]
},
"enabled": {
"type": "boolean",
"default": true,
"title": "enable the report",
"description": "disabled reports will not execute at run time"
},
"filename_format": {
"type": "string",
"examples": [
"${base}.convergence",
"${base}-${gen}.geneticplot",
"${base}-${param0}-${param1}-${gen}.swarmplot"
]
},
"titlename_format": {
"type": "string",
"examples": [
"${job_name}",
"${job_name} gen ${gen}",
"${job_name} ${param0}-${param1} gen ${gen}"
]
},
"params": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 2,
"uniqueItems": true
}
}
},
"required": [
"__class__"
]
},
"minItems": 1
}

View File

@@ -0,0 +1,16 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "file:runfile.schema.json",
"title": "PMSCO Runfile",
"description": "PMSCO Runfile",
"type": "object",
"properties": {
"schedule": {
"$ref": "file:schedule.schema.json"
},
"project": {
"$ref": "file:project.schema.json"
}
},
"required": ["project"]
}

View File

@@ -0,0 +1,78 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "file:schedule.schema.json",
"title": "PMSCO Job Schedule",
"description": "PMSCO Job Schedule",
"type": "object",
"properties": {
"__module__": {
"type": "string",
"examples": ["pmsco.schedule"]
},
"__class__": {
"type": "string",
"examples": ["PsiRaSchedule"]
},
"nodes": {
"type": "integer",
"minimum": 1,
"default": 1
},
"tasks": {
"type": "integer",
"minimum": 1,
"default": 8
},
"tasks_per_node": {
"type": "integer",
"minimum": 1,
"default": 8
},
"wall_time": {
"type": "string",
"description": "[days-]hours[:minutes[:seconds]]",
"pattern": "^([0-9]+-)?[0-9]+(:[0-9]+)?(:[0-9]+)?$",
"default": "1",
"examples": [
"2:00",
"5-4:3:21"
]
},
"partition": {
"type": "string",
"description": "name of slurm partition",
"default": ""
},
"modules": {
"type": "array",
"description": "names of system modules to load",
"items": {"type": "string"},
"minItems": 0,
"uniqueItems": true
},
"conda_env": {
"type": "string",
"description": "name or path of conda environment",
"default": ""
},
"manual": {
"type": "boolean",
"default": true,
"title": "manual submission",
"description": "produce a job file that is submitted separately."
},
"enabled": {
"type": "boolean",
"title": "enable schedule",
"default": false,
"description": "true: schedule the job, false: run it directly."
},
"overwrite_job_dir": {
"type": "boolean",
"default": false,
"title": "overwrite job directory",
"description": "true: overwrite contents in output directory (dangerous), false (default): raise error if directory exists."
}
},
"required": ["__class__", "__module__"]
}