CryMainCalculation Input Schema

{
  "$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"
            ]
          }
        }
      }
    }
  }
}