quemb.molbe.autofrag.FragPart

class quemb.molbe.autofrag.FragPart(*, mol, frag_type, n_BE, AO_per_frag, AO_per_edge_per_frag, ref_frag_idx_per_edge_per_frag, relAO_per_edge_per_frag, relAO_in_ref_per_edge_per_frag, relAO_per_origin_per_frag, weight_and_relAO_per_center_per_frag, motifs_per_frag, origin_per_frag, H_per_motif, add_center_atom, frozen_core, iao_valence_basis, iao_valence_only)

Data structure to hold the result of BE fragmentations.

Attributes

mol: Mole | Cell

The full molecule.

frag_type: Literal['chemgen', 'graphgen', 'autogen']

The algorithm used for fragmenting.

n_BE: int

The level of BE fragmentation, i.e. 1, 2, …

AO_per_frag: list[list[NewType(GlobalAOIdx, NewType(AOIdx, NewType(OrbitalIdx, integer)))]]

This is a list over fragments and gives the global orbital indices of all atoms in the fragment. These are ordered by the atoms in the fragment.

When using IAOs this refers to the large/working basis.

AO_per_edge_per_frag: list[list[list[NewType(GlobalAOIdx, NewType(AOIdx, NewType(OrbitalIdx, integer)))]]]

The global orbital indices, including hydrogens, per edge per fragment.

When using IAOs this refers to the valence/small basis.

ref_frag_idx_per_edge_per_frag: list[list[NewType(FragmentIdx, integer)]]

Reference fragment index per edge: A list over fragments: list of indices of the fragments in which an edge of the fragment is actually a center. The edge will be matched against this center. For fragments A, B: the A’th element of .center, if the edge of A is the center of B, will be B.

relAO_per_edge_per_frag: list[list[list[NewType(RelAOIdx, NewType(AOIdx, NewType(OrbitalIdx, integer)))]]]

The relative orbital indices, including hydrogens, per edge per fragment. The index is relative to the own fragment.

When using IAOs this refers to the valence/small basis.

relAO_in_ref_per_edge_per_frag: list[list[list[NewType(RelAOIdxInRef, NewType(AOIdx, NewType(OrbitalIdx, integer)))]]]

The relative atomic orbital indices per edge per fragment. Note for this variable relative means that the AO indices are relative to the other fragment where the edge is a center.

When using IAOs this refers to the valence/small basis.

relAO_per_origin_per_frag: list[list[NewType(RelAOIdx, NewType(AOIdx, NewType(OrbitalIdx, integer)))]]

of the motif list for each fragment, this is always a list(range(0, n))

When using IAOs this refers to the valence/small basis.

weight_and_relAO_per_center_per_frag: list[tuple[float, list[NewType(RelAOIdx, NewType(AOIdx, NewType(OrbitalIdx, integer)))]]]

The first element is a float, the second is the list The float weight makes only sense for democratic matching and is currently 1.0 everywhere anyway. We concentrate only on the second part, i.e. the list of indices. This is a list whose entries are sequences containing the relative orbital index of the center sites within a fragment. Relative is to the own fragment.

When using IAOs this refers to the large/working basis.

motifs_per_frag: list[list[NewType(MotifIdx, NewType(AtomIdx, int))]]

The motifs/heavy atoms in each fragment, in order. Each are labeled based on the global atom index. It is ordered by origin, centers, edges!

origin_per_frag: list[NewType(OriginIdx, NewType(CenterIdx, NewType(MotifIdx, NewType(AtomIdx, int))))]

The origin for each fragment. (Note that for conventional BE there is just one origin per fragment)

H_per_motif: Sequence[list[NewType(AtomIdx, int)]]
add_center_atom: list[list[NewType(CenterIdx, NewType(MotifIdx, NewType(AtomIdx, int)))]]

A list over fragments. For each fragment a list of centers that are not the origin of that fragment.

frozen_core: bool
iao_valence_basis: str | None
iao_valence_only: bool

If this option is set to True, all calculation will be performed in the valence basis in the IAO partitioning. This is an experimental feature.

n_frag: int
ncore: int | None
no_core_idx: list[int] | None
core_list: list[int] | None

Methods

__init__(*, mol, frag_type, n_BE, ...)

Method generated by attrs for class FragPart.

all_centers_are_origins()

to_Frags(I, eri_file[, unrestricted])