polymerist.unitutils ==================== .. py:module:: polymerist.unitutils .. autoapi-nested-parse:: Physical constants, dimensional analysis, and unit conversion utilities Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/polymerist/unitutils/dimensions/index /autoapi/polymerist/unitutils/extraunits/index /autoapi/polymerist/unitutils/physconsts/index /autoapi/polymerist/unitutils/unitstr/index Exceptions ---------- .. autoapisummary:: polymerist.unitutils.MissingUnitsError Functions --------- .. autoapisummary:: polymerist.unitutils.hasunits polymerist.unitutils.strip_units polymerist.unitutils.is_volume polymerist.unitutils.quantities_approx_equal Package Contents ---------------- .. py:exception:: MissingUnitsError Bases: :py:obj:`Exception` Common base class for all non-exit exceptions. .. py:function:: hasunits(obj: Any) -> bool Naive but effective way of checking for pint and openmm units .. py:function:: strip_units(coords: Union[T, pint.Quantity, openmm.unit.Quantity]) -> Union[T, numpy.ndarray[Any]] Sanitize coordinate tuples for cases which require unitless quantities Specifically needed since OpenMM and pint each have their own Quantity and Units classes .. py:function:: is_volume(unitlike: Union[Unit, Quantity]) -> bool Check whether a Unit or Quantity dimensionally corresponds to a volume Accepts both OpenMM-style and Pint-style unit-like objects .. py:function:: quantities_approx_equal(quantity_expected: Quantity, quantity_actual: Quantity, rel_tol: float = 1e-08) -> bool Check whether two Quantity objects with compatible dimensions are equal to within some set relative error (default 1E-8) Accepts both OpenMM-style and Pint-style quantity-like objects