ManyBodySpecification

pydantic model qcmanybody.models.ManyBodySpecification[source]

Combining the what (ManyBodyKeywords) with the how (AtomicSpecification).

Show JSON schema
{
   "title": "ManyBodySpecification",
   "description": "Combining the what (ManyBodyKeywords) with the how (AtomicSpecification).",
   "type": "object",
   "properties": {
      "schema_name": {
         "title": "Schema Name",
         "default": "qcschema_manybodyspecification",
         "enum": [
            "qcschema_manybodyspecification"
         ],
         "type": "string"
      },
      "schema_version": {
         "title": "Schema Version",
         "description": "The version number of ``schema_name`` to which this model conforms.",
         "default": 1,
         "enum": [
            1
         ],
         "type": "integer"
      },
      "keywords": {
         "title": "Keywords",
         "description": "The many-body-specific keywords for user control.",
         "allOf": [
            {
               "$ref": "#/definitions/ManyBodyKeywords"
            }
         ]
      },
      "protocols": {
         "title": "Protocols",
         "description": "\n    Protocols regarding the manipulation of a ManyBody output data.\n    ",
         "default": {},
         "allOf": [
            {
               "$ref": "#/definitions/ManyBodyProtocols"
            }
         ]
      },
      "driver": {
         "description": "The computation driver; i.e., energy, gradient, hessian.",
         "allOf": [
            {
               "$ref": "#/definitions/DriverEnum"
            }
         ]
      },
      "specification": {
         "title": "Specification",
         "description": "??? TODO expand to cbs, fd",
         "type": "object",
         "additionalProperties": {
            "$ref": "#/definitions/AtomicSpecification"
         }
      },
      "extras": {
         "title": "Extras",
         "description": "Additional information to bundle with the computation. Use for schema development and scratch space.",
         "default": {},
         "type": "object"
      }
   },
   "required": [
      "keywords",
      "driver",
      "specification"
   ],
   "additionalProperties": false,
   "definitions": {
      "BsseEnum": {
         "title": "BsseEnum",
         "description": "Available basis-set superposition error (BSSE) treatments.",
         "enum": [
            "nocp",
            "cp",
            "vmfc"
         ],
         "type": "string"
      },
      "ManyBodyKeywords": {
         "title": "ManyBodyKeywords",
         "description": "The many-body-specific keywords for user control.",
         "type": "object",
         "properties": {
            "schema_name": {
               "title": "Schema Name",
               "default": "qcschema_manybodykeywords",
               "enum": [
                  "qcschema_manybodykeywords"
               ],
               "type": "string"
            },
            "schema_version": {
               "title": "Schema Version",
               "description": "The version number of ``schema_name`` to which this model conforms.",
               "default": 1,
               "enum": [
                  1
               ],
               "type": "integer"
            },
            "bsse_type": {
               "description": "Requested BSSE treatments. First in list determines which interaction or total energy/gradient/Hessian returned.",
               "default": [
                  "cp"
               ],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/BsseEnum"
               }
            },
            "embedding_charges": {
               "title": "Embedding Charges",
               "description": "Atom-centered point charges to be used on molecule fragments whose basis sets are not included in the computation. Keys: 1-based index of fragment. Values: list of atom charges for that fragment. At present, QCManyBody will only accept non-None values of this keyword if environment variable QCMANYBODY_EMBEDDING_CHARGES is set.",
               "json_schema_extra": {
                  "shape": [
                     "nfr",
                     "<varies: nat in ifr>"
                  ]
               },
               "type": "object",
               "additionalProperties": {
                  "type": "array",
                  "items": {
                     "type": "number"
                  }
               }
            },
            "return_total_data": {
               "title": "Return Total Data",
               "description": "When True, returns the total data (energy/gradient/Hessian) of the system, otherwise returns interaction data. Default is False for energies, True for gradients and Hessians. Note that the calculation of counterpoise corrected total energies implies the calculation of the energies of monomers in the monomer basis, hence specifying ``return_total_data = True`` may carry out more computations than ``return_total_data = False``. For gradients and Hessians, ``return_total_data = False`` is rarely useful.",
               "validate_default": true,
               "type": "boolean"
            },
            "levels": {
               "title": "Levels",
               "description": "Dictionary of different levels of theory for different levels of expansion. Note that the primary method_string is not used when this keyword is given. ``supersystem`` computes all higher order n-body effects up to the number of fragments; this higher-order correction uses the nocp basis, regardless of bsse_type. A method fills in for any lower unlisted nbody levels. Note that if both this and max_nbody are provided, they must be consistent. Examples: SUPERSYSTEM definition suspect* {1: 'ccsd(t)', 2: 'mp2', 'supersystem': 'scf'} * {2: 'ccsd(t)/cc-pvdz', 3: 'mp2'} * Now invalid: {1: 2, 2: 'ccsd(t)/cc-pvdz', 3: 'mp2'} ",
               "type": "object",
               "additionalProperties": {
                  "type": "string"
               }
            },
            "max_nbody": {
               "title": "Max Nbody",
               "description": "Maximum number of bodies to include in the many-body treatment. Possible: max_nbody <= nfragments. Default: max_nbody = nfragments.",
               "validate_default": true,
               "type": "integer"
            },
            "supersystem_ie_only": {
               "title": "Supersystem Ie Only",
               "description": "Target the supersystem total/interaction energy (IE) data over the many-body expansion (MBE) analysis, thereby omitting intermediate-body calculations. When False (default), compute each n-body level in the MBE up through ``max_nbody``. When True (only allowed for ``max_nbody = nfragments`` ), only compute enough for the overall interaction/total energy: max_nbody-body and 1-body. When True, properties ``INTERACTION {driver} THROUGH {max_nbody}-BODY`` will always be available; ``TOTAL {driver} THROUGH {max_nbody}-BODY`` will be available depending on ``return_total_data`` ; and ``{max_nbody}-BODY CONTRIBUTION TO {driver}`` won't be available (except for dimers). This keyword produces no savings for a two-fragment molecule. But for the interaction energy of a three-fragment molecule, for example, 2-body subsystems can be skipped with ``supersystem_ie_only=True``. Do not use with ``vmfc`` in ``bsse_type`` as it cannot produce savings.",
               "default": false,
               "validate_default": true,
               "type": "boolean"
            }
         },
         "additionalProperties": false
      },
      "ComponentResultsProtocolEnum": {
         "title": "ComponentResultsProtocolEnum",
         "description": "Which component results to preserve in a many body result; usually AtomicResults.",
         "enum": [
            "all",
            "none"
         ],
         "type": "string"
      },
      "ManyBodyProtocols": {
         "title": "ManyBodyProtocols",
         "description": "Protocols regarding the manipulation of a ManyBody output data.",
         "type": "object",
         "properties": {
            "component_results": {
               "description": "Which component results to preserve in a many body result; usually AtomicResults.",
               "default": "none",
               "allOf": [
                  {
                     "$ref": "#/definitions/ComponentResultsProtocolEnum"
                  }
               ]
            }
         },
         "additionalProperties": false
      },
      "DriverEnum": {
         "title": "DriverEnum",
         "description": "Allowed computation driver values.",
         "enum": [
            "energy",
            "gradient",
            "hessian",
            "properties"
         ],
         "type": "string"
      },
      "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
      },
      "BasisSet": {
         "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#"
      },
      "Model": {
         "title": "Model",
         "description": "The computational molecular sciences model to run.",
         "type": "object",
         "properties": {
            "method": {
               "title": "Method",
               "description": "The quantum chemistry method to evaluate (e.g., B3LYP, PBE, ...). For MM, name of the force field.",
               "type": "string"
            },
            "basis": {
               "title": "Basis",
               "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.",
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "$ref": "#/definitions/BasisSet"
                  }
               ]
            }
         },
         "required": [
            "method"
         ]
      },
      "WavefunctionProtocolEnum": {
         "title": "WavefunctionProtocolEnum",
         "description": "Wavefunction to keep from a computation.",
         "enum": [
            "all",
            "orbitals_and_eigenvalues",
            "occupations_and_eigenvalues",
            "return_results",
            "none"
         ],
         "type": "string"
      },
      "ErrorCorrectionProtocol": {
         "title": "ErrorCorrectionProtocol",
         "description": "Configuration for how QCEngine handles error correction\n\nWARNING: These protocols are currently experimental and only supported by NWChem tasks",
         "type": "object",
         "properties": {
            "default_policy": {
               "title": "Default Policy",
               "description": "Whether to allow error corrections to be used if not directly specified in `policies`",
               "default": true,
               "type": "boolean"
            },
            "policies": {
               "title": "Policies",
               "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.",
               "type": "object",
               "additionalProperties": {
                  "type": "boolean"
               }
            }
         },
         "additionalProperties": false
      },
      "NativeFilesProtocolEnum": {
         "title": "NativeFilesProtocolEnum",
         "description": "CMS program files to keep from a computation.",
         "enum": [
            "all",
            "input",
            "none"
         ],
         "type": "string"
      },
      "AtomicResultProtocols": {
         "title": "AtomicResultProtocols",
         "description": "Protocols regarding the manipulation of computational result data.",
         "type": "object",
         "properties": {
            "wavefunction": {
               "description": "Wavefunction to keep from a computation.",
               "default": "none",
               "allOf": [
                  {
                     "$ref": "#/definitions/WavefunctionProtocolEnum"
                  }
               ]
            },
            "stdout": {
               "title": "Stdout",
               "description": "Primary output file to keep from the computation",
               "default": true,
               "type": "boolean"
            },
            "error_correction": {
               "title": "Error Correction",
               "description": "Policies for error correction",
               "allOf": [
                  {
                     "$ref": "#/definitions/ErrorCorrectionProtocol"
                  }
               ]
            },
            "native_files": {
               "description": "Policies for keeping processed files from the computation",
               "default": "none",
               "allOf": [
                  {
                     "$ref": "#/definitions/NativeFilesProtocolEnum"
                  }
               ]
            }
         },
         "additionalProperties": false
      },
      "AtomicSpecification": {
         "title": "AtomicSpecification",
         "description": "Specification for a single point QC calculation",
         "type": "object",
         "properties": {
            "keywords": {
               "title": "Keywords",
               "description": "The program specific keywords to be used.",
               "default": {},
               "type": "object"
            },
            "program": {
               "title": "Program",
               "description": "The program for which the Specification is intended.",
               "type": "string"
            },
            "schema_name": {
               "title": "Schema Name",
               "default": "qcschema_atomicspecification",
               "enum": [
                  "qcschema_atomicspecification"
               ],
               "type": "string"
            },
            "schema_version": {
               "title": "Schema Version",
               "description": "The version number of ``schema_name`` to which this model conforms.",
               "default": 1,
               "enum": [
                  1
               ],
               "type": "integer"
            },
            "driver": {
               "description": "Allowed computation driver values.",
               "allOf": [
                  {
                     "$ref": "#/definitions/DriverEnum"
                  }
               ]
            },
            "model": {
               "title": "Model",
               "description": "The computational molecular sciences model to run.",
               "allOf": [
                  {
                     "$ref": "#/definitions/Model"
                  }
               ]
            },
            "protocols": {
               "title": "Protocols",
               "description": "Protocols regarding the manipulation of computational result data.",
               "default": {},
               "allOf": [
                  {
                     "$ref": "#/definitions/AtomicResultProtocols"
                  }
               ]
            },
            "extras": {
               "title": "Extras",
               "description": "Additional information to bundle with the computation. Use for schema development and scratch space.",
               "default": {},
               "type": "object"
            }
         },
         "required": [
            "program",
            "driver",
            "model"
         ],
         "additionalProperties": false
      }
   }
}

Fields:
  • driver (qcelemental.models.common_models.DriverEnum)

  • extras (Dict[str, Any])

  • keywords (qcmanybody.models.v1.manybody_input_pydv1.ManyBodyKeywords)

  • protocols (qcmanybody.models.v1.manybody_input_pydv1.ManyBodyProtocols)

  • schema_name (Literal['qcschema_manybodyspecification'])

  • schema_version (Literal[1])

  • specification (Dict[str, qcmanybody.models.v1.manybody_input_pydv1.AtomicSpecification])

Validators:
  • set_specification » specification

field driver: DriverEnum [Required]

The computation driver; i.e., energy, gradient, hessian.

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

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

field keywords: ManyBodyKeywords [Required]

The many-body-specific keywords for user control.

field protocols: ManyBodyProtocols = ManyBodyProtocols(component_results=<ComponentResultsProtocolEnum.none: 'none'>)

Protocols regarding the manipulation of a ManyBody output data.

field schema_name: Literal['qcschema_manybodyspecification'] = 'qcschema_manybodyspecification'
field schema_version: Literal[1] = 1

The version number of schema_name to which this model conforms.

field specification: Dict[str, AtomicSpecification] [Required]

??? TODO expand to cbs, fd

Validated by:
  • set_specification

convert_v(target_version, /)[source]

Convert to instance of particular QCSchema version.

Parameters:

target_version (int)

Return type:

Union[‘qcmanybody.models.v1.ManyBodySpecification’, ‘qcmanybody.models.v2.ManyBodySpecification’]

validator set_specification  »  specification[source]
Return type:

Dict[str, AtomicSpecification]

Parameters:

v (Any)