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