.. _api:
===
API
===
The complete public API is auto-generated from docstrings by
`sphinx-autoapi `_.
The package is **pure Python** with a single runtime dependency:
`NumPy `_.
.. icons: https://fonts.google.com/icons
.. grid:: 2
.. grid-item-card:: :material-outlined:`place;3em` Foundation
:link: autoapi/ad_hoc_diffractometer/constants/index
:link-type: doc
Core constants, rotation mathematics, and display formatting.
:mod:`~ad_hoc_diffractometer.constants` ·
:mod:`~ad_hoc_diffractometer.rotation` ·
:mod:`~ad_hoc_diffractometer.display`
.. grid-item-card:: :material-outlined:`settings_input_component;3em` Geometry Primitives
:link: autoapi/ad_hoc_diffractometer/stage/index
:link-type: doc
Axis parsing and individual rotation stages.
:mod:`~ad_hoc_diffractometer.axes` ·
:mod:`~ad_hoc_diffractometer.stage`
.. grid-item-card:: :material-outlined:`grain;3em` Crystallography
:link: autoapi/ad_hoc_diffractometer/lattice/index
:link-type: doc
Lattice, reflections, sample, and radiation source.
:mod:`~ad_hoc_diffractometer.lattice` ·
:mod:`~ad_hoc_diffractometer.reflection` ·
:mod:`~ad_hoc_diffractometer.sample` ·
:mod:`~ad_hoc_diffractometer.radiation`
.. grid-item-card:: :material-outlined:`precision_manufacturing;3em` Diffractometer
:link: autoapi/ad_hoc_diffractometer/diffractometer/index
:link-type: doc
Geometry class, diffraction modes, and predefined geometry factories.
:mod:`~ad_hoc_diffractometer.diffractometer` ·
:mod:`~ad_hoc_diffractometer.mode` ·
:mod:`~ad_hoc_diffractometer.factories`
.. grid-item-card:: :material-outlined:`calculate;3em` Calculations
:link: autoapi/ad_hoc_diffractometer/orientation/index
:link-type: doc
Orientation, forward problem, Q/energy conversions, trajectories,
surface diffraction, and lattice refinement.
:mod:`~ad_hoc_diffractometer.orientation` ·
:mod:`~ad_hoc_diffractometer.forward` ·
:mod:`~ad_hoc_diffractometer.conversions` ·
:mod:`~ad_hoc_diffractometer.surface` ·
:mod:`~ad_hoc_diffractometer.scan` ·
:mod:`~ad_hoc_diffractometer.refinement`
.. grid-item-card:: :material-regular:`api;3em` Full Module Index
:link: autoapi/ad_hoc_diffractometer/index
:link-type: doc
Every public module, class, function, and constant,
auto-generated from source docstrings.
Module Dependency Graph
-----------------------
The diagram below shows how the source modules depend on each other.
Arrows point from a module to the modules it imports.
Modules are grouped by layer.
.. graphviz::
:caption: ad_hoc_diffractometer module dependencies
:align: center
digraph deps {
graph [rankdir=TB, fontname="sans-serif", fontsize=11,
bgcolor="transparent", splines=ortho, nodesep=0.4, ranksep=0.6]
node [shape=box, style="rounded,filled", fontname="sans-serif",
fontsize=10, margin="0.15,0.08"]
edge [color="#555555", arrowsize=0.7]
// ── Foundation (grey) ──────────────────────────────────
subgraph cluster_foundation {
label="Foundation"
style=filled fillcolor="#f0f0f0" color="#aaaaaa"
fontname="sans-serif" fontsize=11
constants [label="constants" fillcolor="#e0e0e0"]
rotation [label="rotation" fillcolor="#e0e0e0"]
display [label="display" fillcolor="#e0e0e0"]
}
// ── Geometry primitives (blue) ──────────────────────────
subgraph cluster_primitives {
label="Geometry Primitives"
style=filled fillcolor="#ddeeff" color="#6699cc"
fontname="sans-serif" fontsize=11
axes [label="axes" fillcolor="#c8dff8"]
stage [label="stage" fillcolor="#c8dff8"]
}
// ── Crystallography (green) ─────────────────────────────
subgraph cluster_crystal {
label="Crystallography"
style=filled fillcolor="#ddf0dd" color="#66aa66"
fontname="sans-serif" fontsize=11
lattice [label="lattice" fillcolor="#c0e8c0"]
reflection [label="reflection" fillcolor="#c0e8c0"]
sample [label="sample" fillcolor="#c0e8c0"]
radiation [label="radiation" fillcolor="#c0e8c0"]
}
// ── Diffractometer (amber) ──────────────────────────────
subgraph cluster_diffractometer {
label="Diffractometer"
style=filled fillcolor="#fff3cc" color="#ccaa00"
fontname="sans-serif" fontsize=11
mode [label="mode" fillcolor="#ffe999"]
diffractometer [label="diffractometer" fillcolor="#ffe999"]
factories [label="factories" fillcolor="#ffe999"]
}
// ── Calculations (orange) ───────────────────────────────
subgraph cluster_calculations {
label="Calculations"
style=filled fillcolor="#ffe8d6" color="#cc7733"
fontname="sans-serif" fontsize=11
orientation [label="orientation" fillcolor="#ffd0b0"]
forward [label="forward" fillcolor="#ffd0b0"]
conversions [label="conversions" fillcolor="#ffd0b0"]
surface [label="surface" fillcolor="#ffd0b0"]
scan [label="scan" fillcolor="#ffd0b0"]
refinement [label="refinement" fillcolor="#ffd0b0"]
}
// ── Edges ───────────────────────────────────────────────
// Foundation
axes -> constants
stage -> rotation
// Crystallography
lattice -> display
reflection -> display
sample -> lattice
sample -> reflection
// Diffractometer
diffractometer -> axes [style=dashed]
diffractometer -> constants
diffractometer -> display [style=dashed]
diffractometer -> forward [style=dashed]
diffractometer -> lattice [style=dashed]
diffractometer -> mode [style=dashed]
diffractometer -> orientation [style=dashed]
diffractometer -> radiation [style=dashed]
diffractometer -> reflection
diffractometer -> rotation [style=dashed]
diffractometer -> sample [style=dashed]
diffractometer -> stage [style=dashed]
diffractometer -> surface [style=dashed]
factories -> axes
factories -> constants
factories -> diffractometer
factories -> mode
factories -> stage
// Calculations
orientation -> reflection
orientation -> rotation
orientation -> stage
forward -> display [style=dashed]
forward -> diffractometer [style=dashed]
forward -> mode
forward -> orientation
conversions -> sample
surface -> diffractometer [style=dashed]
scan -> diffractometer [style=dashed]
scan -> rotation
refinement -> lattice
refinement -> orientation
refinement -> reflection
refinement -> rotation
}
.. note::
Dashed arrows indicate that the import is deferred (inside a function
body or guarded by ``TYPE_CHECKING``) to avoid circular imports.
Full Module Reference
---------------------
.. toctree::
:maxdepth: 1
autoapi/ad_hoc_diffractometer/index