{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://download.lammps.org/json/molecule-schema.json", "title": "JSON schema for LAMMPS 'molecule' files and objects", "description": "Version 0.1; last updated 2025-06-12", "type": "object", "properties": { "application": { "type": "string", "const": "LAMMPS" }, "format": { "type": "string", "const": "molecule" }, "revision": { "type": "integer", "minimum": 1, "maximum": 1 }, "title": {"type": "string"}, "schema": {"type": "string"}, "units": { "enum": ["lj", "real", "metal", "si", "cgs", "electron", "micro", "nano" ] }, "com": {"type": "array", "items": { "type": "number"}, "minItems": 3, "maxItems": 3 }, "masstotal": {"type": "number"}, "inertia": {"type": "array", "items": { "type": "number"}, "minItems": 6, "maxItems": 6 }, "coords": { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "x", "y", "z"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": "integer"}, {"type": "number"}, {"type": "number"}, {"type": "number"} ], "items": false } } }, "required": ["format", "data"] }, "types": { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "type"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": "number"}, {"type": ["number", "string"]} ], "items": false } } }, "required": ["format", "data"] }, "molecules": { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "molecule-id"] }, "data": { "type": "array", "items": { "type": "array", "items": { "type": "integer" }, "minItems": 2, "maxItems": 2 } } }, "required": ["format", "data"] }, "fragments": { "type": "object", "properties": { "format": { "type": "array", "const": ["fragment-id", "atom-id-list"] }, "data": { "type": "array", "items": { "type": ["string", "array"], "minItems": 2, "maxItems": 2 } } }, "required": ["format", "data"] }, "charges": { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "charge"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": "integer"}, {"type": "number"} ], "items": false } } }, "required": ["format", "data"] }, "dipoles": { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "mux", "muy", "muz"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": "integer"}, {"type": "number"}, {"type": "number"}, {"type": "number"} ], "items": false } } }, "required": ["format", "data"] }, "diameters": { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "diameter"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": "integer"}, {"type": "number"} ], "items": false } } }, "required": ["format", "data"] }, "masses": { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "mass"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": "integer"}, {"type": "number"} ], "items": false } } }, "required": ["format", "data"] }, "bonds": { "type": "object", "properties": { "format": { "type": "array", "const": ["bond-type", "atom1", "atom2"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": ["integer", "string"]}, {"type": "integer"}, {"type": "integer"} ], "items": false } } }, "required": ["format", "data"] }, "angles": { "type": "object", "properties": { "format": { "type": "array", "const": ["angle-type", "atom1", "atom2", "atom3"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": ["integer", "string"]}, {"type": "integer"}, {"type": "integer"}, {"type": "integer"} ], "items": false } } }, "required": ["format", "data"] }, "dihedrals": { "type": "object", "properties": { "format": { "type": "array", "const": ["dihedral-type", "atom1", "atom2", "atom3", "atom4"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": ["integer", "string"]}, {"type": "integer"}, {"type": "integer"}, {"type": "integer"}, {"type": "integer"} ], "items": false } } }, "required": ["format", "data"] }, "impropers": { "type": "object", "properties": { "format": { "type": "array", "const": ["improper-type", "atom1", "atom2", "atom3", "atom4"] }, "data": { "type": "array", "items": { "type": "array", "prefixItems": [ {"type": ["integer", "string"]}, {"type": "integer"}, {"type": "integer"}, {"type": "integer"}, {"type": "integer"} ], "items": false } } }, "required": ["format", "data"] }, "special": { "type": "object", "properties": { "counts" : { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "n12", "n13", "n14"] }, "data": { "type": "array", "items": { "type": "array", "items": { "type": "integer" }, "minItems": 4, "maxItems": 4 } } }, "required": ["format", "data"] }, "bonds" : { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "atom-id-list"] }, "data": { "type": "array", "items": { "type": ["integer", "array"], "minItems": 1 } } }, "required": ["format", "data"] } }, "required": ["counts", "bonds"] }, "shake": { "type": "object", "properties": { "flags" : { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "flag"] }, "data": { "type": "array", "items": { "type": "array", "items": { "type": "integer" }, "minItems": 2, "maxItems": 2 } } }, "required": ["format", "data"] }, "atoms" : { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "atom-id-list"] }, "data": { "type": "array", "items": { "type": ["integer", "array"], "minItems": 1 } } }, "required": ["format", "data"] }, "types" : { "type": "object", "properties": { "format": { "type": "array", "const": ["atom-id", "type-list"] }, "data": { "type": "array", "items": { "type": ["integer", "array"], "minItems": 1 } } }, "required": ["format", "data"] } }, "required": ["flags", "atoms", "types"] }, "body": { "type": "object", "properties": { "integers": { "type": "array", "items": {"type": "integer"}, "minItems" : 1 }, "doubles": { "type": "array", "items": {"type": "number"}, "minItems" : 1 } }, "required": ["integers", "doubles"] } }, "required": ["application", "format", "revision", "types"] }