TorsionDriveSpecification

pydantic model qcelemental.models.v2.TorsionDriveSpecification[source]

Specification for how to run a torsion drive scan.

Show JSON schema
{
   "title": "TorsionDriveSpecification",
   "description": "Specification for how to run a torsion drive scan.",
   "type": "object",
   "properties": {
      "schema_name": {
         "const": "qcschema_torsion_drive_specification",
         "default": "qcschema_torsion_drive_specification",
         "title": "Schema Name",
         "type": "string"
      },
      "program": {
         "default": "",
         "description": "Torsion Drive CMS code / QCEngine procedure with which to run the torsion scan.",
         "title": "Program",
         "type": "string"
      },
      "keywords": {
         "$ref": "#/$defs/TorsionDriveKeywords",
         "description": "The torsion drive specific keywords to be used."
      },
      "protocols": {
         "$ref": "#/$defs/TorsionDriveProtocols",
         "default": {},
         "description": "\n    Protocols regarding the manipulation of a Torsion Drive subcalculation history.\n    "
      },
      "extras": {
         "additionalProperties": true,
         "default": {},
         "description": "Additional information to bundle with the computation. Use for schema development and scratch space.",
         "title": "Extras",
         "type": "object"
      },
      "specification": {
         "$ref": "#/$defs/OptimizationSpecification",
         "description": "The specification for how to run optimizations for the torsion scan (within this is spec for gradients for the optimization."
      }
   },
   "$defs": {
      "AtomicProtocols": {
         "additionalProperties": false,
         "description": "Protocols regarding the manipulation of computational result data.",
         "properties": {
            "schema_name": {
               "const": "qcschema_atomic_protocols",
               "default": "qcschema_atomic_protocols",
               "title": "Schema Name",
               "type": "string"
            },
            "wavefunction": {
               "$ref": "#/$defs/WavefunctionProtocolEnum",
               "default": "none"
            },
            "stdout": {
               "default": true,
               "description": "Primary output file to keep from the computation",
               "title": "Stdout",
               "type": "boolean"
            },
            "error_correction": {
               "$ref": "#/$defs/ErrorCorrectionProtocol",
               "description": "Policies for error correction"
            },
            "native_files": {
               "$ref": "#/$defs/NativeFilesProtocolEnum",
               "default": "none",
               "description": "Policies for keeping processed files from the computation"
            }
         },
         "title": "AtomicProtocols",
         "type": "object"
      },
      "AtomicSpecification": {
         "additionalProperties": false,
         "description": "Specification for a single point QC calculation",
         "properties": {
            "schema_name": {
               "const": "qcschema_atomic_specification",
               "default": "qcschema_atomic_specification",
               "title": "Schema Name",
               "type": "string"
            },
            "keywords": {
               "additionalProperties": true,
               "default": {},
               "description": "The program specific keywords to be used.",
               "title": "Keywords",
               "type": "object"
            },
            "program": {
               "default": "",
               "description": "The program for which the Specification is intended.",
               "title": "Program",
               "type": "string"
            },
            "driver": {
               "$ref": "#/$defs/DriverEnum"
            },
            "model": {
               "$ref": "#/$defs/Model"
            },
            "protocols": {
               "$ref": "#/$defs/AtomicProtocols",
               "default": {}
            },
            "extras": {
               "additionalProperties": true,
               "default": {},
               "description": "Additional information to bundle with the computation. Use for schema development and scratch space.",
               "title": "Extras",
               "type": "object"
            }
         },
         "required": [
            "driver",
            "model"
         ],
         "title": "AtomicSpecification",
         "type": "object"
      },
      "BasisCenter": {
         "additionalProperties": false,
         "description": "Data for a single atom/center in a basis set.",
         "properties": {
            "electron_shells": {
               "description": "Electronic shells for this center.",
               "items": {
                  "$ref": "#/$defs/ElectronShell"
               },
               "minItems": 1,
               "title": "Electron Shells",
               "type": "array",
               "uniqueItems": true
            },
            "ecp_electrons": {
               "default": 0,
               "description": "Number of electrons replaced by ECP, MCP, or other field potentials.",
               "title": "Ecp Electrons",
               "type": "integer"
            },
            "ecp_potentials": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/ECPPotential"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "ECPs, MCPs, or other field potentials for this center.",
               "title": "Ecp Potentials",
               "uniqueItems": true
            }
         },
         "required": [
            "electron_shells"
         ],
         "title": "BasisCenter",
         "type": "object"
      },
      "BasisSet": {
         "$schema": "http://json-schema.org/draft-04/schema#",
         "additionalProperties": false,
         "description": "A quantum chemistry basis description.",
         "properties": {
            "schema_name": {
               "const": "qcschema_basis_set",
               "default": "qcschema_basis_set",
               "description": "The QCSchema specification to which this model conforms.",
               "title": "Schema Name",
               "type": "string"
            },
            "schema_version": {
               "const": 2,
               "default": 2,
               "description": "The version number of :attr:`~qcelemental.models.BasisSet.schema_name` to which this model conforms.",
               "title": "Schema Version",
               "type": "integer"
            },
            "name": {
               "description": "The standard basis name if available (e.g., 'cc-pVDZ').",
               "title": "Name",
               "type": "string"
            },
            "description": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Brief description of the basis set.",
               "title": "Description"
            },
            "center_data": {
               "additionalProperties": {
                  "$ref": "#/$defs/BasisCenter"
               },
               "description": "Shared basis data for all atoms/centers in the parent molecule",
               "title": "Center Data",
               "type": "object"
            },
            "atom_map": {
               "description": "Mapping of all atoms/centers in the parent molecule to centers in ``center_data``.",
               "items": {
                  "type": "string"
               },
               "title": "Atom Map",
               "type": "array"
            },
            "nbf": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The number of basis functions. Use for convenience or as checksum",
               "title": "Nbf"
            }
         },
         "required": [
            "name",
            "center_data",
            "atom_map"
         ],
         "title": "BasisSet",
         "type": "object"
      },
      "DriverEnum": {
         "description": "Allowed computation driver values.",
         "enum": [
            "energy",
            "gradient",
            "hessian",
            "properties"
         ],
         "title": "DriverEnum",
         "type": "string"
      },
      "ECPPotential": {
         "additionalProperties": false,
         "description": "Information for a single ECP potential.",
         "properties": {
            "ecp_type": {
               "$ref": "#/$defs/ECPType"
            },
            "angular_momentum": {
               "description": "Angular momentum for the potential as an array of integers.",
               "items": {
                  "minimum": 0,
                  "type": "integer"
               },
               "minItems": 1,
               "title": "Angular Momentum",
               "type": "array",
               "uniqueItems": true
            },
            "r_exponents": {
               "description": "Exponents of the 'r' term.",
               "items": {
                  "type": "integer"
               },
               "minItems": 1,
               "title": "R Exponents",
               "type": "array"
            },
            "gaussian_exponents": {
               "description": "Exponents of the 'gaussian' term.",
               "items": {
                  "anyOf": [
                     {
                        "type": "number"
                     },
                     {
                        "type": "string"
                     }
                  ]
               },
               "minItems": 1,
               "title": "Gaussian Exponents",
               "type": "array"
            },
            "coefficients": {
               "description": "General contraction coefficients for the potential; individual list components will be the individual segment contraction coefficients.",
               "items": {
                  "items": {
                     "anyOf": [
                        {
                           "type": "number"
                        },
                        {
                           "type": "string"
                        }
                     ]
                  },
                  "type": "array"
               },
               "minItems": 1,
               "title": "Coefficients",
               "type": "array"
            }
         },
         "required": [
            "ecp_type",
            "angular_momentum",
            "r_exponents",
            "gaussian_exponents",
            "coefficients"
         ],
         "title": "ECPPotential",
         "type": "object"
      },
      "ECPType": {
         "description": "The type of the ECP potential.",
         "enum": [
            "scalar",
            "spinorbit"
         ],
         "title": "ECPType",
         "type": "string"
      },
      "ElectronShell": {
         "additionalProperties": false,
         "description": "Information for a single electronic shell.",
         "properties": {
            "angular_momentum": {
               "description": "Angular momentum for the shell as an array of integers.",
               "items": {
                  "minimum": 0,
                  "type": "integer"
               },
               "minItems": 1,
               "title": "Angular Momentum",
               "type": "array",
               "uniqueItems": true
            },
            "harmonic_type": {
               "$ref": "#/$defs/HarmonicType"
            },
            "exponents": {
               "description": "Exponents for the contracted shell.",
               "items": {
                  "anyOf": [
                     {
                        "type": "number"
                     },
                     {
                        "type": "string"
                     }
                  ]
               },
               "minItems": 1,
               "title": "Exponents",
               "type": "array"
            },
            "coefficients": {
               "description": "General contraction coefficients for the shell; individual list components will be the individual segment contraction coefficients.",
               "items": {
                  "items": {
                     "anyOf": [
                        {
                           "type": "number"
                        },
                        {
                           "type": "string"
                        }
                     ]
                  },
                  "type": "array"
               },
               "minItems": 1,
               "title": "Coefficients",
               "type": "array"
            }
         },
         "required": [
            "angular_momentum",
            "harmonic_type",
            "exponents",
            "coefficients"
         ],
         "title": "ElectronShell",
         "type": "object"
      },
      "ErrorCorrectionProtocol": {
         "additionalProperties": false,
         "description": "Configuration for how QCEngine handles error correction\n\nWARNING: These protocols are currently experimental and only supported by NWChem tasks",
         "properties": {
            "default_policy": {
               "default": true,
               "description": "Whether to allow error corrections to be used if not directly specified in `policies`",
               "title": "Default Policy",
               "type": "boolean"
            },
            "policies": {
               "anyOf": [
                  {
                     "additionalProperties": {
                        "type": "boolean"
                     },
                     "type": "object"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Settings that define whether specific error corrections are allowed. Keys are the name of a known error and values are whether it is allowed to be used.",
               "title": "Policies"
            }
         },
         "title": "ErrorCorrectionProtocol",
         "type": "object"
      },
      "HarmonicType": {
         "description": "The angular momentum representation of a shell.",
         "enum": [
            "spherical",
            "cartesian"
         ],
         "title": "HarmonicType",
         "type": "string"
      },
      "Model": {
         "additionalProperties": true,
         "description": "The computational molecular sciences model to run.",
         "properties": {
            "method": {
               "description": "The quantum chemistry method to evaluate (e.g., B3LYP, PBE, ...). For MM, name of the force field.",
               "title": "Method",
               "type": "string"
            },
            "basis": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "$ref": "#/$defs/BasisSet"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The quantum chemistry basis set to evaluate (e.g., 6-31g, cc-pVDZ, ...). Can be ``None`` for methods without basis sets. For molecular mechanics, name of the atom-typer.",
               "title": "Basis"
            }
         },
         "required": [
            "method"
         ],
         "title": "Model",
         "type": "object"
      },
      "NativeFilesProtocolEnum": {
         "description": "CMS program files to keep from a computation.",
         "enum": [
            "all",
            "input",
            "none"
         ],
         "title": "NativeFilesProtocolEnum",
         "type": "string"
      },
      "OptimizationProtocols": {
         "additionalProperties": false,
         "description": "Protocols regarding the manipulation of a Optimization output data.",
         "properties": {
            "schema_name": {
               "const": "qcschema_optimization_protocols",
               "default": "qcschema_optimization_protocols",
               "title": "Schema Name",
               "type": "string"
            },
            "trajectory_results": {
               "$ref": "#/$defs/TrajectoryProtocolEnum",
               "default": "none",
               "description": "\n    Which gradient evaluations to keep in an optimization trajectory.\n    "
            }
         },
         "title": "OptimizationProtocols",
         "type": "object"
      },
      "OptimizationSpecification": {
         "additionalProperties": false,
         "description": "Specification for how to run a geometry optimization.",
         "properties": {
            "schema_name": {
               "const": "qcschema_optimization_specification",
               "default": "qcschema_optimization_specification",
               "title": "Schema Name",
               "type": "string"
            },
            "program": {
               "default": "",
               "description": "Optimizer CMS code / QCEngine procedure to run the geometry optimization with.",
               "title": "Program",
               "type": "string"
            },
            "keywords": {
               "additionalProperties": true,
               "default": {},
               "description": "The optimization specific keywords to be used.",
               "title": "Keywords",
               "type": "object"
            },
            "protocols": {
               "$ref": "#/$defs/OptimizationProtocols",
               "default": {},
               "description": "\n    Protocols regarding the manipulation of a Optimization output data.\n    "
            },
            "extras": {
               "additionalProperties": true,
               "default": {},
               "description": "Additional information to bundle with the computation. Use for schema development and scratch space.",
               "title": "Extras",
               "type": "object"
            },
            "specification": {
               "$ref": "#/$defs/AtomicSpecification",
               "description": "A directive for how to compute a gradient for the optimization. Either an ordinary atomic/single-point or a many-body spec."
            }
         },
         "required": [
            "specification"
         ],
         "title": "OptimizationSpecification",
         "type": "object"
      },
      "ScanResultsProtocolEnum": {
         "description": "Which gradient evaluations to keep in an optimization trajectory.",
         "enum": [
            "all",
            "lowest",
            "none"
         ],
         "title": "ScanResultsProtocolEnum",
         "type": "string"
      },
      "TorsionDriveKeywords": {
         "additionalProperties": false,
         "description": "TorsionDriveRecord options\n\nNotes\n-----\n* This class is still provisional and may be subject to removal and re-design.",
         "properties": {
            "schema_name": {
               "const": "qcschema_torsion_drive_keywords",
               "default": "qcschema_torsion_drive_keywords",
               "description": "The QCSchema specification to which this model conforms.",
               "title": "Schema Name",
               "type": "string"
            },
            "dihedrals": {
               "description": "The list of dihedrals to select for the TorsionDrive operation. Each entry is a tuple of integers of for particle indices.",
               "items": {
                  "maxItems": 4,
                  "minItems": 4,
                  "prefixItems": [
                     {
                        "type": "integer"
                     },
                     {
                        "type": "integer"
                     },
                     {
                        "type": "integer"
                     },
                     {
                        "type": "integer"
                     }
                  ],
                  "type": "array"
               },
               "title": "Dihedrals",
               "type": "array"
            },
            "grid_spacing": {
               "description": "List of grid spacing for dihedral scan in degrees. Multiple values will be mapped to each dihedral angle.",
               "items": {
                  "type": "integer"
               },
               "title": "Grid Spacing",
               "type": "array"
            },
            "dihedral_ranges": {
               "anyOf": [
                  {
                     "items": {
                        "maxItems": 2,
                        "minItems": 2,
                        "prefixItems": [
                           {
                              "type": "integer"
                           },
                           {
                              "type": "integer"
                           }
                        ],
                        "type": "array"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "A list of dihedral range limits as a pair (lower, upper). Each range corresponds to the dihedrals in input.",
               "title": "Dihedral Ranges"
            },
            "energy_decrease_thresh": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The threshold of the smallest energy decrease amount to trigger activating optimizations from grid point.",
               "title": "Energy Decrease Thresh"
            },
            "energy_upper_limit": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The threshold if the energy of a grid point that is higher than the current global minimum, to start new optimizations, in unit of a.u. I.e. if energy_upper_limit = 0.05, current global minimum energy is -9.9 , then a new task starting with energy -9.8 will be skipped.",
               "title": "Energy Upper Limit"
            }
         },
         "required": [
            "dihedrals",
            "grid_spacing"
         ],
         "title": "TorsionDriveKeywords",
         "type": "object"
      },
      "TorsionDriveProtocols": {
         "additionalProperties": false,
         "description": "Protocols regarding the manipulation of a Torsion Drive subcalculation history.",
         "properties": {
            "schema_name": {
               "const": "qcschema_torsion_drive_protocols",
               "default": "qcschema_torsion_drive_protocols",
               "title": "Schema Name",
               "type": "string"
            },
            "scan_results": {
               "$ref": "#/$defs/ScanResultsProtocolEnum",
               "default": "none",
               "description": "\n    Which gradient evaluations to keep in an optimization trajectory.\n    "
            }
         },
         "title": "TorsionDriveProtocols",
         "type": "object"
      },
      "TrajectoryProtocolEnum": {
         "description": "Which gradient evaluations to keep in an optimization trajectory.",
         "enum": [
            "all",
            "initial_and_final",
            "final",
            "none"
         ],
         "title": "TrajectoryProtocolEnum",
         "type": "string"
      },
      "WavefunctionProtocolEnum": {
         "description": "Wavefunction to keep from a computation.",
         "enum": [
            "all",
            "orbitals_and_eigenvalues",
            "occupations_and_eigenvalues",
            "return_results",
            "none"
         ],
         "title": "WavefunctionProtocolEnum",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "keywords",
      "specification"
   ]
}

Fields:
Validators:
field extras: Dict[str, Any] = {}

Additional information to bundle with the computation. Use for schema development and scratch space.

field keywords: TorsionDriveKeywords [Required]

The torsion drive specific keywords to be used.

field program: str = ''

Torsion Drive CMS code / QCEngine procedure with which to run the torsion scan.

Validated by:
  • _check_procedure

field protocols: TorsionDriveProtocols = TorsionDriveProtocols(schema_name='qcschema_torsion_drive_protocols', scan_results=<ScanResultsProtocolEnum.none: 'none'>)

Protocols regarding the manipulation of a Torsion Drive subcalculation history.

field schema_name: Literal['qcschema_torsion_drive_specification'] = 'qcschema_torsion_drive_specification'
field specification: OptimizationSpecification [Required]

The specification for how to run optimizations for the torsion scan (within this is spec for gradients for the optimization.