build_nbody_compute_list
- qcmanybody.builder.build_nbody_compute_list(bsse_type, nfragments, nbodies, return_total_data, supersystem_ie_only, supersystem_max_nbody=None)[source]
Generates lists of N-Body computations needed for requested BSSE treatments.
- Parameters:
nfragments (
int) – Number of distinct fragments comprising the full molecular supersystem.nbodies (
Iterable[Union[int,Literal['supersystem']]]) – List of n-body levels (e.g., [2] or [1, 2] or [“supersystem”]) for which to generate tasks. Note the natural 1-indexing, so [1] covers one-body contributions.return_total_data (
bool) – Whether the total data (True; energy/gradient/Hessian) of the molecular system has been requested, as opposed to interaction data (False).supersystem_ie_only (
bool) – Target the supersystem total/interaction energy (IE) data over the many-body expansion (MBE) ” analysis, thereby omitting intermediate-body calculations.supersystem_max_nbody (
Optional[int]) – Maximum n-body to use for a supersystem calculation. Must be specified if “supersystem” is in nbodies
- Returns:
Dictionary containing subdicts enumerating compute lists for each possible BSSE treatment. Subdict keys are n-body levels and values are sets of all the mc_(frag, bas) indices needed to compute that n-body level. A given index can appear multiple times within a subdict and among subdicts.
compute_dict["cp"] = { 1: set(), 2: {((1,), (1, 2)), ((2,), (1, 2)), ((1, 2), (1, 2))} }
Subdicts below are always returned. Any may be empty if not requested through bsse_type.
'all'— full list of computations required'cp'— list of computations required for CP procedure'nocp'— list of computations required for non-CP procedure'vmfc_compute'— list of computations required for VMFC procedure'vmfc_levels'— list of levels required for VMFC procedure
- Return type:
compute_dict