jaxdem.analysis.kernels#
Kernel typing + small helpers for JAX analysis.
In the JAX engine, kernels are pure functions that operate on arrays directly:
kernel(arrays, t0, t1, **kwargs) -> pytree of arrays
Functions
|
Angular ISF: <cos(θ₀ · Δθ)> |
|
Self intermediate scattering function (isotropic average). |
|
Self ISF for explicit k-vectors: Fs({k}, t) = <cos(k·dr)>. |
|
Mean-squared angular displacement on unwrapped cumulative angle. |
|
Mean-squared displacement. |
|
Convert (T, N, 1) and (T, N, 3) quaternion trajectory to unwrapped cumulative angle (T, N). |
Classes
|
- jaxdem.analysis.kernels.msd_kernel(arrays: Mapping[str, Array], t0: Any, t1: Any) Array[source][source]#
Mean-squared displacement.
Works for both: - pos[t]: (N,d) -> returns () scalar - pos[t]: (S,N,d) -> returns (S,) vector
- jaxdem.analysis.kernels.isf_self_isotropic_kernel(arrays: Mapping[str, Array], t0: Any, t1: Any, *, k: Any) Array[source][source]#
Self intermediate scattering function (isotropic average).
For isotropic averaging: - 2D: Fs(k, t) = < J0(k * |dr|) > - 3D: Fs(k, t) = < sin(k|dr|)/(k|dr|) >
Supports: - pos[t]: (N,d) -> returns () if k scalar else (K,) - pos[t]: (S,N,d)-> returns (S,) if k scalar else (S,K)
- jaxdem.analysis.kernels.isf_self_kvecs_kernel(arrays: Mapping[str, Array], t0: Any, t1: Any, *, kvecs: Array) Array[source][source]#
Self ISF for explicit k-vectors: Fs({k}, t) = <cos(k·dr)>.
- jaxdem.analysis.kernels.unwrap_angles_2d(q_w: Array, q_xyz: Array) Array[source][source]#
Convert (T, N, 1) and (T, N, 3) quaternion trajectory to unwrapped cumulative angle (T, N).