Imagine a distribution $\rho(\mathbf{x})$ over the domain $\mathbf{x} \in X \subset \mathbb{R}^n.$ Sampling algorithms are answers to the question: Given that we do not have exact knowledge of the functional form of $\rho,$ can we nonetheless generate samples from $\rho?$ In particular, Markov Chain Monte Carlo algorithm is a sampling algorithm that only requires the knowledge of relative likelihood of two samples $\mathbf{x}_1$ and $\mathbf{x}_2$ drawn from the distribution $\rho,$ i.e. knowledge of ${\rm Likelihood} = \rho(\mathbf{x}_1) / \rho(\mathbf{x}_2)).$Hamiltonian Monte Carlo algorithm is another such sampling algorithm that further requires the knowledge of (a priori or empirically by differentiable ``code'') the gradient of the likelihood.
Numerous Physical problems can benefit from sampling algorithms. These range from (Classical and Quantum) many-body problems to data analysis for large scale Physics experiments (LIGO, CERN).
to package our own Markov Chain Monte Carlo algorithm and existing Hamiltonian Monte Carlo algorithm from blackjax library into a single class interface, and
to demonstrate the ease of use of out interface and the utility of the sampling algorithms via the following examples of,
Phase transition in soft sphere packing correlation function with lowering temperature
Phase transition in 1D Quantum spin chain with increasing parameter "p" of the Hamiltonian (characterizes the Bell-state property of a local term in the Hamiltonian)
Posterior distribution for the hyperparameters of a population model computed by performing hierarchical inference on samples from every confident LIGO binary black hole detection
Phase transition in spin glasses upon decreasing temperature, reflected in both - the Edwards Anderson Order parameter and the rugged energy landscapes
Phase transition in 2D Ising model upon decreasing temperature