This page documents an OPTIMADE Property Definition. See https://schemas.optimade.org/ for more information.
ID: https://schemas.anyterial.se/defs/v0.1/properties/spacegroups/asu_cut
Definition name: asu_cut
Property name: Asymmetric-unit cut
Description: One serialized asymmetric-unit half-space cut or logical cut expression in the recursive cctbx source representation.
Type: dictionary
This is the recursive source form that the bounded, non-recursive asu property flattens into a plane registry and boundary rules.
It is not stored in the generated datasets; it is provided to define the reconstruction semantics documented in the asu property.
Cut objects may recursively refer to other cut objects through condition, lhs, and rhs; each nested object follows this same asu_cut structure.
Requirements/Conventions:
It MUST be a dictionary with the following keys:
kind: REQUIRED; String.
Kind of cut expression: cut for a half-space cut, expr for a logical expression combining lhs and rhs with op.
ascii: OPTIONAL; String. Compact plain-text rendering of the cut expression.
xyz: OPTIONAL; String.
Coordinate expression for the cut in fractional x,y,z notation.
inclusive: OPTIONAL; Boolean.
Whether the cut boundary is included.
Used when kind is cut.
normal: OPTIONAL; List of 3 Fractions (String).
Normal vector of a half-space cut.
Used when kind is cut.
const: OPTIONAL; Fraction (String).
Right-hand-side constant of a half-space cut.
Used when kind is cut.
op: OPTIONAL; String.
Logical operator, & or |, combining lhs and rhs.
Used when kind is expr.
condition, lhs, rhs: OPTIONAL; Dictionary.
Nested cut-expression dictionaries following this same asu_cut structure.
condition refines when a half-space cut applies; lhs and rhs are the operands of a logical expression.
Examples:
{"kind": "cut", "ascii": "x0", "xyz": "x>=0", "inclusive": true, "base_symbol": "x0", "normal": ["1", "0", "0"], "const": "0"}JSON definition:
{
"$id": "https://schemas.anyterial.se/defs/v0.1/properties/spacegroups/asu_cut",
"$schema": "https://schemas.optimade.org/meta/v1.3/optimade/property_definition.json",
"title": "Asymmetric-unit cut",
"x-optimade-type": "dictionary",
"x-optimade-definition": {
"kind": "property",
"version": "0.1.0",
"format": "1.3",
"name": "asu_cut",
"label": "asu_cut_spacegroups"
},
"x-optimade-unit": "inapplicable",
"type": [
"object",
"null"
],
"description": "One serialized asymmetric-unit half-space cut or logical cut expression in the recursive cctbx source representation.\n\nThis is the recursive source form that the bounded, non-recursive `asu` property flattens into a plane registry and boundary rules.\nIt is not stored in the generated datasets; it is provided to define the reconstruction semantics documented in the `asu` property.\nCut objects may recursively refer to other cut objects through `condition`, `lhs`, and `rhs`; each nested object follows this same `asu_cut` structure.\n\n**Requirements/Conventions**:\n\n- It MUST be a dictionary with the following keys:\n\n - **kind**: REQUIRED; String.\n Kind of cut expression: `cut` for a half-space cut, `expr` for a logical expression combining `lhs` and `rhs` with `op`.\n\n - **ascii**: OPTIONAL; String.\n Compact plain-text rendering of the cut expression.\n\n - **xyz**: OPTIONAL; String.\n Coordinate expression for the cut in fractional `x,y,z` notation.\n\n - **inclusive**: OPTIONAL; Boolean.\n Whether the cut boundary is included.\n Used when `kind` is `cut`.\n\n - **normal**: OPTIONAL; List of 3 Fractions (String).\n Normal vector of a half-space cut.\n Used when `kind` is `cut`.\n\n - **const**: OPTIONAL; Fraction (String).\n Right-hand-side constant of a half-space cut.\n Used when `kind` is `cut`.\n\n - **op**: OPTIONAL; String.\n Logical operator, `&` or `|`, combining `lhs` and `rhs`.\n Used when `kind` is `expr`.\n\n - **condition**, **lhs**, **rhs**: OPTIONAL; Dictionary.\n Nested cut-expression dictionaries following this same `asu_cut` structure.\n `condition` refines when a half-space cut applies; `lhs` and `rhs` are the operands of a logical expression.",
"properties": {
"kind": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string",
"null"
],
"description": "Kind of cut expression.",
"enum": [
"cut",
"expr"
]
},
"ascii": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string",
"null"
],
"description": "Plain-text rendering of the cut expression."
},
"xyz": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string",
"null"
],
"description": "Coordinate expression for the cut in `x,y,z` notation."
},
"inclusive": {
"x-optimade-type": "boolean",
"x-optimade-unit": "inapplicable",
"type": [
"boolean",
"null"
],
"description": "Whether the cut boundary is included."
},
"base_symbol": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string",
"null"
],
"description": "Base symbolic inequality or coordinate label used for the cut."
},
"normal": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"dim_lattice"
],
"sizes": [
3
]
},
"type": [
"array",
"null"
],
"description": "Normal vector of a half-space cut.",
"items": {
"$id": "https://schemas.anyterial.se/defs/v0.1/properties/core/fraction",
"title": "Fraction",
"x-optimade-type": "string",
"x-optimade-definition": {
"label": "fraction_core",
"kind": "property",
"version": "0.1.0",
"format": "1.3",
"name": "fraction"
},
"type": [
"string",
"null"
],
"description": "A numerical representation formed as the quotient of two numbers represented as a string.",
"examples": [
"2/3",
"5/42",
"10",
"0"
],
"x-optimade-unit": "inapplicable"
}
},
"const": {
"$id": "https://schemas.anyterial.se/defs/v0.1/properties/core/fraction",
"title": "Fraction",
"x-optimade-type": "string",
"x-optimade-definition": {
"label": "fraction_core",
"kind": "property",
"version": "0.1.0",
"format": "1.3",
"name": "fraction"
},
"type": [
"string",
"null"
],
"description": "A numerical representation formed as the quotient of two numbers represented as a string.",
"examples": [
"2/3",
"5/42",
"10",
"0"
],
"x-optimade-unit": "inapplicable"
},
"op": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string",
"null"
],
"description": "Logical operator used when the expression combines two subexpressions.",
"enum": [
"&",
"|"
]
},
"lhs": {
"x-optimade-type": "dictionary",
"x-optimade-unit": "inapplicable",
"type": [
"object",
"null"
],
"description": "Left-hand operand for a logical cut expression, following this same `asu_cut` structure.",
"properties": {
"kind": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string",
"null"
],
"description": "Kind of the nested cut expression; the remaining keys follow the same `asu_cut` structure."
}
}
},
"rhs": {
"x-optimade-type": "dictionary",
"x-optimade-unit": "inapplicable",
"type": [
"object",
"null"
],
"description": "Right-hand operand for a logical cut expression, following this same `asu_cut` structure.",
"properties": {
"kind": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string",
"null"
],
"description": "Kind of the nested cut expression; the remaining keys follow the same `asu_cut` structure."
}
}
},
"condition": {
"x-optimade-type": "dictionary",
"x-optimade-unit": "inapplicable",
"type": [
"object",
"null"
],
"description": "Optional conditional cut expression that refines when this cut applies, following this same `asu_cut` structure.",
"properties": {
"kind": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string",
"null"
],
"description": "Kind of the nested cut expression; the remaining keys follow the same `asu_cut` structure."
}
}
}
},
"examples": [
{
"kind": "cut",
"ascii": "x0",
"xyz": "x>=0",
"inclusive": true,
"base_symbol": "x0",
"normal": [
"1",
"0",
"0"
],
"const": "0"
}
]
}