ManyBodyKeywords

pydantic model qcmanybody.models.ManyBodyKeywords[source]

The many-body-specific keywords for user control.

Show JSON schema
{
   "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,
   "definitions": {
      "BsseEnum": {
         "title": "BsseEnum",
         "description": "Available basis-set superposition error (BSSE) treatments.",
         "enum": [
            "nocp",
            "cp",
            "vmfc"
         ],
         "type": "string"
      }
   }
}

Fields:
  • bsse_type (List[qcmanybody.models.v1.manybody_input_pydv1.BsseEnum])

  • embedding_charges (Dict[int, List[float]] | None)

  • levels (Dict[int | Literal['supersystem'], str] | None)

  • max_nbody (int | None)

  • return_total_data (bool | None)

  • schema_name (Literal['qcschema_manybodykeywords'])

  • schema_version (Literal[1])

  • supersystem_ie_only (bool | None)

Validators:
  • set_bsse_type » bsse_type

field bsse_type: List[BsseEnum] = [BsseEnum.cp]

Requested BSSE treatments. First in list determines which interaction or total energy/gradient/Hessian returned.

Validated by:
  • set_bsse_type

field embedding_charges: Optional[Dict[int, List[float]]] = None

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.

field levels: Optional[Dict[Union[int, Literal['supersystem']], str]] = None

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’}

field max_nbody: Optional[int] = None

Maximum number of bodies to include in the many-body treatment. Possible: max_nbody <= nfragments. Default: max_nbody = nfragments.

field return_total_data: Optional[bool] = None

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.

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

The version number of schema_name to which this model conforms.

field supersystem_ie_only: Optional[bool] = False

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.

validator set_bsse_type  »  bsse_type[source]
Return type:

List[BsseEnum]

Parameters:

v (Any)