{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CRYSTAL17 Input",
"description": "Allowed Inputs For CRYSTAL17 .d12 file",
"type": "object",
"required": [
"scf"
],
"additionalProperties": false,
"properties": {
"title": {
"description": "the title of the run",
"type": "string"
},
"geometry": {
"title": "Block 1",
"description": "Geometry input, manipulation and optimisation control",
"type": "object",
"additionalProperties": false,
"properties": {
"info_print": {
"description": "keywords for printing",
"type": "array",
"items": {
"type": "string",
"uniqueItems": true,
"enum": [
"ATOMSYMM",
"MAKESAED",
"PRSYMDIR",
"SYMMDIR",
"SYMMOPS",
"PRINTCHG"
]
}
},
"info_external": {
"description": "keywords for external output",
"type": "array",
"items": {
"type": "string",
"uniqueItems": true,
"enum": [
"COORPRT",
"EXTPRT",
"FINDSYM",
"STRUCPRT",
"SYMMOPS"
]
}
},
"ROTCRY": {
"description": "Rotation of the crystal with respect to the reference system cell. Can be null (AUTO), array(3) (ANGROT), or array((3,3)) (MATROT)",
"type": [
"null",
"array"
],
"minItems": 3,
"maxItems": 3,
"items": {
"type": [
"number",
"array"
],
"minItems": 3,
"maxItems": 3,
"items": {
"type": "number"
}
}
},
"optimise": {
"description": "optimisation block inputs",
"type": [
"object",
"boolean"
],
"additionalProperties": false,
"properties": {
"type": {
"description": "the optimisation type",
"type": "string",
"enum": [
"FULLOPTG",
"CELLONLY",
"INTREDUN",
"ITATOCEL",
"CVOLOPT"
]
},
"restart": {
"description": "whether to insert the RESTART command (requires an OPTINFO.DAT file to be present)",
"type": "boolean",
"default": false
},
"hessian": {
"description": "the initial hessian matrix to use",
"type": "string",
"enum": [
"HESSIDEN",
"HESSMOD1",
"HESSMOD2",
"HESSNUM",
"HESSOPT"
]
},
"gradient": {
"description": "the minimisation gradient to use",
"type": "string",
"enum": [
"NUMGRATO",
"NUMGRCEL",
"NUMGRALL"
]
},
"info_print": {
"description": "keywords for printing",
"type": "array",
"items": {
"type": "string",
"uniqueItems": true,
"enum": [
"PRINTFORCES",
"PRINTHESS",
"PRINTOPT",
"PRINT"
]
}
},
"convergence": {
"description": "optimisation convergence criteria",
"type": "object",
"additionalProperties": false,
"properties": {
"TOLDEG": {
"description": "RMS of the gradient",
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"TOLDEX": {
"description": "RMS of the displacement",
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"TOLDEE": {
"description": "total energy difference between two steps",
"type": "integer",
"minimum": 1
},
"MAXCYCLE": {
"description": "max number of optimization steps",
"type": "integer",
"minimum": 1
},
"FINALRUN": {
"description": "run final Wf single point scf with optimized geometry",
"type": "integer",
"minimum": 1,
"maximum": 4
}
}
}
}
}
}
},
"basis_set": {
"title": "Block 2",
"description": "Basis sets input and control",
"type": "object",
"additionalProperties": false,
"properties": {
"CHARGED": {
"description": "forces the overall system to be neutral even when the number of electrons in the reference cell is different from the sum of nuclear charges, by adding a uniform background charge density to neutralize the charge in the reference cell.",
"type": "boolean"
}
}
},
"scf": {
"title": "Block 3",
"description": "Single particle Hamiltonian and SCF control",
"type": "object",
"required": [
"k_points"
],
"additionalProperties": false,
"dependencies": {
"single": {
"not": {
"required": [
"dft"
]
}
},
"dft": {
"not": {
"required": [
"single"
]
}
}
},
"properties": {
"k_points": {
"description": "The IS and ISP value to use for SHRINK, IS can be a single value or a value for each direction",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"type": [
"integer",
"array"
],
"minimum": 1,
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer",
"minimum": 1
}
},
{
"type": "integer",
"minimum": 1
}
]
},
"single": {
"type": "string",
"enum": [
"RHF",
"UHF",
"MP2"
]
},
"dft": {
"description": "the exchange-correlation functional to use",
"type": "object",
"required": [
"xc"
],
"additionalProperties": false,
"properties": {
"SPIN": {
"description": "whether to use spin polarisation",
"type": "boolean"
},
"xc": {
"description": "the exchange-correlation functional",
"oneOf": [
{
"type": "array",
"additionalItems": false,
"items": [
{
"type": "string",
"enum": [
"LDA",
"VBH",
"BECKE",
"PBE",
"PBESOL",
"PWGGA",
"mPW91",
"SOGGA",
"WCGGA"
]
},
{
"type": "string",
"enum": [
"PZ",
"VBH",
"VWN",
"LYP",
"PBE",
"PBESOL",
"PWGGA",
"PWLSD",
"WL"
]
}
]
},
{
"type": "string",
"enum": [
"SVWN",
"BLYP",
"PBEXC",
"PBESOLXC",
"SOGGAXC",
"B3PW",
"B3LYP",
"PBE0",
"PBESOL0",
"B1WC",
"WC1LYP",
"B97H",
"PBE0-13",
"HSE06",
"HSESOL",
"SC-BLYP",
"HISS",
"RSHXLDA",
"wB97",
"wB97X",
"LC-wPBE",
"LC-wPBESOL",
"LC-wBLYP",
"LC-BLYP",
"CAM-B3LYP",
"M06L",
"B2PLYP",
"B2GPPLYP",
"mPW2PLYP",
"DHYBRID"
]
},
{
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"maxProperties": 1,
"properties": {
"LSRSH-PBE": {
"type": "array",
"additionalItems": false,
"minItems": 3,
"items": [
{
"description": "value of the length scale separation, w",
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
{
"description": "value of the coefficient for the SR-HF exchange term",
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
{
"description": "value of the coefficient for the LR-HF exchange term",
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
]
}
}
}
]
},
"grid": {
"description": "the (pruned) integration grid",
"type": "string",
"enum": [
"OLDGRID",
"LGRID",
"XLGRID",
"XXLGRID"
]
},
"grid_weights": {
"description": "the grid point weights of the integration grid",
"type": "string",
"enum": [
"BECKE",
"SAVIN"
]
},
"numerical": {
"definition": "Numerical accuracy and computational parameters control",
"type": "object",
"additionalProperties": false,
"properties": {
"TOLLDENS": {
"description": "density tolerance",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"TOLLGRID": {
"description": "grid weight tolerance",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"LIMBEK": {
"description": "size of local arrays for integration weights",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
}
}
},
"d3": {
"description": "C6 based London dispersion correction",
"type": "object",
"additionalProperties": false,
"properties": {
"VERSION": {
"type": "integer",
"minimum": 2,
"maximum": 4,
"default": 4
},
"ABC": {
"type": "boolean",
"default": false
},
"S6": {
"type": "number"
},
"S8": {
"type": "number"
},
"A1": {
"type": "number"
},
"A2": {
"type": "number"
},
"RS6": {
"type": "number"
},
"RS8": {
"type": "number"
},
"RADIUS": {
"type": "number"
},
"CNRADIUS": {
"type": "number"
}
}
}
}
},
"GUESSP": {
"description": "whether to insert the GUESSP command (requires a fort.20 file to be present)",
"type": "boolean",
"default": false
},
"numerical": {
"definition": "Numerical accuracy and computational parameters control",
"type": "object",
"additionalProperties": false,
"properties": {
"BIPOLAR": {
"description": "Bipolar expansion approximation control",
"type": "array",
"additionalItems": false,
"minItems": 2,
"items": [
{
"description": "overlap threshold for Coulomb",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
{
"description": "overlap threshold for Exchange",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
}
]
},
"BIPOSIZE": {
"description": "Size of buffer for Coulomb integrals bipolar expansion",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"EXCHSIZE": {
"description": "Size of buffer for Exchange integrals bipolar expansion",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"ILASIZE": {
"description": "Maximum size of array ILA for 2-electron integral calculation",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"INTGPACK": {
"description": "Choice of integrals package",
"type": "integer",
"minimum": 0,
"maximum": 3
},
"MADELIND": {
"description": "reciprocal lattice vector indices for Madelung sums",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"POLEORDR": {
"description": "Maximum order of multipolar expansion",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"TOLPSEUD": {
"description": "Pseudopotential tolerance",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"TOLINTEG": {
"description": "Bipolar expansion approximation control",
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
}
},
"EXCHPERM": {
"description": "use permutation of centers in exchange integrals",
"type": "boolean"
},
"NOBIPCOU": {
"description": "Coulomb bielectronic integrals computed exactly",
"type": "boolean"
},
"NOBIPEXCH": {
"description": "Exchange bielectronic integrals computed exactly",
"type": "boolean"
},
"NOBIPOLA": {
"description": "All bielectronic integrals computed exactly",
"type": "boolean"
},
"FMIXING": {
"description": "Fock/KS matrix (cycle i and i-1) mixing",
"type": "integer",
"minimum": 0
},
"MAXCYCLE": {
"description": "maximum number of cycles",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"TOLDEE": {
"description": "convergence on total energy",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"LEVSHIFT": {
"description": "Eigenvalue level shifting",
"type": "array",
"additionalItems": false,
"minItems": 2,
"items": [
{
"description": "The level shifter is set to ISHIFT*0.1 hartree",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
{
"description": "locking on/off",
"type": "integer",
"minimum": 0,
"maximum": 1
}
]
},
"SMEAR": {
"description": "temperature smearing of Fermi surface",
"type": "number",
"minimum": 0
}
}
},
"fock_mixing": {
"description": "convergence acceleration tool",
"oneOf": [
{
"type": "string",
"enum": [
"DIIS",
"DIISALLK",
"SLOSHING",
"NODIIS",
"ANDERSON"
]
},
{
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"maxProperties": 1,
"properties": {
"BROYDEN": {
"type": "array",
"minItems": 3,
"maxitems": 3,
"items": [
{
"description": "W0 parameter in Anderson’s paper",
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
{
"description": "percent of Fock/KS matrices mixing when Broyden method is switched on",
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
{
"description": "SCf iteration after which Broyden method is active",
"type": "integer",
"minimum": 2
}
]
}
}
}
]
},
"spinlock": {
"description": "the difference between alpha and beta electrons is fixed for initial scf cycles",
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"maxProperties": 1,
"properties": {
"SPINLOCK": {
"description": "shift the eigenvalues in order to lock the system in a specific spin state [nalpha-nbeta, ncycles]",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer"
}
},
"SPINLOC2": {
"description": "fills separately the alpha and beta bands with the appropriate # of electrons [nalpha-nbeta, ncycles]",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"type": "number"
},
{
"type": "integer"
}
]
},
"BETALOCK": {
"description": "lock the number of beta electrons [nbeta, ncycles]",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer"
}
}
}
},
"post_scf": {
"description": "keywords for post SCF calculations",
"type": "array",
"items": {
"type": "string",
"uniqueItems": true,
"enum": [
"FULLTIME",
"POSTSCF",
"EXCHGENE",
"GRADCAL",
"PPAN"
]
}
}
}
}
}
}