Files
lammps/tools/json/molecule-schema.json

307 lines
9.8 KiB
JSON

{
"$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"},
"body": {"type": "array",
"items": { "type": "integer"},
"minItems": 2,
"maxItems": 2
},
"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"]
}
},
"required": ["application", "format", "revision", "types"]
}