Measures Reference
This page is the measure quick reference for the current PILOTS source tree.
It is organized by measure family and should be updated in the same commit as the
corresponding C++ files under src/measures/.
For each measure or family, the page records:
source file(s)
required input fields and topology dependencies
important config keys
output columns
physical meaning
typical use cases
Common conventions
Static selection and identity
Most time-correlation and displacement measures require:
a static selection (configured by
group,topo_groupandcombine)identity-consistent frames, i.e. the same canonical particle ordering across frames
Frame-window controls
Many measures support:
frame_start/frame_end: analysis window in frame index spaceremove_drift/drift_group: subtract COM drift before evaluating displacementscomponents: choosexx,yy,zz,xxyy,xxzz,yyzz, orxxyyzz
Common list-valued parameters
q_values: wave-vector magnitudesa_values: overlap cutoff radiip_values: Rouse mode indiceswaiting_frames/lag_frames: explicit waiting-time and lag grids for two-time observables
MSD and single-particle glassy dynamics
src/measures/RegisterMSD.cpp
msd
- Required fields
xu,yu,zu- Dependencies
static selection; identity-consistent frames; optional static
drift_group- Outputs
lag, time, tensor components, count-pairs, SEM, block statistics
- Physical meaning
Mean-squared displacement (or selected Cartesian tensor block) averaged over time origins.
- Typical use
Diffusion, caging, subdiffusion, anisotropic transport.
src/measures/RegisterAlpha2.cpp
alpha2
- Required fields
xu,yu,zu- Dependencies
static selection; identity-consistent frames; optional drift removal; 1D correlator infrastructure
- Outputs
lag, time, \(\langle r^2\rangle\), \(\langle r^4\rangle\), \(\alpha_2\), count-pairs, SEM
- Physical meaning
Non-Gaussian parameter for self displacements.
- Typical use
Detect departure from Gaussian diffusion, caging-to-hopping crossover, dynamic heterogeneity onset.
src/measures/RegisterScattering.cpp
self_isf
- Required fields
xu,yu,zu- Dependencies
static selection; identity-consistent frames; optional drift removal;
q_values- Outputs
lag, time, q, \(F_s(q,t)\), count-pairs, SEM
- Physical meaning
Isotropic self intermediate scattering function.
chi4_overlap
- Required fields
xu,yu,zu- Dependencies
static selection; identity-consistent frames; optional drift removal;
a_values- Outputs
lag, time, a, \(Q\), \(Q^2\), \(\chi_4\), count-pairs, SEM
- Physical meaning
Four-point susceptibility based on the overlap indicator.
chi4_isf
- Required fields
xu,yu,zu- Dependencies
static selection; identity-consistent frames; optional drift removal;
q_values- Outputs
lag, time, q, \(\overline F_s\), \(\overline{F_s^2}\), \(\chi_4^{F_s}\)
- Physical meaning
Four-point susceptibility built from the self ISF amplitude.
src/measures/RegisterTwoTime.cpp
This file implements aging / two-time observables. These are needed when the system is not stationary and the observable depends on both the waiting time \(t_w\) and the lag \(\tau\).
The family uses an explicit waiting-time grid and does not collapse over all time origins like a stationary correlator. Common keys are:
waiting_framesorwaiting_start_frame/waiting_end_frame/waiting_stride_frameswaiting_window_frames: number of consecutive origins averaged inside each waiting-time binorigin_stride_frames: subsampling stride inside the waiting-time binlag_framesormax_lag_frames/lag_stride_framesfinite
frame_endis required; follow mode is intentionally rejected
msd_tw
- Outputs
waiting frame, waiting timestep, waiting time, lag in frames and timesteps, lag time, two-time MSD, SEM across origins inside the waiting-time bin, number of origins
fs_tw
- Additional key
q_values- Outputs
waiting frame/time, lag frame/time, q, \(F_s(q;t_w,\tau)\), SEM, number of origins
q_tw
- Additional key
a_values- Outputs
waiting frame/time, lag frame/time, a, \(Q(t_w,\tau)\), SEM, number of origins
chi4_tw
- Additional keys
a_valuesandwaiting_window_frames >= 2- Outputs
waiting frame/time, lag frame/time, a, \(Q\), \(Q^2\), \(\chi_4(t_w,\tau)\), SEM of \(Q\), number of origins in the waiting-time bin
- Physical meaning
Waiting-time-resolved fluctuation amplitude of the overlap field.
waiting_time_scan
- Additional key
observable = msd|fs|q|chi4- Meaning
Convenience front-end that reuses the same kernels as
msd_tw,fs_tw,q_tworchi4_twwhile keeping a single config style for waiting-time scans.
Polymer dynamics and static chain measures
src/measures/RegisterPolymerDynamics.cpp
g1
- Required fields
xu,yu,zu- Dependencies
static selection; identity-consistent frames; optional drift removal
g2
- Additional dependencies
chain membership from
chain_id_fieldormolor topology bonds
g3
- Additional dependencies
chain membership from
chain_id_fieldormolor topology bonds
rouse
- Additional dependencies
chain membership plus linear chain ordering from
chain_pos_fieldor topology bonds- Additional key
p_values- Outputs
lag, time, mode index, \(C_p(t)\), normalized \(C_p(t)/C_p(0)\)
src/measures/RegisterPolymerStatics.cpp
rg_ree
- Dependencies
linear chain ordering from
chain_pos_fieldor topology bonds- Outputs
frame, time, \(\langle R_g^2\rangle\), \(\langle R_g\rangle\), \(\langle R_{ee}^2\rangle\), \(\langle R_{ee}\rangle\)
Structure and van Hove family
src/measures/RegisterStructure.cpp
rdf
- Required fields
xu,yu,zu- Dependencies
static selection; optional second group
group_b/topo_group_b/combine_b- Outputs
r-bin, shell volume, \(g(r)\), cumulative coordination number
static_structure_factor / sq_static
dynamic_structure_factor / coherent_isf
- Outputs
lag, time, q, coherent \(F(q,t)\), self part \(F_s(q,t)\), distinct part \(F_d(q,t)\)
van_hove_self and van_hove_distinct
- Outputs
lag, time, radial bin, shell-averaged \(G_s(r,t)\) or \(G_d(r,t)\)
Dielectric and orientation / relaxation family
src/measures/RegisterDielectric.cpp
bulk_dielectric
- Required fields
xu,yu,zu, charge field (defaultq)- Dependencies
entity grouping from
entity_id_fieldormolor topology bonds; temperature and unit metadata- Meaning
Classic neutral-entity dipole-fluctuation dielectric. Use this when grouped entities are approximately neutral.
- Outputs
per-component permittivity and isotropic average
bulk_fragment_dielectric
- Additional keys
charge_model = fragment_internal(default for this alias),entity_reference = geometric|mass- Meaning
Conduction-blocked charged-mixture dielectric built from fragment-internal dipoles
This yields a finite, origin-invariant entity-internal polarization even when grouped fragments carry net charge. It is useful as a charged-mixture surrogate/background-polarization dielectric, but should not be confused with the full zero-frequency static dielectric of a conducting electrolyte.
slab_dielectric / layered_dielectric
- Additional keys
axisandn_bins- Outputs
slab coordinate, \(\varepsilon_\parallel(z)\), \(\varepsilon_\perp(z)\) and related susceptibilities
slab_fragment_dielectric / layered_fragment_dielectric
- Additional keys
charge_model = fragment_internal(default for this alias),entity_reference = geometric|massand the slab-workflow keysslab_align_recenter,halfcell_fold,target_center_frac,anchor_group/anchor_topo_group/anchor_combine.- Meaning
Charged-mixture, fragment-internal layered dielectric. This is the finite, conduction-blocked local dielectric surrogate for systems where grouped entities may carry net charge.
slab_bg_dielectric / layered_bg_dielectric
- Additional keys
species_groups(comma-separated static groups to resolve),background_groups(comma-separated subset whose sum defines the background polarization; defaults tospecies_groups), plus the sameentity_referenceand slab-workflow keys used byslab_fragment_dielectric.- Meaning
Species-resolved background-polarization layered dielectric inspired by local polarization-density fluctuation methods. The measure constructs species-resolved fragment-internal polarization fields, sums the requested
background_groupsinto a total background polarization, and outputs both the total background dielectric and per-species susceptibility contributions.- Outputs
For each slab bin, one
TOTAL_BGrow plus one row per species group. The total row contains \(\varepsilon_\parallel^{\mathrm{bg}}(z)\) and \(\varepsilon_\perp^{\mathrm{bg}}(z)\). Species rows contain their partial covariances and susceptibility contributions with respect toTOTAL_BG.
The TOTAL_BG row then reports \(\varepsilon_\parallel^{\mathrm{bg}}(z)=1+\chi_{\parallel}^{\mathrm{bg}}(z)\)
and \(\varepsilon_\perp^{\mathrm{bg}}(z)=1/[1-\chi_{\perp}^{\mathrm{bg}}(z)]\).
src/measures/RegisterOrientation.cpp
bond_vector_acf
- Dependencies
topology bonds
segment_reorientation
- Dependencies
ordered chains from
chain_pos_fieldor topology bonds
ring_normal_acf
- Dependencies
ring identifiers via
ring_id_field
dipole_acf and dielectric_spectrum
- Dependencies
entity grouping from
entity_id_fieldormolor topology bonds, plus charge field- Outputs
lag-resolved orientational or dipolar ACFs; for
dielectric_spectrumalso frequency-domain spectrum- Physical meaning
Rotational relaxation, segmental reorientation, ring-plane relaxation, dielectric loss.
The common orientational kernel is
For the total dipole family,
Transport family
src/measures/RegisterTransport.cpp
current_acf / conductivity_gk
- Required fields
charge field and a vector field triplet (for example
vx,vy,vz)- Outputs
lag, time, current ACF tensor block, and Green–Kubo running conductivity
conductivity_einstein / ionic_conductivity_einstein / charge_msd
site_hop_stats / hop_stats
- Required field
discrete
site_field- Outputs
committed transition counts, dwell-time statistics, hop rates
- Physical meaning
State-to-state hopping statistics with persistence filtering.
src/measures/RegisterTransportSpecies.cpp
species_msd
- Required field
integer-like
species_field
diffusion_tensor
- Meaning
Einstein-form diffusion tensor inferred from the species-resolved MSD tensor.
vacf
- Required fields
species field plus vector field triplet
species_current_corr
onsager_transport
transference_number
- Meaning
Transport-number-like quantity constructed from the Einstein-form Onsager matrix block sums. The value is reference-frame dependent and should be interpreted together with the selected drift-removal / frame convention.
Profiles, coordination, and box statistics
src/measures/RegisterOMIEC.cpp
Even though this file was introduced for OMIEC-oriented workflows, the retained measures are all general soft-matter statistics.
profile1d
- Modes
number,charge,mass- Important config keys
axis,n_bins,mode, and, for slab workflows,slab_align_recenter,halfcell_fold,target_center_frac, and optionalanchor_group/anchor_topo_group/anchor_combine.- Outputs
1D bin center, average weight, density in the analysis coordinate. When slab alignment or half-cell folding is enabled, the coordinate reported in the text output is the transformed slab coordinate rather than the raw box axis.
coordination
residence_acf
box_stats / swelling_stats
- Outputs
frame, time, box lengths, box volume, and ratios relative to the first analyzed frame
Insertion and slab-kernel calibration family
src/measures/RegisterInsertionProfiles.cpp
These measures share the same slab-analysis transform used by profile1d:
slab_align_recenterrecenters a slab-like anchor selection totarget_center_fracusing a circular mean in fractional coordinate space.halfcell_foldfolds a periodic electrolyte / OMIEC / electrolyte cell into a single reservoir-to-slab half-cell.
accessibility_profile / probe_accessibility_profile
- Meaning
Probe-radius-dependent accessible-volume fraction profile \(h(z; r_p)\) from hard-core insertion geometry.
- Important config keys
probe_radius,radius_fieldoroccluder_radius,samples_plane,samples_axis,convergence_refine_factor, slab transform keys, and reservoir-window keysreservoir_lo_frac/reservoir_hi_fracwith optional right-window counterparts.- Outputs
Absolute accessibility, SEM across analyzed frames, reservoir-normalized accessibility, \(-\ln[h(z)/h_{\mathrm{res}}]\), and coarse-versus-refined voxel convergence diagnostics.
widom_profile
- Meaning
Total charge-off Widom insertion profile using the configured soft backend.
- Important config keys
All accessibility keys plus
betaandenergy_model. The current public backend supportsnoneand fulllj126pair energies, with optionalsigma_field/epsilon_fieldor constant probe/occluder LJ parameters.
conditional_widom_profile
- Meaning
Mode-A-style decomposition into hard accessibility and conditional charge-off insertion over the accessible region.
- Outputs
Reservoir-referenced hard, conditional, and full charge-off insertion factors; corresponding free-energy profiles; SEM estimates from the per-frame distribution; and a conditional/full identity residual for audit.
Anisotropy, geometry, dynamic heterogeneity, and local structure
src/measures/RegisterAnisotropy.cpp
directional_msd
directional_isf
slab_rdf
- Meaning
Slab-resolved radial structure using a global density normalization.
cylindrical_profile / 2d_map / interface_excess
- Meaning
Direction-resolved density / weight maps and Gibbs-style interfacial excess estimates.
src/measures/RegisterHeterogeneity.cpp
g4_rt, s4_qt, xi4_t
- Meaning
Spatial amplitude and length-scale measures of dynamic heterogeneity.
string_motion / string_length_dist / mobile_cluster
- Meaning
Cooperative motion diagnostics based on mobile-particle connectivity in real space or exchange space.
excitation_map / facilitation_acf
- Meaning
Per-particle excitation propensity and facilitation diagnostics.
src/measures/RegisterLocalStructure.cpp
q4_q6_w6
- Outputs
summary statistics and optional per-particle values for bond-orientational order invariants
locally_favored_structure
- Meaning
Threshold-based classifier over \(q_4\), \(q_6\), \(\hat w_6\), and coordination number.
voronoi_volume
- Meaning
Statistics over an externally supplied Voronoi-volume field.
free_volume
softness_proxy
- Meaning
Transparent linear proxy built from local structural descriptors; not a hidden ML model.
Implementation notes for maintainers
Each measure family lives in one
src/measures/*.cpptranslation unit and registers itself at the bottom.If a new measure shares geometry, chain-ordering, entity-grouping, or integer-field logic, extend
src/measures/MeasureCommon.hpprather than duplicating helpers.Two-time / aging observables should stay separate from the stationary correlator path, because their output is a waiting-time/lag grid rather than a one-dimensional lag-average.