Basis Set Superposition Corrections¶
Code author: Daniel G. A. Smith
 psi4.driver.driver_nbody.nbody(func, method_string[, molecule, bsse_type, max_nbody, ptype, return_total_data])[source]¶
Computes the nbody interaction energy, gradient, or Hessian depending on input. This is a generalized universal function for computing interaction and total quantities.
 Returns:
return type of func – The data.
 Returns:
(float,
Wavefunction
) – data and wavefunction with energy/gradient/hessian set appropriately when return_wfn specified. Parameters:
molecule (molecule) –
h2o
 etc.The target molecule, if not the last molecule defined.
return_wfn (boolean) –
'on'
 \(\Rightarrow\)'off'
\(\Leftarrow\)Indicate to additionally return the
Wavefunction
calculation result as the second element of a tuple.'cp'
['nocp', 'vmfc']
 \(\Rightarrow\)None
\(\Leftarrow\)  etc.Type of BSSE correction to compute: CP for counterpoise correction, NoCP for plain supramolecular interaction energy, or VMFC for ValironMayer Function Counterpoise correction. If a list is provided, the first string in the list determines which interaction or total energies/gradients/Hessians are returned by this function. By default, manybody treatments are inactive.
max_nbody (int) –
3
 etc.Maximum nbody to compute, cannot exceed the number of fragments in the molecule.
return_total_data (boolean) –
'on'
 \(\Rightarrow\)'off'
\(\Leftarrow\)If True returns the total data (energy/gradient/Hessian) of the system, otherwise returns interaction data. Default is
'off'
for energies,'on'
for gradients and Hessians. Note that the calculation of total counterpoise corrected energies implies the calculation of the energies of monomers in the monomer basis, hence specifyingreturn_total_data = True
may carry out more computations thanreturn_total_data = False
. For gradients and Hessians,return_total_data = False
is rarely useful.levels (dict) –
{1: 'ccsd(t)', 2: 'mp2', 'supersystem': 'scf'}
{1: 2, 2: 'ccsd(t)', 3: 'mp2'}
 etcDictionary of different levels of theory for different levels of expansion Note that method_string is not used in this case.
supersystem
computes all higher order nbody effects up to the number of fragments.embedding_charges (dict) –
{1: [0.834, 0.417, 0.417], ..}
Dictionary of atomcentered point charges. keys: 1based index of fragment, values: list of charges for each fragment. Add atomcentered point charges for fragments whose basis sets are not included in the computation.
The nbody function computes counterpoisecorrected (CP), nonCP (noCP), and ValironMayer Function Counterpoise (VMFC) interaction energies for complexes composed of arbitrary numbers of monomers.
Examples :
# Counterpoise corrected CCSD(T) energies for the Helium dimer
molecule mol {
He

He 1 3
}
# Calculate interaction energies only (skips monomers in monomer basis):
energy('CCSD(T)', bsse_type='cp')
# Calculate interaction and total energies, return interaction energies:
energy('CCSD(T)', bsse_type=['cp','nocp'])
# Calculate and return counterpoisecorrected gradient
# Useful for e.g. CPcorrected geometry optimization
gradient('CCSD(T)', bsse_type='cp', return_total_data=True)
# noCP, VMFC, and CP energy for a helium cluster, limited at 3 bodies
molecule mol {
He 0 0 0

He 0 0 4

He 0 4 0

He 4 0 0
}
# Returns the nocp energy as its first in the list
energy('CCSD(T)', bsse_type=['nocp', 'cp', 'vmfc'], max_nbody=3)
API¶
 class psi4.driver.driver_nbody.BsseEnum(value)[source]¶
Available basisset superposition error (BSSE) treatments.
 cp = 'cp'¶
 nocp = 'nocp'¶
 vmfc = 'vmfc'¶
 pydantic model psi4.driver.driver_nbody.ManyBodyComputer[source]¶
Show JSON schema
{ "title": "ManyBodyComputer", "description": "Base class for \"computers\" that plan, run, and process QC tasks.", "type": "object", "properties": { "molecule": { "title": "Molecule", "description": "The target molecule, if not the last molecule defined." }, "basis": { "title": "Basis", "default": "(auto)", "type": "string" }, "method": { "title": "Method", "default": "(auto)", "type": "string" }, "driver": { "description": "The computation driver; i.e., energy, gradient, hessian.", "allOf": [ { "$ref": "#/definitions/DriverEnum" } ] }, "keywords": { "title": "Keywords", "description": "The computation keywords/options.", "default": {}, "type": "object" }, "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" } }, "nfragments": { "title": "Nfragments", "description": "Number of distinct fragments comprising full molecular supersystem.", "default": 1, "type": "integer" }, "max_nbody": { "title": "Max Nbody", "description": "Maximum number of bodies to include in the manybody treatment. Possible: max_nbody <= nfragments. Default: max_nbody = nfragments.", "default": 1, "type": "integer" }, "nbodies_per_mc_level": { "title": "Nbodies Per Mc Level", "description": "Distribution of active nbody levels among model chemistry levels. All bodies in range [1, self.max_nbody] must be present exactly once. Number of items in outer list is how many different modelchems. Each inner list specifies what nbodies to be run at the corresponding modelchem (e.g., `[[1, 2]]` has max_nbody=2 and 1body and 2body contributions computed at the same level of theory; `[[1], [2]]` has max_nbody=2 and 1body and 2body contributions computed at different levels of theory. An entry 'supersystem' means all higher order nbody effects up to the number of fragments. The nbody levels are effectively sorted in the outer list, and any 'supersystem' element is at the end.", "default": [], "type": "array", "items": { "type": "array", "items": { "anyOf": [ { "type": "integer" }, { "enum": [ "supersystem" ], "type": "string" } ] } } }, "embedding_charges": { "title": "Embedding Charges", "description": "Atomcentered point charges to be used on molecule fragments whose basis sets are not included in the computation. Keys: 1based index of fragment. Values: list of atom charges for that fragment.", "default": {}, "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 total counterpoise corrected 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``.", "type": "boolean" }, "quiet": { "title": "Quiet", "description": "Whether to print/log formatted nbody energy analysis. Presently used by multi to suppress output. Candidate for removal from class once inclass/outofclass functions sorted.", "default": false, "type": "boolean" }, "task_list": { "title": "Task List", "default": {}, "type": "object", "additionalProperties": { "anyOf": [ { "$ref": "#/definitions/AtomicComputer" }, { "$ref": "#/definitions/CompositeComputer" }, { "$ref": "#/definitions/FiniteDifferenceComputer" } ] } } }, "required": [ "molecule", "driver" ], "definitions": { "DriverEnum": { "title": "DriverEnum", "description": "Allowed computation driver values.", "enum": [ "energy", "gradient", "hessian", "properties" ], "type": "string" }, "BsseEnum": { "title": "BsseEnum", "description": "Available basisset superposition error (BSSE) treatments.", "enum": [ "nocp", "cp", "vmfc" ], "type": "string" }, "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 }, "AtomicComputer": { "title": "AtomicComputer", "description": "Computer for analytic singlegeometry computations.", "type": "object", "properties": { "molecule": { "title": "Molecule", "description": "The molecule to use in the computation." }, "basis": { "title": "Basis", "description": "The quantum chemistry basis set to evaluate (e.g., 631g, ccpVDZ, ...).", "type": "string" }, "method": { "title": "Method", "description": "The quantum chemistry method to evaluate (e.g., B3LYP, MP2, ...).", "type": "string" }, "driver": { "description": "The resulting type of computation: energy, gradient, hessian, properties.Note for finite difference that this should be the target driver, not the means driver.", "allOf": [ { "$ref": "#/definitions/DriverEnum" } ] }, "keywords": { "title": "Keywords", "description": "The keywords to use in the computation.", "type": "object" }, "protocols": { "title": "Protocols", "description": "Output modifications.", "default": { "stdout": true }, "anyOf": [ { "$ref": "#/definitions/AtomicResultProtocols" }, { "type": "object" } ] }, "tag": { "title": "Tag", "description": "The tags to pass along to compute managers.", "default": "*", "type": "string" }, "priority": { "title": "Priority", "description": "The priority of a Task; higher priority will be pulled first. {high:2, normal:1, low:0}", "default": 1, "type": "string" }, "owner_group": { "title": "Owner Group", "description": "group in the chown sense.", "type": "string" }, "computed": { "title": "Computed", "description": "Whether quantum chemistry has been run on this task.", "default": false, "type": "boolean" }, "result": { "title": "Result", "description": ":py:class:`~qcelemental.models.AtomicResult` return." }, "result_id": { "title": "Result Id", "description": "The optional ID for the computation.", "type": "string" } }, "required": [ "molecule", "basis", "method", "driver" ] }, "CompositeComputer": { "title": "CompositeComputer", "description": "Base class for \"computers\" that plan, run, and process QC tasks.", "type": "object", "properties": { "molecule": { "title": "Molecule" }, "basis": { "title": "Basis", "default": "(auto)", "type": "string" }, "method": { "title": "Method", "default": "(auto)", "type": "string" }, "driver": { "$ref": "#/definitions/DriverEnum" }, "keywords": { "title": "Keywords", "default": {}, "type": "object" }, "metadata": { "title": "Metadata" }, "metameta": { "title": "Metameta", "default": {}, "type": "object" }, "verbose": { "title": "Verbose", "default": 1, "type": "integer" }, "cbsrec": { "title": "Cbsrec", "default": [], "type": "array", "items": { "type": "object" } }, "trove": { "title": "Trove", "default": [], "type": "array", "items": { "type": "object" } }, "compute_list": { "title": "Compute List", "default": [], "type": "array", "items": { "type": "object" } }, "task_list": { "title": "Task List", "default": [], "type": "array", "items": { "$ref": "#/definitions/AtomicComputer" } }, "results_list": { "title": "Results List", "default": [], "type": "array", "items": {} } }, "required": [ "driver" ] }, "BaseComputer": { "title": "BaseComputer", "description": "Base class for \"computers\" that plan, run, and process QC tasks.", "type": "object", "properties": {} }, "FiniteDifferenceComputer": { "title": "FiniteDifferenceComputer", "description": "Base class for \"computers\" that plan, run, and process QC tasks.", "type": "object", "properties": { "molecule": { "title": "Molecule" }, "driver": { "$ref": "#/definitions/DriverEnum" }, "metameta": { "title": "Metameta", "default": {}, "type": "object" }, "task_list": { "title": "Task List", "default": {}, "type": "object", "additionalProperties": { "$ref": "#/definitions/BaseComputer" } }, "findifrec": { "title": "Findifrec", "default": {}, "type": "object" }, "method": { "title": "Method", "type": "string" } }, "required": [ "driver", "method" ] } } }
 Fields:
 Validators:

field bsse_type:
List
[BsseEnum
] = [BsseEnum.cp]¶ Requested BSSE treatments. First in list determines which interaction or total energy/gradient/Hessian returned.
 Validated by:

field driver:
DriverEnum
[Required]¶ The computation driver; i.e., energy, gradient, hessian.

field embedding_charges:
Dict
[int
,List
[float
]] = {}¶ Atomcentered point charges to be used on molecule fragments whose basis sets are not included in the computation. Keys: 1based index of fragment. Values: list of atom charges for that fragment.
 Validated by:

field max_nbody:
int
= 1¶ Maximum number of bodies to include in the manybody treatment. Possible: max_nbody <= nfragments. Default: max_nbody = nfragments.
 Validated by:

field molecule:
Any
[Required]¶ The target molecule, if not the last molecule defined.
 Validated by:

field nbodies_per_mc_level:
List
[List
[Union
[int
,Literal
['supersystem'
]]]] = []¶ Distribution of active nbody levels among model chemistry levels. All bodies in range [1, self.max_nbody] must be present exactly once. Number of items in outer list is how many different modelchems. Each inner list specifies what nbodies to be run at the corresponding modelchem (e.g., [[1, 2]] has max_nbody=2 and 1body and 2body contributions computed at the same level of theory; [[1], [2]] has max_nbody=2 and 1body and 2body contributions computed at different levels of theory. An entry ‘supersystem’ means all higher order nbody effects up to the number of fragments. The nbody levels are effectively sorted in the outer list, and any ‘supersystem’ element is at the end.

field nfragments:
int
= 1¶ Number of distinct fragments comprising full molecular supersystem.
 Validated by:

field quiet:
bool
= False¶ Whether to print/log formatted nbody energy analysis. Presently used by multi to suppress output. Candidate for removal from class once inclass/outofclass functions sorted.

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 total counterpoise corrected energies implies the calculation of the energies of monomers in the monomer basis, hence specifying
return_total_data = True
may carry out more computations thanreturn_total_data = False
. Validated by:

field task_list:
Dict
[str
,Union
[AtomicComputer
,CompositeComputer
,FiniteDifferenceComputer
]] = {}¶
 build_tasks(mb_computer, mc_level_idx, **kwargs)[source]¶
Adds to the task_list as many new unique tasks as necessary to treat a single model chemistry level at one or several nbody levels. New tasks are of type mb_computer with model chemistry level specified in kwargs and nbody levels accessed through mc_level_idx.
 Parameters:
mb_computer (
Union
[AtomicComputer
,CompositeComputer
,FiniteDifferenceComputer
]) – Class of task computers to instantiate and add to self.task_list. UsuallyAtomicComputer
but may be other when wrappers are layered.mc_level_idx (
int
) – Position in field self.nbodies_per_mc_level used to obtainnbodies
, the list of nbody levels (e.g., [1] or [1, 2] or [“supersystem”]) to which the modelchem specified in kwargs applies. That is, nbodies = self.nbodies_per_mc_level[mc_level_idx]. Note the natural 1indexing ofnbodies
_contents_, so [1] covers onebody contributions. The corresponding user label is the 1indexed counterpart, mc_level_lbl = mc_level_idx + 1 Formerly nlevel as in nbody = self.nbody_list[nbody_level=nlevel].kwargs (
Dict
[str
,Any
]) – Other arguments for initializing mb_computer. In particular, specifies model chemistry.
 Returns:
count – Number of new tasks planned by this call. Formerly, didn’t include supersystem in count.
 Return type:
 compute(client=None)[source]¶
Run quantum chemistry.
 Parameters:
client (qcportal.FractalClient  None)
 get_psi_results(client=None, *, return_wfn=False)[source]¶
Called by driver to assemble results into ManyBodyflavored QCSchema, then reshape and return them in the customary Psi4 driver interface:
(e/g/h, wfn)
. Parameters:
return_wfn –
Whether to additionally return the dummy
Wavefunction
calculation result as the second element of a tuple. Contents are:supersystem molecule
dummy basis, def2svp
e/g/h member data
QCVariables
client (qcportal.FractalClient  None)
 Returns:
ret – Energy, gradient, or Hessian according to self.driver.
wfn – Wavefunction described above when return_wfn specified.
 Return type:
 get_results(client=None)[source]¶
Return results as ManyBodyflavored QCSchema.
 Parameters:
client (qcportal.FractalClient  None)
 Return type:
 prepare_results(results=None, client=None)[source]¶
Process the results from all nbody component molecular systems and model chemistry levels into final quantities.
 Parameters:
results – A set of tasks to process instead of self.task_list. Used in multilevel processing to pass a subset of self.task_list filtered to only one modelchem level.
client – QCFractal client if using QCArchive for distributed compute.
 Returns:
When the ManyBodyComputer specifies a single model chemistry level (see self.nbodies_per_mc_level), the return is a dictionary, nbody_results, described in the table below. Many of the items are actually filled by successive calls to assemble_nbody_components(). When multiple model chemistry levels are specified, this function diverts its return to driver_nbody_multilevel.prepare_results() wherein each mc level calls this function again and collects separate nbody_results dictionaries and processes them into a final return that is a small subset of the table below.
 Return type:
nbody_results
 ptype_size = (1,)/(nat, 3)/(3 * nat, 3 * nat)
e/g/h := energy or gradient or Hessian rtd := return_total_data
item
size
present / zeroed
contents / interpretation
ret_ptype
ptype_size
always
 interaction data requested: IE or total (depending on return_total_data) e/g/h (depending on driver)
with cp/nocp/vmfc treatment (depending on 1st of bsse_type)
ret_energy
1
always
interaction energy: IE or total (depending on return_total_data) w/ cp/nocp/vmfc treat. (dep. on 1st of bsse_type)
ret_gradient
(nat, 3)
when driver is g/h
interaction gradient: IE or total (depending on return_total_data) w/ cp/nocp/vmfc treat. (dep. on 1st of bsse_type
ret_hessian
(nat * 3, nat * 3)
when driver is h
interaction Hessian: IE or total (depending on return_total_data) w/ cp/nocp/vmfc treat. (dep. on 1st of bsse_type)
nbody
>=1
always
energy nbody QCVariables to be set
CPCORRECTED TOTAL ENERGY THROUGH 1BODY
1
when cp in bsse_type
MBE sum of subsystems of 1body. summed are total energies with cp treatment
CPCORRECTED TOTAL ENERGY THROUGH 2BODY
1
when cp in bsse_type & max_nbody>=2
MBE sum of subsystems of 2body or fewer (cumulative); summed are total energies with cp treatment
CPCORRECTED TOTAL ENERGY THROUGH {nb}BODY
1
when cp in bsse_type
MBE sum of subsystems of {max_nbody}body or fewer (cumulative); summed are total energies w/ cp treatment
CPCORRECTED TOTAL ENERGY
1
when cp in bsse_type & rtd=T
best available total energy with cp treatment: CPCORRECTED TOTAL ENERGY THROUGH {max_nbody}BODY
CPCORRECTED INTERACTION ENERGY THROUGH 2BODY
1
when cp in bsse_type & max_nbody>=2
2body total data less 1body total data for cumulative IE; inputs are total energies with cp treatment
CPCORRECTED INTERACTION ENERGY THROUGH {nb}BODY
1
when cp in bsse_type
{max_nbody}body total data less 1body total data for cumulative IE; inputs are total energies with cp treatment
CPCORRECTED INTERACTION ENERGY
1
when cp in bsse_type
best available interaction energy with cp treatment: CPCORRECTED INTERACTION ENERGY THROUGH {max_nbody}BODY
CPCORRECTED 2BODY CONTRIBUTION TO ENERGY
1
when cp in bsse_type & max_nbody>=2
2body total data less (21)body total data for partial IE; inputs are total energies w/ cp treatment
CPCORRECTED {nb}BODY CONTRIBUTION TO ENERGY
1
when cp in bsse_type
{max_nbody}body total data less ({max_nbody}1)body data for partial IE; inputs are total energies w/ cp treat.
NOCPCORRECTED TOTAL ENERGY THROUGH 1BODY
1
when nocp in bsse_type
MBE sum of subsystems of 1body. summed are total energies without cp treatment
NOCPCORRECTED TOTAL ENERGY THROUGH 2BODY
1
when nocp in bsse_type & max_nbody>=2
MBE sum of subsystems of 2body or fewer (cumulative); summed are total energies without cp treatment
NOCPCORRECTED TOTAL ENERGY THROUGH {nb}BODY
1
when nocp in bsse_type
MBE sum of subsystems of {max_nbody}body or fewer (cumulative); summed are total energies w/o cp treatment
NOCPCORRECTED TOTAL ENERGY
1
when nocp in bsse_type
best available total energy without cp treatment: NOCPCORRECTED TOTAL ENERGY THROUGH {max_nbody}BODY
NOCPCORRECTED INTERACTION ENERGY THROUGH 2BODY
1
when nocp in bsse_type & max_nbody>=2
2body total data less 1body total data for cumulative IE; inputs are total energies w/o cp treatment
NOCPCORRECTED INTERACTION ENERGY THROUGH {nb}BODY
1
when nocp in bsse_type
{max_nbody}body total data less 1body total data for cumulative IE; inputs are total energies w/o cp treatment
NOCPCORRECTED INTERACTION ENERGY
1
when nocp in bsse_type
best available interaction energy without cp treatment: NOCPCORRECTED INTERACTION ENERGY THROUGH {max_nbody}BODY
NOCPCORRECTED 2BODY CONTRIBUTION TO ENERGY
1
when nocp in bsse_type & max_nbody>=2
2body total data less (21)body total data for partial IE; inputs are total energies w/o cp treatment
NOCPCORRECTED {nb}BODY CONTRIBUTION TO ENERGY
1
when nocp in bsse_type
{max_nbody}body total data less ({max_nbody}1)body data for partial IE; inputs are total energies w/o cp treat.
VMFCCORRECTED TOTAL ENERGY THROUGH 1BODY
1
when vmfc in bsse_type
MBE sum of subsystems of 1body. summed are total energies with vmfc treatment
VMFCCORRECTED TOTAL ENERGY THROUGH 2BODY
1
when vmfc in bsse_type & max_nbody>=2
MBE sum of subsystems of 2body or fewer (cumulative); summed are total energies with vmfc treatment
VMFCCORRECTED TOTAL ENERGY THROUGH {nb}BODY
1
when vmfc in bsse_type
MBE sum of subsystems of {max_nbody}body or fewer (cumulative); summed are total energies w/ vmfc treatment
VMFCCORRECTED TOTAL ENERGY
1
when vmfc in bsse_type
best available total energy with vmfc treatment: VMFCCORRECTED TOTAL ENERGY THROUGH {max_nbody}BODY
VMFCCORRECTED INTERACTION ENERGY THROUGH 2BODY
1
when vmfc in bsse_type & max_nbody>=2
2body total data less 1body total data for cumulative IE; inputs are total energies w/ vmfc treatment
VMFCCORRECTED INTERACTION ENERGY THROUGH {nb}BODY
1
when vmfc in bsse_type
{max_nbody}body total data less 1body total data for cumulative IE; inputs are total energies w/ vmfc treatment
VMFCCORRECTED INTERACTION ENERGY
1
when vmfc in bsse_type
best available interaction energy with vmfc treatment: VMFCCORRECTED INTERACTION ENERGY THROUGH {max_nbody}BODY
VMFCCORRECTED 2BODY CONTRIBUTION TO ENERGY
1
when vmfc in bsse_type & max_nbody>=2
2body total data less (21)body total data for partial IE; inputs are total energies w/ vmfc treatment
VMFCCORRECTED {nb}BODY CONTRIBUTION TO ENERGY
1
when vmfc in bsse_type
{max_nbody}body total data less ({max_nbody}1)body data for partial IE; inputs are total energies w/ vmfc treat.
energy_body_dict
max_nbody
always
total energies at each nbody level
1
1
always; zeroed if cp & rtd=F
cumulative through 1body total energies w/ cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
2
1
max_nbody>=2
cumulative through 2body total energies w/ cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
{max_nbody}
1
always
cumulative through {max_nbody}body total energies w/ cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
gradient_body_dict
max_nbody
when driver is g/h
1
(nat, 3)
when driver is g/h
cumulative through 1body total gradients with cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
2
(nat, 3)
when driver is g/h & max_nbody>=2
cumulative through 2body total gradients with cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
{max_nbody}
(nat, 3)
when driver is g/h
cumulative through {max_nbody}body total gradients w/ cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
hessian_body_dict
max_nbody
when driver is h
1
(nat*3, nat*3)
when driver is h
cumulative through 1body total Hessians w/ cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
2
(nat*3, nat*3)
when driver is h & max_nbody>=2
cumulative through 2body total Hessians w/ cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
{max_nbody}
(nat*3, nat*3)
when driver is h
cumulative through {max_nbody}body total Hessians w/ cp/nocp/vmfc treatment (dep. on 1st of bsse_type)
cp_energy_body_dict
max_nbody
always; zeroed if cp not in bsse_type
total energies at each nbody level with cp treatment
1cp
1
always; zeroed if cp not in bsse_type or rtd=F
cumulative through 1body total energies with cp treatment
2cp
1
when max_nbody>=2; zeroed if cp not in bsse_type
cumulative through 2body total energies with cp treatment
{max_nbody}cp
1
always; zeroed if cp not in bsse_type
cumulative through {max_nbody}body total energies with cp treatment
cp_gradient_body_dict
max_nbody
when driver is g/h; zeroed if cp not in bsse_type
total gradients at each nbody level with cp treatment
1cp
(nat, 3)
when driver is g/h; zeroed if cp not in bsse_type or rtd=F
cumulative through 1body total gradients with cp treatment
2cp
(nat, 3)
when driver is g/h & max_nbody>=2; zeroed if cp not in bsse_type
cumulative through 2body total gradients with cp treatment
{max_nbody}cp
(nat, 3)
when driver is g/h; zeroed if cp not in bsse_type
cumulative through {max_nbody}body total gradients with cp treatment
cp_hessian_body_dict
max_nbody
when driver is h; zeroed if cp not in bsse_type
total Hessians at each nbody level with cp treatment
1cp
(nat*3, nat*3)
when driver is h; zeroed if cp not in bsse_type or rtd=F
cumulative through 1body total Hessians with cp treatment
2cp
(nat*3, nat*3)
when driver is h & max_nbody>=2; zeroed if cp not in bsse_type
cumulative through 2body total Hessians with cp treatment
{max_nbody}cp
(nat*3, nat*3)
when driver is h; zeroed if cp not in bsse_type
cumulative through {max_nbody}body total Hessians with cp treatment
nocp_energy_body_dict
max_nbody
always; zeroed if nocp not in bsse_type
total energies at each nbody level with nocp treatment
1nocp
1
always; zeroed if nocp not in bsse_type
cumulative through 1body total energies with nocp treatment
2nocp
1
when max_nbody>=2; zeroed if nocp not in bsse_type
cumulative through 2body total energies with nocp treatment
{max_nbody}nocp
1
always; zeroed if nocp not in bsse_type
cumulative through {max_nbody}body total energies with nocp treatment
nocp_gradient_body_dict
max_nbody
when driver is g/h; zeroed if nocp not in bsse_type
total gradients at each nbody level with nocp treatment
1nocp
(nat, 3)
when driver is g/h; zeroed if nocp not in bsse_type
cumulative through 1body total gradients with nocp treatment
2nocp
(nat, 3)
when driver is g/h & max_nbody>=2; zeroed if nocp not in bsse_type
cumulative through 2body total gradients with nocp treatment
{max_nbody}nocp
(nat, 3)
when driver is g/h; zeroed if nocp not in bsse_type
cumulative through {max_nbody}body total gradients with nocp treatment
nocp_hessian_body_dict
max_nbody
when driver is h; zeroed if nocp not in bsse_type
total Hessians at each nbody level with nocp treatment
1nocp
(nat*3, nat*3)
when driver is h; zeroed if nocp not in bsse_type
cumulative through 1body total Hessians with nocp treatment
2nocp
(nat*3, nat*3)
when driver is h & max_nbody>=2; zeroed if nocp not in bsse_type
cumulative through 2body total Hessians with nocp treatment
{max_nbody}nocp
(nat*3, nat*3)
when driver is h; zeroed if nocp not in bsse_type
cumulative through {max_nbody}body total Hessians with nocp treatment
vmfc_energy_body_dict
max_nbody
always; zeroed if vmfc not in bsse_type
total energies at each nbody level with vmfc treatment
1vmfc
1
always; zeroed if vmfc not in bsse_type
cumulative through 1body total energies with vmfc treatment
2vmfc
1
when max_nbody>=2; zeroed if vmfc not in bsse_type
cumulative through 2body total energies with vmfc treatment
{max_nbody}vmfc
1
always; zeroed if vmfc not in bsse_type
cumulative through {max_nbody}body total energies with vmfc treatment
vmfc_gradient_body_dict
max_nbody
when driver is g/h; zeroed if vmfc not in bsse_type
total gradients at each nbody level with vmfc treatment
1vmfc
(nat, 3)
when driver is g/h; zeroed if vmfc not in bsse_type
cumulative through 1body total gradients with vmfc treatment
2vmfc
(nat, 3)
when driver is g/h & max_nbody>=2; zeroed if vmfc not in bsse_type
cumulative through 2body total gradients with vmfc treatment
{max_nbody}vmfc
(nat, 3)
when driver is g/h; zeroed if vmfc not in bsse_type
cumulative through {max_nbody}body total gradients with vmfc treatment
vmfc_hessian_body_dict
max_nbody
when driver is h; zeroed if vmfc not in bsse_type
total Hessians at each nbody level with vmfc treatment
1vmfc
(nat*3, nat*3)
when driver is h; zeroed if vmfc not in bsse_type
cumulative through 1body total Hessians with vmfc treatment
2vmfc
(nat*3, nat*3)
when driver is h & max_nbody>=2; zeroed if vmfc not in bsse_type
cumulative through 2body total Hessians with vmfc treatment
{max_nbody}vmfc
(nat*3, nat*3)
when driver is h; zeroed if vmfc not in bsse_type
cumulative through {max_nbody}body total Hessians with vmfc treatment
intermediates
ntasks
always
all individual energies with nice labels
NBODY (1, 2)@(1, 2) TOTAL ENERGY
1
always
total energy for 1st modelchem, 1st & 2nd fragments in basis of 1st & 2nd fragments
NBODY (3)@(2, 3) TOTAL ENERGY
1
always
total energy for 2nd modelchem, 3rd fragment in basis of 2nd and 3rd fragments
…
intermediates_energy
ntasks
always
all individual energies
1_((1, 2), (1, 2))
1
always
total energy for 1st modelchem, 1st & 2nd fragments in basis of 1st & 2nd fragments
2_((3,), (2, 3))
1
always
total energy for 2nd modelchem, 3rd fragment in basis of 2nd and 3rd fragments
…
intermediates_gradient
ntasks
when driver is g/h
all individual gradients
1_((1, 2), (1, 2))
(nat, 3)
when driver is g/h
total gradient for 1st modelchem, 1st & 2nd fragments in basis of 1st & 2nd fragments
2_((3,), (2, 3))
(nat, 3)
when driver is g/h
total gradient for 2nd modelchem, 3rd fragment in basis of 2nd and 3rd fragments
…
intermediates_hessian
ntasks
when driver is h
all individual Hessians
1_((1, 2), (1, 2))
(nat*3, nat*3)
when driver is h
total Hessian for 1st modelchem, 1st & 2nd fragments in basis of 1st & 2nd fragments
2_((3,), (2, 3))
(nat*3, nat*3)
when driver is h
total Hessian for 2nd modelchem, 3rd fragment in basis of 2nd and 3rd fragments
…
 validator set_embedding_charges » embedding_charges[source]¶
 validator set_nfragments » nfragments[source]¶
 validator set_return_total_data » return_total_data[source]¶