pyextal.jaxMultipole.settings

Settings of a multipole fit, and the ladder of nested models it runs.

A fit is defined by four things: the crystal (the .dat the Bloch refinements used), the data, how each site is modelled (AtomSpec fields) and which parameters each step of the ladder refines (SiteRefine fields).

The default ladder adds one physical ingredient per step and is judged by Hamilton’s test at each one:

IAM+ADP   symmetry-allowed U_ij only, neutral spherical atoms
+Pv       valence populations (one eliminated by electroneutrality)
+kappa    valence expansion/contraction
+Plm      the symmetry-allowed multipoles (kappa' fixed)
+kappa_p  kappa'   (only when ``ladder_kappa_p`` is set)

A site whose spec has lmax = -1 never gets multipoles; fix_kappa names sites whose kappa stays at 1 throughout (Sr in Friis et al. 2004).

Classes

FitSettings

Everything a jaxMultipole.cli run needs.

Functions

default_ladder(model[, fix_kappa, kappa_p])

The nested sequence of refinements described in the module docs.

Module Contents

class pyextal.jaxMultipole.settings.FitSettings

Everything a jaxMultipole.cli run needs.

Variables:
  • dat (str) – Crystal .dat (cell, atoms, space group, voltage).

  • h5 (list) – Dataset HDF5 files, or glob patterns, for the per-scan runs.

  • notes (str) – Notes prefix selecting the runs ('geo': per-scan).

  • run (str) – 'latest' or a run key.

  • method (str) – 'robust' or 'mean' aggregation (data.from_scan_runs).

  • clip (float) – Robust rejection threshold, sigma.

  • sigma (str) – 'std' or 'sem'.

  • min_n (int) – Minimum measurements per family.

  • floor (tuple) – (absolute, relative) sigma floor.

  • joint_json (str, optional) – Take central values from this joint run, sigmas from the scans.

  • tables (list[dict]) – Extra data, dict(path=..., kind='xray').

  • exclude (list) – Families to leave out, as [h, k, l].

  • smax (float, optional) – Leave out reflections beyond this s.

  • sites (dict) – label -> AtomSpec keyword dict.

  • fix_kappa (list[str]) – Sites whose kappa is never refined.

  • ladder (list, optional) – [(name, {label: SiteRefine kwargs})]; default_ladder when None.

  • ladder_kappa_p (bool) – Append a kappa’ step to the default ladder.

  • restraints (list[dict]) – dict(name='Ti1.kappa_p', target=1, sigma=0.05).

  • start (dict) – Physical starting values, {'O1.Pv': 6.5}.

  • dependent (str, optional) – Population eliminated by electroneutrality.

  • out (str) – Output prefix (<out>.json, <out>.txt, maps).

  • maps (list[dict]) – Deformation-density planes: dict(name, origin, u, v, extent=(-2, 2, -2, 2), n=121) in fractional / lattice units.

dat: str = None
h5: list = []
notes: str = 'geo'
run: str = 'latest'
method: str = 'robust'
clip: float = 4.0
sigma: str = 'std'
min_n: int = 3
floor: tuple = (2e-05, 0.0)
joint_json: str = None
tables: list = []
exclude: list = []
smax: float = None
sites: dict
fix_kappa: list = []
ladder: list = None
ladder_kappa_p: bool = False
restraints: list = []
start: dict
dependent: str = None
out: str = 'multipole_fit'
maps: list = []
pyextal.jaxMultipole.settings.default_ladder(model, fix_kappa=(), kappa_p=False)

The nested sequence of refinements described in the module docs.