polymerist.unitutils.dimensions =============================== .. py:module:: polymerist.unitutils.dimensions .. autoapi-nested-parse:: For checking dimensionality and presence of units Attributes ---------- .. autoapisummary:: polymerist.unitutils.dimensions.T polymerist.unitutils.dimensions.OpenMMUnitLike polymerist.unitutils.dimensions.PintUnitLike polymerist.unitutils.dimensions.Unit polymerist.unitutils.dimensions.Quantity Exceptions ---------- .. autoapisummary:: polymerist.unitutils.dimensions.MissingUnitsError Functions --------- .. autoapisummary:: polymerist.unitutils.dimensions.hasunits polymerist.unitutils.dimensions.strip_units polymerist.unitutils.dimensions.is_volume polymerist.unitutils.dimensions.quantities_approx_equal Module Contents --------------- .. py:data:: T .. py:data:: OpenMMUnitLike .. py:data:: PintUnitLike .. py:data:: Unit .. py:data:: Quantity .. 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