diff --git a/example/methods_directory/physical/psp.json b/example/methods_directory/physical/psp.json index 8ca42ef8f..fc55a2358 100644 --- a/example/methods_directory/physical/psp.json +++ b/example/methods_directory/physical/psp.json @@ -10,46 +10,49 @@ }, "data": [ { - "element": "Ru", - "hash": "3349af97451e04faae570056fb6a110b", - "filename": "ru_pbe_dojo-oncv_0.4.upf", - "path": "/export/share/pseudo/ru/gga/pbe/dojo-oncv/0.4/nc/ru_pbe_dojo-oncv_0.4.upf", - "valenceConfiguration": [ - { - "orbitalName": "4S", - "orbitalIndex": 1, - "principalNumber": 4, - "angularMomentum": 0, - "occupation": 2.0 - }, - { - "orbitalName": "4P", - "orbitalIndex": 2, - "principalNumber": 4, - "angularMomentum": 1, - "occupation": 6.0 - }, - { - "orbitalName": "4D", - "orbitalIndex": 3, - "principalNumber": 4, - "angularMomentum": 2, - "occupation": 7.0 - }, - { - "orbitalName": "5S", - "orbitalIndex": 4, - "principalNumber": 5, - "angularMomentum": 0, - "occupation": 1.0 - } - ], - "apps": ["espresso"], - "exchangeCorrelation": { "functional": "pbe", "approximation": "gga" }, - "name": "pseudopotential", - "source": "dojo-oncv", - "type": "nc", - "version": "0.4" + "slug": "pseudopotential", + "data": { + "element": "Ru", + "hash": "3349af97451e04faae570056fb6a110b", + "filename": "ru_pbe_dojo-oncv_0.4.upf", + "path": "/export/share/pseudo/ru/gga/pbe/dojo-oncv/0.4/nc/ru_pbe_dojo-oncv_0.4.upf", + "valenceConfiguration": [ + { + "orbitalName": "4S", + "orbitalIndex": 1, + "principalNumber": 4, + "angularMomentum": 0, + "occupation": 2.0 + }, + { + "orbitalName": "4P", + "orbitalIndex": 2, + "principalNumber": 4, + "angularMomentum": 1, + "occupation": 6.0 + }, + { + "orbitalName": "4D", + "orbitalIndex": 3, + "principalNumber": 4, + "angularMomentum": 2, + "occupation": 7.0 + }, + { + "orbitalName": "5S", + "orbitalIndex": 4, + "principalNumber": 5, + "angularMomentum": 0, + "occupation": 1.0 + } + ], + "apps": ["espresso"], + "exchangeCorrelation": { "functional": "pbe", "approximation": "gga" }, + "name": "pseudopotential", + "source": "dojo-oncv", + "type": "nc", + "version": "0.4" + } } ] } diff --git a/example/methods_directory/physical/psp/file.json b/example/methods_directory/physical/psp/file.json new file mode 100644 index 000000000..4243aadc8 --- /dev/null +++ b/example/methods_directory/physical/psp/file.json @@ -0,0 +1,49 @@ +{ + "slug": "pseudopotential", + "source": { + "info": {}, + "type": "exabyte" + }, + "data": { + "element": "Ru", + "hash": "3349af97451e04faae570056fb6a110b", + "filename": "ru_pbe_dojo-oncv_0.4.upf", + "path": "/export/share/pseudo/ru/gga/pbe/dojo-oncv/0.4/nc/ru_pbe_dojo-oncv_0.4.upf", + "valenceConfiguration": [ + { + "orbitalName": "4S", + "orbitalIndex": 1, + "principalNumber": 4, + "angularMomentum": 0, + "occupation": 2.0 + }, + { + "orbitalName": "4P", + "orbitalIndex": 2, + "principalNumber": 4, + "angularMomentum": 1, + "occupation": 6.0 + }, + { + "orbitalName": "4D", + "orbitalIndex": 3, + "principalNumber": 4, + "angularMomentum": 2, + "occupation": 7.0 + }, + { + "orbitalName": "5S", + "orbitalIndex": 4, + "principalNumber": 5, + "angularMomentum": 0, + "occupation": 1.0 + } + ], + "apps": ["espresso"], + "exchangeCorrelation": { "functional": "pbe", "approximation": "gga" }, + "name": "pseudopotential", + "source": "dojo-oncv", + "type": "nc", + "version": "0.4" + } +} diff --git a/schema/methods_directory/physical/psp.json b/schema/methods_directory/physical/psp.json index e4b28b1d2..62cde0bad 100644 --- a/schema/methods_directory/physical/psp.json +++ b/schema/methods_directory/physical/psp.json @@ -12,10 +12,6 @@ "categories": { "$ref": "../../methods_category/physical/qm/wf/psp.json" }, - "slug": { - "type": "string", - "description": "pseudopotential" - }, "data": { "type": "array", "items": { diff --git a/schema/methods_directory/physical/psp/file.json b/schema/methods_directory/physical/psp/file.json index 736bf8e47..fc6d3948e 100644 --- a/schema/methods_directory/physical/psp/file.json +++ b/schema/methods_directory/physical/psp/file.json @@ -1,77 +1,28 @@ { "$id": "methods-directory/physical/psp/file", "$schema": "http://json-schema.org/draft-04/schema#", - "title": "pseudopotential file", + "title": "Pseudopotential file", "properties": { - "element": { - "type": "string", - "description": "chemical element" - }, - "hash": { - "type": "string", - "description": "MD5 hash of the pseudopotential file" + "slug": { + "enum": ["pseudopotential"] }, - "type": { - "type": "string", - "description": "type of pseudization", - "$ref": "../../../methods_category/physical/qm/wf/enum_options.json#/pseudoSubtypes" + "data": { + "items": { + "description": "Specific data based on pseudopotential file.", + "$ref": "file_data_item.json" + } }, "source": { - "type": "string", - "description": "explains where this came from" - }, - "version": { - "type": "string", - "description": "explains the version of where this came from" - }, - "exchangeCorrelation": { "type": "object", + "description": "TODO: remove in the future", "properties": { - "approximation": { - "description": "DFT approximation", - "type": "string" + "info": { + "type": "object" }, - "functional": { - "description": "Exchange correlation functional", + "type": { "type": "string" - }, - "path": { - "description": "DFT model path, e.g. '/pb/qm/dft/ksdft/gga?functional=pbe'", - "$ref": "../../../core/reusable/category_path.json" } } - }, - "valenceConfiguration": { - "type": "array", - "description": "contains pseudo orbital information, including orbital names and occupations", - "items": { - "$ref": "../../../core/reusable/atomic_orbital.json" - } - }, - "path": { - "type": "string", - "description": "location of the pseudopotential file on filesystem" - }, - "apps": { - "type": "array", - "description": "simulation engines that can use this pseudopotential" - }, - "filename": { - "type": "string", - "description": "filename of pseudopotential file on filesystem" - }, - "name": { - "type": "string", - "description": "name of the data category", - "enum": ["pseudopotential"] } - }, - "required": [ - "element", - "type", - "exchangeCorrelation", - "source", - "path", - "apps" - ] + } } diff --git a/schema/methods_directory/physical/psp/file_data_item.json b/schema/methods_directory/physical/psp/file_data_item.json new file mode 100644 index 000000000..1f11b941a --- /dev/null +++ b/schema/methods_directory/physical/psp/file_data_item.json @@ -0,0 +1,77 @@ +{ + "$id": "methods-directory/physical/psp/file-data-item", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "File data item", + "properties": { + "element": { + "type": "string", + "description": "chemical element" + }, + "hash": { + "type": "string", + "description": "MD5 hash of the pseudopotential file" + }, + "type": { + "type": "string", + "description": "type of pseudization", + "$ref": "../../../methods_category/physical/qm/wf/enum_options.json#/pseudoSubtypes" + }, + "source": { + "type": "string", + "description": "explains where this came from" + }, + "version": { + "type": "string", + "description": "explains the version of where this came from" + }, + "exchangeCorrelation": { + "type": "object", + "properties": { + "approximation": { + "description": "DFT approximation", + "type": "string" + }, + "functional": { + "description": "Exchange correlation functional", + "type": "string" + }, + "path": { + "description": "DFT model path, e.g. '/pb/qm/dft/ksdft/gga?functional=pbe'", + "$ref": "../../../core/reusable/category_path.json" + } + } + }, + "valenceConfiguration": { + "type": "array", + "description": "contains pseudo orbital information, including orbital names and occupations", + "items": { + "$ref": "../../../core/reusable/atomic_orbital.json" + } + }, + "path": { + "type": "string", + "description": "location of the pseudopotential file on filesystem" + }, + "apps": { + "type": "array", + "description": "simulation engines that can use this pseudopotential" + }, + "filename": { + "type": "string", + "description": "filename of pseudopotential file on filesystem" + }, + "name": { + "type": "string", + "description": "name of the data category", + "enum": ["pseudopotential"] + } + }, + "required": [ + "element", + "type", + "exchangeCorrelation", + "source", + "path", + "apps" + ] +}