mag4.analysis.bond_angles
Bridging-ligand bond-angle analysis (M – L – M).
Functions
|
Group similar angles: |
|
Find every ligand L bridging |
|
Find every M1–L1–L2–M2 super-super-exchange path between |
|
Return sorted list of unique M–M pairs within |
|
Cluster M–M pairs into distance shells (J1, J2, …). |
|
Bond-angle table for one J shell. |
|
Print a header summarising the structure and the search parameters. |
|
Brief summary of the J shells. |
|
Write accumulated report lines to |
- mag4.analysis.bond_angles.get_mm_pairs(structure, element, cutoff)[source]
Return sorted list of unique M–M pairs within
cutoffÅ.Mirrors
mag4.io_cif.get_mm_distances()but returns lighter dicts (nolabel_*fields) suited to the bond-angle workflow.
- mag4.analysis.bond_angles.group_into_shells(results, tol=0.01)[source]
Cluster M–M pairs into distance shells (J1, J2, …).
- Parameters:
tol (float)
- mag4.analysis.bond_angles.find_bridging_angles(structure, site_i, site_j, jimage, ligand_elements, bond_cutoff)[source]
Find every ligand L bridging
site_iandsite_j(atjimage).A ligand L bridges the pair when
dist(site_i, L) < bond_cutoffANDdist(site_j + jimage, L) < bond_cutoff.Returns a list of dicts sorted by angle.
- mag4.analysis.bond_angles.find_dihedral_paths(structure, site_i, site_j, jimage, ligand_elements, bond_cutoff, ll_cutoff)[source]
Find every M1–L1–L2–M2 super-super-exchange path between
site_i(home) andsite_j(atjimage).A path exists when:
L1is bonded toM1(distance ≤bond_cutoff);L2is bonded toM2 + jimage(distance ≤bond_cutoff);L1andL2are bonded to each other (distance ≤ll_cutoff);L1andL2are distinct ligand atoms (otherwise the path is a direct M–L–M bridge already covered byfind_bridging_angles()).
The returned dihedral is the signed torsion angle of the four-atom path in degrees, in
[-180°, +180°]following the IUPAC convention.Returns a list of dicts, deduplicated on
(L1 identity, L2 identity)and sorted by signed dihedral.
- mag4.analysis.bond_angles.compress_angles(ang_vals, tol=0.01)[source]
Group similar angles:
[159.07, 159.07, 159.07]→'159.07° (x3)'.
- mag4.analysis.bond_angles.print_header(structure, element, ligand_elements, cutoff, bond_cutoff)[source]
Print a header summarising the structure and the search parameters.
- mag4.analysis.bond_angles.print_shell_summary(groups, element)[source]
Brief summary of the J shells.