OptimizationSpecification
- pydantic model qcelemental.models.v2.OptimizationSpecification[source]
Specification for how to run a geometry optimization.
Show JSON schema
{ "title": "OptimizationSpecification", "description": "Specification for how to run a geometry optimization.", "type": "object", "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." } }, "$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" }, "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": [ "specification" ] }
- Fields:
- Validators:
_check_procedure»program
- field extras: Dict[str, Any] = {}
Additional information to bundle with the computation. Use for schema development and scratch space.
- field program: str = ''
Optimizer CMS code / QCEngine procedure to run the geometry optimization with.
- Validated by:
_check_procedure
- field protocols: OptimizationProtocols = OptimizationProtocols(schema_name='qcschema_optimization_protocols', trajectory_results=<TrajectoryProtocolEnum.none: 'none'>)
Protocols regarding the manipulation of a Optimization output data.
- field schema_name: Literal['qcschema_optimization_specification'] = 'qcschema_optimization_specification'
- field specification: Annotated[AtomicSpecification, FieldInfo(annotation=NoneType, required=True, description='A directive for how to compute a gradient for the optimization. Either an ordinary atomic/single-point or a many-body spec.')] [Required]
A directive for how to compute a gradient for the optimization. Either an ordinary atomic/single-point or a many-body spec.
- convert_v(target_version, /)[source]
Convert to instance of particular QCSchema version.
- Parameters:
target_version (int)
- Return type:
qcelemental.models.v1.OptimizationSpecification | qcelemental.models.v2.OptimizationSpecification