Quantity¶
- class openmm.unit.quantity.Quantity(value=None, unit=None)¶
Physical quantity, such as 1.3 meters per second.
Quantities contain both a value, such as 1.3; and a unit, such as ‘meters per second’.
- Supported value types include:
1 - numbers (float, int, long) 2 - lists of numbers, e.g. [1,2,3] 3 - tuples of numbers, e.g. (1,2,3)
Note - unit conversions will cause tuples to be converted to lists
4 - lists of tuples of numbers, lists of lists of … etc. of numbers 5 - numpy.arrays
- __init__(value=None, unit=None)¶
Create a new Quantity from a value and a unit.
- Parameters
value: (any type, usually a number) Measure of this quantity
unit: (Unit) the physical unit, e.g. openmm.unit.meters.
Methods
__init__
([value, unit])Create a new Quantity from a value and a unit.
append
(item)count
(item)extend
(rhs)format
(format_spec)in_unit_system
(system)Returns a new Quantity equal to this one, expressed in a particular unit system.
in_units_of
(other_unit)Returns an equal Quantity expressed in different units.
index
(item)insert
(index, item)max
(*args, **kwargs)Computes the maximum value of the sequence, with the result having the same unit as the current sequence.
mean
(*args, **kwargs)Computes the mean of a sequence, with the result having the same unit as the current sequence.
min
(*args, **kwargs)Computes the minimum value of the sequence, with the result having the same unit as the current sequence.
pop
(*args)reduce_unit
([guide_unit])Combine similar component units and scale, to form an equal Quantity in simpler units.
remove
(item)reshape
(shape[, order])Same as numpy.ndarray.reshape, except the result is a Quantity with the same units as the current object rather than a plain numpy.ndarray
sqrt
()Returns square root of a Quantity.
std
(*args, **kwargs)Computes the square root of the variance of a sequence, with the result having the same unit as the current sequence.
sum
(*args, **kwargs)Computes the sum of a sequence, with the result having the same unit as the current sequence.
value_in_unit
(unit)Returns underlying value, in the specified units.
value_in_unit_system
(system)Returns the underlying value type, after conversion to a particular unit system.
- __copy__()¶
Shallow copy produces a new Quantity with the shallow copy of value and the same unit. Because we want copy operations to work just the same way they would on the underlying value.
- __deepcopy__(memo)¶
Deep copy produces a new Quantity with a deep copy of the value, and the same unit. Because we want copy operations to work just the same way they would on the underlying value.
- __getattr__(attribute)¶
Delegate unrecognized attribute calls to the underlying value type.
- __str__()¶
Printable string version of this Quantity.
Returns a string consisting of quantity number followed by unit abbreviation.
- __repr__()¶
- __add__(other)¶
Add two Quantities.
Only Quantities with the same dimensions (e.g. length) can be added. Raises TypeError otherwise.
- Parameters
self: left hand member of sum
other: right hand member of sum
Returns a new Quantity that is the sum of the two arguments.
- __sub__(other)¶
Subtract two Quantities.
Only Quantities with the same dimensions (e.g. length) can be subtracted. Raises TypeError otherwise.
- Parameters
self: left hand member (a) of a - b.
other: right hand member (b) of a - b.
Returns a new Quantity that is the difference of the two arguments.
- __eq__(other)¶
- __ne__(other)¶
- reduce_unit(guide_unit=None)¶
Combine similar component units and scale, to form an equal Quantity in simpler units.
Returns underlying value type if unit is dimensionless.
- __mul__(other)¶
Multiply a quantity by another object
Returns a new Quantity that is the product of the self * other, unless the resulting unit is dimensionless, in which case the underlying value type is returned, instead of a Quantity.
- __rmul__(other)¶
Multiply a scalar by a Quantity
Returns a new Quantity with the same units as self, but with the value multiplied by other.
- __truediv__(other)¶
Divide a Quantity by another object
Returns a new Quantity, unless the resulting unit type is dimensionless, in which case the underlying value type is returned.
- __div__(other)¶
Divide a Quantity by another object
Returns a new Quantity, unless the resulting unit type is dimensionless, in which case the underlying value type is returned.
- __rtruediv__(other)¶
Divide a scalar by a quantity.
Returns a new Quantity. The resulting units are the inverse of the self argument units.
- __rdiv__(other)¶
Divide a scalar by a quantity.
Returns a new Quantity. The resulting units are the inverse of the self argument units.
- __pow__(exponent)¶
Raise a Quantity to a power.
Generally both the value and the unit of the Quantity are affected by this operation.
Returns a new Quantity equal to self**exponent.
- sqrt()¶
Returns square root of a Quantity.
Raises ArithmeticError if component exponents are not even. This behavior can be changed if you present a reasonable real life case to me.
- sum(*args, **kwargs)¶
Computes the sum of a sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError (same behavior as if you tried to iterate over, for instance, an integer).
This function can take as arguments any arguments recognized by numpy.sum. If arguments are passed to a non-numpy array, a TypeError is raised
- mean(*args, **kwargs)¶
Computes the mean of a sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError
This function can take as arguments any arguments recognized by numpy.mean. If arguments are passed to a non-numpy array, a TypeError is raised
- std(*args, **kwargs)¶
Computes the square root of the variance of a sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError
This function can take as arguments any arguments recognized by numpy.std. If arguments are passed to a non-numpy array, a TypeError is raised
- max(*args, **kwargs)¶
Computes the maximum value of the sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError
This function can take as arguments any arguments recognized by numpy.max. If arguments are passed to a non-numpy array, a TypeError is raised
- min(*args, **kwargs)¶
Computes the minimum value of the sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError
This function can take as arguments any arguments recognized by numpy.min. If arguments are passed to a non-numpy array, a TypeError is raised
- reshape(shape, order='C')¶
Same as numpy.ndarray.reshape, except the result is a Quantity with the same units as the current object rather than a plain numpy.ndarray
- __abs__()¶
Return absolute value of a Quantity.
The unit is unchanged. A negative value of self will result in a positive value in the result.
- __pos__()¶
Returns a reference to self.
- __neg__()¶
Negate a Quantity.
Returns a new Quantity with a different sign on the value.
- __nonzero__()¶
Returns True if value underlying Quantity is zero, False otherwise.
- value_in_unit(unit)¶
Returns underlying value, in the specified units.
- value_in_unit_system(system)¶
Returns the underlying value type, after conversion to a particular unit system.
- in_unit_system(system)¶
Returns a new Quantity equal to this one, expressed in a particular unit system.
- in_units_of(other_unit)¶
Returns an equal Quantity expressed in different units.
If the units are the same as those in self, a reference to self is returned. Raises a TypeError if the new unit is not compatible with the original unit.
- The post_multiply argument is used in case the multiplication operation is not commutative.
i.e. result = factor * value when post_multiply is False and result = value * factor when post_multiply is True
- __len__()¶
Return size of internal value type.
- __getitem__(key)¶
Keep the same units on contained elements.