jaxdem.utils.jamming#
Jamming routines. https://doi.org/10.1103/PhysRevE.68.011306
Functions
|
Find the nearest jammed state for a given state and system. |
- jaxdem.utils.jamming.bisection_jam(state: State, system: System, n_minimization_steps: int = 1000000, pe_tol: float = 1e-16, pe_diff_tol: float = 1e-16, n_jamming_steps: int = 10000, packing_fraction_tolerance: float = 1e-10, packing_fraction_increment: float = 0.001) Tuple[State, System][source][source]#
Find the nearest jammed state for a given state and system. Uses bisection search with state reversion. :param state: The state to jam. :type state: State :param system: The system to jam. :type system: System :param n_minimization_steps: The number of steps to take in the minimization. Should be large. Typically 1e6. :type n_minimization_steps: int, optional :param pe_tol: The tolerance for the potential energy. Should be very small. Typically 1e-16. :type pe_tol: float, optional :param pe_diff_tol: The tolerance for the difference in potential energy across subsequent steps. Should be very small. Typically 1e-16. :type pe_diff_tol: float, optional :param n_jamming_steps: The number of steps in the jamming loop. Typically 1e3. :type n_jamming_steps: int, optional :param packing_fraction_tolerance: The tolerance for the packing fraction to determine convergence. Typically 1e-10 :type packing_fraction_tolerance: float, optional :param packing_fraction_increment: The initial increment for the packing fraction. Typically 1e-3. Larger increments make it faster in the unjammed region, but makes minimization of the earliest detected jammed states take much longer. :type packing_fraction_increment: float, optional