Files
pmsco-public/pmsco/schema/project.schema.json

140 lines
4.0 KiB
JSON

{
"$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__"]
}