diff --git a/example/models_directory/pb/qm/abin/configuration_interaction.json b/example/models_directory/pb/qm/abin/configuration_interaction.json index b5b0924e8..b1c58d372 100644 --- a/example/models_directory/pb/qm/abin/configuration_interaction.json +++ b/example/models_directory/pb/qm/abin/configuration_interaction.json @@ -8,7 +8,7 @@ "slug": "qm" }, "tier3": { - "name": "ab initio", + "name": "ab-initio", "slug": "abin" }, "type": { diff --git a/example/models_directory/pb/qm/abin/gw.json b/example/models_directory/pb/qm/abin/gw.json new file mode 100644 index 000000000..f2c6ebcbd --- /dev/null +++ b/example/models_directory/pb/qm/abin/gw.json @@ -0,0 +1,30 @@ +{ + "tier1": { + "name": "physics-based", + "slug": "pb" + }, + "tier2": { + "name": "quantum-mechanical", + "slug": "qm" + }, + "tier3": { + "name": "ab-initio", + "slug": "abin" + }, + "type": { + "name": "GW Approximation", + "slug": "gw" + }, + "subtype": { + "name": "G0W0", + "slug": "g0w0" + }, + "tags": [ + "greens-function", + "many-body-perturbation-theory", + "user-adjustable" + ], + "method": { + "...": "include(../../../../method.json)" + } +} diff --git a/schema/models_directory/pb/qm/abin.json b/schema/models_directory/pb/qm/abin.json index 1dec6d114..527421c9b 100644 --- a/schema/models_directory/pb/qm/abin.json +++ b/schema/models_directory/pb/qm/abin.json @@ -1,5 +1,7 @@ { + "schemaId": "models-directory-pb-qm-abin", "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ab initio schema", "allOf": [ { "$ref": "../qm.json" diff --git a/schema/models_directory/pb/qm/abin/configuration_interaction.json b/schema/models_directory/pb/qm/abin/configuration_interaction.json index a6e940293..00f63b3c2 100644 --- a/schema/models_directory/pb/qm/abin/configuration_interaction.json +++ b/schema/models_directory/pb/qm/abin/configuration_interaction.json @@ -2,10 +2,9 @@ "schemaId": "models-directory-pb-qm-abin-configuration-interaction", "$schema": "http://json-schema.org/draft-04/schema#", "title": "configuration interaction schema", - "description": "configuration interaction wavefunction model", "allOf": [ { - "$ref": "../../../../model.json" + "$ref": "../abin.json" } ], "properties": { diff --git a/schema/models_directory/pb/qm/abin/gw.json b/schema/models_directory/pb/qm/abin/gw.json new file mode 100644 index 000000000..ccaaf0270 --- /dev/null +++ b/schema/models_directory/pb/qm/abin/gw.json @@ -0,0 +1,58 @@ +{ + "schemaId": "models-directory-pb-qm-abin-gw", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "GW schema", + "allOf": [ + { + "$ref": "../abin.json" + } + ], + "properties": { + "type": { + "enum": [ + { + "name": "GW Approximation", + "slug": "gw" + } + ] + }, + "subtype": { + "description": "Abbreviations taken from Golze, Dvorak, Rinke, Frontiers in Chemistry, (2019) 7:377. https://doi.org/10.3389/fchem.2019.00377", + "enum": [ + { + "name": "G0W0", + "slug": "g0w0" + }, + { + "name": "eigenvalue self-consistent G (evGW0)", + "slug": "evgw0" + }, + { + "name": "eigenvalue self-consistent GW (evGW)", + "slug": "evgw" + }, + { + "name": "self-consistent G (scGW0)", + "slug": "scgw0" + }, + { + "name": "self-consistent GW", + "slug": "scgw" + }, + { + "name": "quasiparticle self-consistent GW", + "slug": "qsgw" + } + ] + }, + "augmentations": { + "$ref": "gw/augmentations.json" + }, + "modifiers": { + "$ref": "gw/modifiers.json" + }, + "tags": { + "$ref": "gw/tags.json" + } + } +} diff --git a/schema/models_directory/pb/qm/abin/gw/augmentations.json b/schema/models_directory/pb/qm/abin/gw/augmentations.json new file mode 100644 index 000000000..de8fe605a --- /dev/null +++ b/schema/models_directory/pb/qm/abin/gw/augmentations.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$ref": "../../../../../model/augmentations.json" + } + ], + "description": "Augmentations specific to this model type only.", + "items": { + "anyOf": [ + { + "$ref": "definitions.json#/augmentations" + } + ] + } +} diff --git a/schema/models_directory/pb/qm/abin/gw/definitions.json b/schema/models_directory/pb/qm/abin/gw/definitions.json new file mode 100644 index 000000000..1ebeb28a5 --- /dev/null +++ b/schema/models_directory/pb/qm/abin/gw/definitions.json @@ -0,0 +1,11 @@ +{ + "tags": { + "enum": [ + "greens-function", + "many-body-perturbation-theory", + "refiner" + ] + }, + "augmentations": {}, + "modifiers": {} +} diff --git a/schema/models_directory/pb/qm/abin/gw/modifiers.json b/schema/models_directory/pb/qm/abin/gw/modifiers.json new file mode 100644 index 000000000..7c0949e00 --- /dev/null +++ b/schema/models_directory/pb/qm/abin/gw/modifiers.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$ref": "../../../../../model/modifiers.json" + } + ], + "description": "Modifiers specific to this model type only.", + "items": { + "anyOf": [ + { + "description": "Green's function modifiers", + "$ref": "definitions.json#/modifiers" + }, + { + "description": "ab initio modifiers", + "$ref": "../definitions.json#/modifiers" + } + ] + } +} diff --git a/schema/models_directory/pb/qm/abin/gw/tags.json b/schema/models_directory/pb/qm/abin/gw/tags.json new file mode 100644 index 000000000..69083f7eb --- /dev/null +++ b/schema/models_directory/pb/qm/abin/gw/tags.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ + { + "$ref": "../../../../../model/tags.json" + } + ], + "description": "Tags specific to this model type only.", + "items": { + "anyOf": [ + { + "$ref": "definitions.json#/tags" + }, + { + "description": "Universal definitions", + "$ref": "../../../../definitions.json#/tags" + } + ] + } +} diff --git a/schema/models_directory/pb/qm/dft.json b/schema/models_directory/pb/qm/dft.json index 897eb6938..b7132c988 100644 --- a/schema/models_directory/pb/qm/dft.json +++ b/schema/models_directory/pb/qm/dft.json @@ -1,5 +1,7 @@ { + "schemaId": "models-directory-pb-qm-dft", "$schema": "http://json-schema.org/draft-04/schema#", + "title": "density functional theory schema", "allOf": [ { "$ref": "../qm.json"