Common

Common Models used throughout the QCArchive ecosystem.

BasisSet

pydantic model qcelemental.models.BasisSet[source]

A quantum chemistry basis description.

Show JSON schema
{
   "title": "BasisSet",
   "description": "A quantum chemistry basis description.",
   "type": "object",
   "properties": {
      "schema_name": {
         "title": "Schema Name",
         "description": "The QCSchema specification to which this model conforms. Explicitly fixed as qcschema_basis.",
         "default": "qcschema_basis",
         "pattern": "^(qcschema_basis)$",
         "type": "string"
      },
      "schema_version": {
         "title": "Schema Version",
         "description": "The version number of :attr:`~qcelemental.models.BasisSet.schema_name` to which this model conforms.",
         "default": 1,
         "type": "integer"
      },
      "name": {
         "title": "Name",
         "description": "The standard basis name if available (e.g., 'cc-pVDZ').",
         "type": "string"
      },
      "description": {
         "title": "Description",
         "description": "Brief description of the basis set.",
         "type": "string"
      },
      "center_data": {
         "title": "Center Data",
         "description": "Shared basis data for all atoms/centers in the parent molecule",
         "type": "object",
         "additionalProperties": {
            "$ref": "#/definitions/BasisCenter"
         }
      },
      "atom_map": {
         "title": "Atom Map",
         "description": "Mapping of all atoms/centers in the parent molecule to centers in ``center_data``.",
         "type": "array",
         "items": {
            "type": "string"
         }
      },
      "nbf": {
         "title": "Nbf",
         "description": "The number of basis functions. Use for convenience or as checksum",
         "type": "integer"
      }
   },
   "required": [
      "name",
      "center_data",
      "atom_map"
   ],
   "additionalProperties": false,
   "$schema": "http://json-schema.org/draft-04/schema#",
   "definitions": {
      "HarmonicType": {
         "title": "HarmonicType",
         "description": "The angular momentum representation of a shell.",
         "enum": [
            "spherical",
            "cartesian"
         ],
         "type": "string"
      },
      "ElectronShell": {
         "title": "ElectronShell",
         "description": "Information for a single electronic shell.",
         "type": "object",
         "properties": {
            "angular_momentum": {
               "title": "Angular Momentum",
               "description": "Angular momentum for the shell as an array of integers.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "integer",
                  "minimum": 0
               },
               "uniqueItems": true
            },
            "harmonic_type": {
               "description": "The angular momentum representation of a shell.",
               "allOf": [
                  {
                     "$ref": "#/definitions/HarmonicType"
                  }
               ]
            },
            "exponents": {
               "title": "Exponents",
               "description": "Exponents for the contracted shell.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "type": "number"
                     },
                     {
                        "type": "string"
                     }
                  ]
               }
            },
            "coefficients": {
               "title": "Coefficients",
               "description": "General contraction coefficients for the shell; individual list components will be the individual segment contraction coefficients.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "array",
                  "items": {
                     "anyOf": [
                        {
                           "type": "number"
                        },
                        {
                           "type": "string"
                        }
                     ]
                  },
                  "minItems": 1
               }
            }
         },
         "required": [
            "angular_momentum",
            "harmonic_type",
            "exponents",
            "coefficients"
         ],
         "additionalProperties": false
      },
      "ECPType": {
         "title": "ECPType",
         "description": "The type of the ECP potential.",
         "enum": [
            "scalar",
            "spinorbit"
         ],
         "type": "string"
      },
      "ECPPotential": {
         "title": "ECPPotential",
         "description": "Information for a single ECP potential.",
         "type": "object",
         "properties": {
            "ecp_type": {
               "description": "The type of the ECP potential.",
               "allOf": [
                  {
                     "$ref": "#/definitions/ECPType"
                  }
               ]
            },
            "angular_momentum": {
               "title": "Angular Momentum",
               "description": "Angular momentum for the potential as an array of integers.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "integer",
                  "minimum": 0
               },
               "uniqueItems": true
            },
            "r_exponents": {
               "title": "R Exponents",
               "description": "Exponents of the 'r' term.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "integer"
               }
            },
            "gaussian_exponents": {
               "title": "Gaussian Exponents",
               "description": "Exponents of the 'gaussian' term.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "type": "number"
                     },
                     {
                        "type": "string"
                     }
                  ]
               }
            },
            "coefficients": {
               "title": "Coefficients",
               "description": "General contraction coefficients for the potential; individual list components will be the individual segment contraction coefficients.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "array",
                  "items": {
                     "anyOf": [
                        {
                           "type": "number"
                        },
                        {
                           "type": "string"
                        }
                     ]
                  },
                  "minItems": 1
               }
            }
         },
         "required": [
            "ecp_type",
            "angular_momentum",
            "r_exponents",
            "gaussian_exponents",
            "coefficients"
         ],
         "additionalProperties": false
      },
      "BasisCenter": {
         "title": "BasisCenter",
         "description": "Data for a single atom/center in a basis set.",
         "type": "object",
         "properties": {
            "electron_shells": {
               "title": "Electron Shells",
               "description": "Electronic shells for this center.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "$ref": "#/definitions/ElectronShell"
               },
               "uniqueItems": true
            },
            "ecp_electrons": {
               "title": "Ecp Electrons",
               "description": "Number of electrons replaced by ECP, MCP, or other field potentials.",
               "default": 0,
               "type": "integer"
            },
            "ecp_potentials": {
               "title": "Ecp Potentials",
               "description": "ECPs, MCPs, or other field potentials for this center.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "$ref": "#/definitions/ECPPotential"
               },
               "uniqueItems": true
            }
         },
         "required": [
            "electron_shells"
         ],
         "additionalProperties": false
      }
   }
}

Fields:
Validators:
field atom_map: List[str] [Required]

Mapping of all atoms/centers in the parent molecule to centers in center_data.

Validated by:
  • _check_atom_map

field center_data: Dict[str, BasisCenter] [Required]

Shared basis data for all atoms/centers in the parent molecule

field description: Optional[str] = None

Brief description of the basis set.

field name: str [Required]

The standard basis name if available (e.g., ‘cc-pVDZ’).

field nbf: Optional[int] = None

The number of basis functions. Use for convenience or as checksum

Validated by:
  • _check_nbf

field schema_name: ConstrainedStrValue = 'qcschema_basis'

The QCSchema specification to which this model conforms. Explicitly fixed as qcschema_basis.

Constraints:
  • pattern = ^(qcschema_basis)$

field schema_version: int = 1

The version number of schema_name to which this model conforms.

pydantic model qcelemental.models.basis.BasisCenter[source]

Data for a single atom/center in a basis set.

Show JSON schema
{
   "title": "BasisCenter",
   "description": "Data for a single atom/center in a basis set.",
   "type": "object",
   "properties": {
      "electron_shells": {
         "title": "Electron Shells",
         "description": "Electronic shells for this center.",
         "minItems": 1,
         "type": "array",
         "items": {
            "$ref": "#/definitions/ElectronShell"
         },
         "uniqueItems": true
      },
      "ecp_electrons": {
         "title": "Ecp Electrons",
         "description": "Number of electrons replaced by ECP, MCP, or other field potentials.",
         "default": 0,
         "type": "integer"
      },
      "ecp_potentials": {
         "title": "Ecp Potentials",
         "description": "ECPs, MCPs, or other field potentials for this center.",
         "minItems": 1,
         "type": "array",
         "items": {
            "$ref": "#/definitions/ECPPotential"
         },
         "uniqueItems": true
      }
   },
   "required": [
      "electron_shells"
   ],
   "additionalProperties": false,
   "definitions": {
      "HarmonicType": {
         "title": "HarmonicType",
         "description": "The angular momentum representation of a shell.",
         "enum": [
            "spherical",
            "cartesian"
         ],
         "type": "string"
      },
      "ElectronShell": {
         "title": "ElectronShell",
         "description": "Information for a single electronic shell.",
         "type": "object",
         "properties": {
            "angular_momentum": {
               "title": "Angular Momentum",
               "description": "Angular momentum for the shell as an array of integers.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "integer",
                  "minimum": 0
               },
               "uniqueItems": true
            },
            "harmonic_type": {
               "description": "The angular momentum representation of a shell.",
               "allOf": [
                  {
                     "$ref": "#/definitions/HarmonicType"
                  }
               ]
            },
            "exponents": {
               "title": "Exponents",
               "description": "Exponents for the contracted shell.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "type": "number"
                     },
                     {
                        "type": "string"
                     }
                  ]
               }
            },
            "coefficients": {
               "title": "Coefficients",
               "description": "General contraction coefficients for the shell; individual list components will be the individual segment contraction coefficients.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "array",
                  "items": {
                     "anyOf": [
                        {
                           "type": "number"
                        },
                        {
                           "type": "string"
                        }
                     ]
                  },
                  "minItems": 1
               }
            }
         },
         "required": [
            "angular_momentum",
            "harmonic_type",
            "exponents",
            "coefficients"
         ],
         "additionalProperties": false
      },
      "ECPType": {
         "title": "ECPType",
         "description": "The type of the ECP potential.",
         "enum": [
            "scalar",
            "spinorbit"
         ],
         "type": "string"
      },
      "ECPPotential": {
         "title": "ECPPotential",
         "description": "Information for a single ECP potential.",
         "type": "object",
         "properties": {
            "ecp_type": {
               "description": "The type of the ECP potential.",
               "allOf": [
                  {
                     "$ref": "#/definitions/ECPType"
                  }
               ]
            },
            "angular_momentum": {
               "title": "Angular Momentum",
               "description": "Angular momentum for the potential as an array of integers.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "integer",
                  "minimum": 0
               },
               "uniqueItems": true
            },
            "r_exponents": {
               "title": "R Exponents",
               "description": "Exponents of the 'r' term.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "integer"
               }
            },
            "gaussian_exponents": {
               "title": "Gaussian Exponents",
               "description": "Exponents of the 'gaussian' term.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "type": "number"
                     },
                     {
                        "type": "string"
                     }
                  ]
               }
            },
            "coefficients": {
               "title": "Coefficients",
               "description": "General contraction coefficients for the potential; individual list components will be the individual segment contraction coefficients.",
               "minItems": 1,
               "type": "array",
               "items": {
                  "type": "array",
                  "items": {
                     "anyOf": [
                        {
                           "type": "number"
                        },
                        {
                           "type": "string"
                        }
                     ]
                  },
                  "minItems": 1
               }
            }
         },
         "required": [
            "ecp_type",
            "angular_momentum",
            "r_exponents",
            "gaussian_exponents",
            "coefficients"
         ],
         "additionalProperties": false
      }
   }
}

Fields:
  • ecp_electrons (int)

  • ecp_potentials (Optional[List[qcelemental.models.basis.ECPPotential]])

  • electron_shells (List[qcelemental.models.basis.ElectronShell])

field ecp_electrons: int = 0

Number of electrons replaced by ECP, MCP, or other field potentials.

field ecp_potentials: Optional[List[ECPPotential]] = None

ECPs, MCPs, or other field potentials for this center.

Constraints:
  • minItems = 1

field electron_shells: List[ElectronShell] [Required]

Electronic shells for this center.

Constraints:
  • minItems = 1

pydantic model qcelemental.models.basis.ElectronShell[source]

Information for a single electronic shell.

Show JSON schema
{
   "title": "ElectronShell",
   "description": "Information for a single electronic shell.",
   "type": "object",
   "properties": {
      "angular_momentum": {
         "title": "Angular Momentum",
         "description": "Angular momentum for the shell as an array of integers.",
         "minItems": 1,
         "type": "array",
         "items": {
            "type": "integer",
            "minimum": 0
         },
         "uniqueItems": true
      },
      "harmonic_type": {
         "description": "The angular momentum representation of a shell.",
         "allOf": [
            {
               "$ref": "#/definitions/HarmonicType"
            }
         ]
      },
      "exponents": {
         "title": "Exponents",
         "description": "Exponents for the contracted shell.",
         "minItems": 1,
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "type": "number"
               },
               {
                  "type": "string"
               }
            ]
         }
      },
      "coefficients": {
         "title": "Coefficients",
         "description": "General contraction coefficients for the shell; individual list components will be the individual segment contraction coefficients.",
         "minItems": 1,
         "type": "array",
         "items": {
            "type": "array",
            "items": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "string"
                  }
               ]
            },
            "minItems": 1
         }
      }
   },
   "required": [
      "angular_momentum",
      "harmonic_type",
      "exponents",
      "coefficients"
   ],
   "additionalProperties": false,
   "definitions": {
      "HarmonicType": {
         "title": "HarmonicType",
         "description": "The angular momentum representation of a shell.",
         "enum": [
            "spherical",
            "cartesian"
         ],
         "type": "string"
      }
   }
}

Fields:
  • angular_momentum (List[qcelemental.models.basis.NonnegativeInt])

  • coefficients (List[List[float]])

  • exponents (List[float])

  • harmonic_type (qcelemental.models.basis.HarmonicType)

Validators:
  • _check_coefficient_length » coefficients

  • _check_general_contraction_or_fused » coefficients

field angular_momentum: List[NonnegativeInt] [Required]

Angular momentum for the shell as an array of integers.

Constraints:
  • minItems = 1

field coefficients: List[List[float]] [Required]

General contraction coefficients for the shell; individual list components will be the individual segment contraction coefficients.

Constraints:
  • minItems = 1

Validated by:
  • _check_coefficient_length

  • _check_general_contraction_or_fused

field exponents: List[float] [Required]

Exponents for the contracted shell.

Constraints:
  • minItems = 1

field harmonic_type: HarmonicType [Required]

The angular momentum representation of a shell.

is_contracted()[source]

Checks if the shell represents a contracted Gaussian or not.

Returns:

True if the shell is contracted.

Return type:

bool

nfunctions()[source]

Computes the number of basis functions on this shell.

Returns:

The number of basis functions on this shell.

Return type:

int

pydantic model qcelemental.models.basis.ECPPotential[source]

Information for a single ECP potential.

Show JSON schema
{
   "title": "ECPPotential",
   "description": "Information for a single ECP potential.",
   "type": "object",
   "properties": {
      "ecp_type": {
         "description": "The type of the ECP potential.",
         "allOf": [
            {
               "$ref": "#/definitions/ECPType"
            }
         ]
      },
      "angular_momentum": {
         "title": "Angular Momentum",
         "description": "Angular momentum for the potential as an array of integers.",
         "minItems": 1,
         "type": "array",
         "items": {
            "type": "integer",
            "minimum": 0
         },
         "uniqueItems": true
      },
      "r_exponents": {
         "title": "R Exponents",
         "description": "Exponents of the 'r' term.",
         "minItems": 1,
         "type": "array",
         "items": {
            "type": "integer"
         }
      },
      "gaussian_exponents": {
         "title": "Gaussian Exponents",
         "description": "Exponents of the 'gaussian' term.",
         "minItems": 1,
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "type": "number"
               },
               {
                  "type": "string"
               }
            ]
         }
      },
      "coefficients": {
         "title": "Coefficients",
         "description": "General contraction coefficients for the potential; individual list components will be the individual segment contraction coefficients.",
         "minItems": 1,
         "type": "array",
         "items": {
            "type": "array",
            "items": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "string"
                  }
               ]
            },
            "minItems": 1
         }
      }
   },
   "required": [
      "ecp_type",
      "angular_momentum",
      "r_exponents",
      "gaussian_exponents",
      "coefficients"
   ],
   "additionalProperties": false,
   "definitions": {
      "ECPType": {
         "title": "ECPType",
         "description": "The type of the ECP potential.",
         "enum": [
            "scalar",
            "spinorbit"
         ],
         "type": "string"
      }
   }
}

Fields:
  • angular_momentum (List[qcelemental.models.basis.NonnegativeInt])

  • coefficients (List[List[float]])

  • ecp_type (qcelemental.models.basis.ECPType)

  • gaussian_exponents (List[float])

  • r_exponents (List[int])

Validators:
  • _check_coefficient_length » coefficients

  • _check_gaussian_exponents_length » gaussian_exponents

field angular_momentum: List[NonnegativeInt] [Required]

Angular momentum for the potential as an array of integers.

Constraints:
  • minItems = 1

field coefficients: List[List[float]] [Required]

General contraction coefficients for the potential; individual list components will be the individual segment contraction coefficients.

Constraints:
  • minItems = 1

Validated by:
  • _check_coefficient_length

field ecp_type: ECPType [Required]

The type of the ECP potential.

field gaussian_exponents: List[float] [Required]

Exponents of the ‘gaussian’ term.

Constraints:
  • minItems = 1

Validated by:
  • _check_gaussian_exponents_length

field r_exponents: List[int] [Required]

Exponents of the ‘r’ term.

Constraints:
  • minItems = 1

ComputeError

pydantic model qcelemental.models.ComputeError[source]

Complete description of the error from an unsuccessful program execution.

Show JSON schema
{
   "title": "ComputeError",
   "description": "Complete description of the error from an unsuccessful program execution.",
   "type": "object",
   "properties": {
      "error_type": {
         "title": "Error Type",
         "description": "The type of error which was thrown. Restrict this field to short classifiers e.g. 'input_error'. Suggested classifiers: https://github.com/MolSSI/QCEngine/blob/master/qcengine/exceptions.py",
         "type": "string"
      },
      "error_message": {
         "title": "Error Message",
         "description": "Text associated with the thrown error. This is often the backtrace, but it can contain additional information as well.",
         "type": "string"
      },
      "extras": {
         "title": "Extras",
         "description": "Additional information to bundle with the error.",
         "type": "object"
      }
   },
   "required": [
      "error_type",
      "error_message"
   ],
   "additionalProperties": false
}

Fields:
field error_message: str [Required]

Text associated with the thrown error. This is often the backtrace, but it can contain additional information as well.

field error_type: str [Required]

The type of error which was thrown. Restrict this field to short classifiers e.g. ‘input_error’. Suggested classifiers: https://github.com/MolSSI/QCEngine/blob/master/qcengine/exceptions.py

field extras: Optional[Dict[str, Any]] = None

Additional information to bundle with the error.

FailedOperation

pydantic model qcelemental.models.FailedOperation[source]

Record indicating that a given operation (program, procedure, etc.) has failed and containing the reason and input data which generated the failure.

Show JSON schema
{
   "title": "FailedOperation",
   "description": "Record indicating that a given operation (program, procedure, etc.) has failed and containing the reason and input data which generated the failure.",
   "type": "object",
   "properties": {
      "id": {
         "title": "Id",
         "description": "A unique identifier which links this FailedOperation, often of the same Id of the operation should it have been successful. This will often be set programmatically by a database such as Fractal.",
         "type": "string"
      },
      "input_data": {
         "title": "Input Data",
         "description": "The input data which was passed in that generated this failure. This should be the complete input which when attempted to be run, caused the operation to fail."
      },
      "success": {
         "title": "Success",
         "description": "A boolean indicator that the operation failed consistent with the model of successful operations. Should always be False. Allows programmatic assessment of all operations regardless of if they failed or succeeded",
         "default": false,
         "type": "boolean"
      },
      "error": {
         "title": "Error",
         "description": "A container which has details of the error that failed this operation. See the :class:`ComputeError` for more details.",
         "allOf": [
            {
               "$ref": "#/definitions/ComputeError"
            }
         ]
      },
      "extras": {
         "title": "Extras",
         "description": "Additional information to bundle with the failed operation. Details which pertain specifically to a thrown error should be contained in the `error` field. See :class:`ComputeError` for details.",
         "type": "object"
      }
   },
   "required": [
      "error"
   ],
   "additionalProperties": false,
   "definitions": {
      "ComputeError": {
         "title": "ComputeError",
         "description": "Complete description of the error from an unsuccessful program execution.",
         "type": "object",
         "properties": {
            "error_type": {
               "title": "Error Type",
               "description": "The type of error which was thrown. Restrict this field to short classifiers e.g. 'input_error'. Suggested classifiers: https://github.com/MolSSI/QCEngine/blob/master/qcengine/exceptions.py",
               "type": "string"
            },
            "error_message": {
               "title": "Error Message",
               "description": "Text associated with the thrown error. This is often the backtrace, but it can contain additional information as well.",
               "type": "string"
            },
            "extras": {
               "title": "Extras",
               "description": "Additional information to bundle with the error.",
               "type": "object"
            }
         },
         "required": [
            "error_type",
            "error_message"
         ],
         "additionalProperties": false
      }
   }
}

Fields:
field error: ComputeError [Required]

A container which has details of the error that failed this operation. See the ComputeError for more details.

field extras: Optional[Dict[str, Any]] = None

Additional information to bundle with the failed operation. Details which pertain specifically to a thrown error should be contained in the error field. See ComputeError for details.

field id: str = None

A unique identifier which links this FailedOperation, often of the same Id of the operation should it have been successful. This will often be set programmatically by a database such as Fractal.

field input_data: Any = None

The input data which was passed in that generated this failure. This should be the complete input which when attempted to be run, caused the operation to fail.

field success: bool = False

A boolean indicator that the operation failed consistent with the model of successful operations. Should always be False. Allows programmatic assessment of all operations regardless of if they failed or succeeded

Provenance

pydantic model qcelemental.models.Provenance[source]

Provenance information.

Show JSON schema
{
   "title": "Provenance",
   "description": "Provenance information.",
   "type": "object",
   "properties": {
      "creator": {
         "title": "Creator",
         "description": "The name of the program, library, or person who created the object.",
         "type": "string"
      },
      "version": {
         "title": "Version",
         "description": "The version of the creator, blank otherwise. This should be sortable by the very broad `PEP 440 <https://www.python.org/dev/peps/pep-0440/>`_.",
         "default": "",
         "type": "string"
      },
      "routine": {
         "title": "Routine",
         "description": "The name of the routine or function within the creator, blank otherwise.",
         "default": "",
         "type": "string"
      }
   },
   "required": [
      "creator"
   ],
   "$schema": "http://json-schema.org/draft-04/schema#"
}

Fields:
field creator: str [Required]

The name of the program, library, or person who created the object.

field routine: str = ''

The name of the routine or function within the creator, blank otherwise.

field version: str = ''

The version of the creator, blank otherwise. This should be sortable by the very broad PEP 440.

DriverEnum

class qcelemental.models.DriverEnum(value)[source]

Allowed computation driver values.

derivative_int()[source]
energy = 'energy'
gradient = 'gradient'
hessian = 'hessian'
properties = 'properties'