From 86d0af388e2548adcae9df6a7a2d770d4efc520a Mon Sep 17 00:00:00 2001
From: github-actions
To improve the user experience and open the doors for new features in the future, we are considering adding a third abstraction for absolute quantities. In terms of properties, an absolute quantity will lie between points and deltas.
@@ -2661,7 +2670,7 @@ an absolute quantity will lie between points and deltas.As we can see above, absolute quantities have only two limitations, and both are connected to the offset units' usage. They can't use those because they must remain absolute instead of being measured relative to some custom origin.
-It is also vital to notice that there will be no way to provide a custom origin for
-absolute quantities, even if it is defined in terms of absolute_point_origin
. Those
-quantities are meant to model abstractions with well-established and unambiguous zero
-origins. If we allow passing absolute point origins, we could define two quantities
-of the same type measured according to different not-related origins, which would be
-too confusing.
The above also allows us to print them, as we do not need any special text to describe -their origin.
+Absolute quantities could be considered delta quantities that represent a whole +-- the entire entity being measured. This is why we can represent a system mass by adding +absolute masses of all system elements or a system energy by adding absolute +temperatures of all the system elements.
+As those are more related to deltas than points, it is impossible to specify their origin +points. This also allows us to print them, as we do not need any special text to describe +their origin as they are always measured against nothing/void.
As I mentioned in my previous post,
we are seriously considering removing quantity_point
class template and replacing it with
a quantity_spec
point wrapper. For example, quantity_point<isq::altitude[m]>
will become
quantity<point<isq::altitude[m]>>
.
I initially planned quantity<isq::mass>
to be the same as quantity<delta<isq::mass>>
,
-but it turns out that deltas probably should not be the default. It is consistent with how we
-write physical expressions on paper, right? Delta symbol (∆) is always "verbose"
-in our equations, it would be nice for the C++ code to do the same. So, deltas will always
+but it turns out that deltas probably should not be the default. It is consistent with how
+we write physical expressions on paper, right? Delta symbol (∆) is always "verbose"
+in physical equations, it would be nice for the C++ code to do the same. So, deltas will always
need to be explicit.
And this brings us to absolute quantities. They should actually be the default we are looking for. This is what we write as quantities in most of the physical equations. This is why we @@ -2732,16 +2740,15 @@ will not need any specifier to denote them.
Affine space arithmetic is well-defined. However, we are adding a new type to the library that lands between points and deltas. This is why we must agree on the arithmetic for all possible combinations.
-Let's try to define them here, assuming that points and absolute values share -a common origin.
-Note
-If points and absolute values do not share a common absolute point origin -the operation should fail to compile.
-In case of addition, a more constrained type is preserved (except for adding two points, -which is undefined):
+Absolute quantities are deltas against nothing so adding them to a point yields another point.
+Adding a delta to them yields a delta, as a delta may represent only a part of something and +a whole, and a part is not a whole. The delta may also be negative and greater +than the absolute quantity, which may yield a negative value. This is why delta is a good +result here.
+Only adding whole non-negative entities of the system yields a system being expressed as +an entire non-negative entity. This is why adding absolute quantities results in an absolute +quantity.
Absolute | Point | Absolute | -Absolute | +Delta |
Delta | Point | -Absolute | +Delta | Delta |
Subtraction is more tricky. To verify the logic below, it might be helpful to ask whether -a result may be negative when two arguments are non-negative. If the answer is true, -the result should be a delta quantity.
+Similarly, during subtraction, regular affine space arithmetics for deltas apply. +Subtracting an absolute quantity from a point yields a point, and trying to do the opposite +does not make physical sense.
+Subtracting two non-negative absolute quantities may yield a negative value if we subtract +a larger one from the smaller one, so the result should be a delta. A similar result +may be obtained by subtracting a delta from absolute quantity or absolute quantity from a delta.
Absolute | +Delta | Delta | -Absolute | |
Delta | @@ -2806,29 +2816,71 @@ the result should be a delta quantity.
Info
+Based on the above assumptions, one of the lines of the below code can't compile:
+ +Let's consider a room with a table and two glasses filled with fluid on top of it. +Let's also assume that we want to stack one on top of the other and treat them as a system +we observe.
+// absolute quantities
+quantity<isq::height[cm]> glass1_height = 20 * cm;
+quantity<isq::height[cm]> glass2_height = 15 * cm;
+
+// delta quantities
+quantity<delta<isq::height>[cm]> fluid_level = 16 * cm;
+
+// point quantities
+inline constexpr struct floor_level final : absolute_point_origin<isq::height> floor_level;
+quantity<point<isq::height[cm], floor_level>> table_top = floor_level + 1 * m;
+// quantity<point<isq::height[cm]>> glass1_top(glass1_height); // point against nothing (no length)
+
+// absolute results
+quantity system_height = glass1_height + glass2_height;
+
+// delta results
+quantity empty_height_res = glass1_height - fluid_level;
+quantity glass2_height_res = system_height - glass1_height; // could result in an absolute quantity
+assert(glass2_height_res == glass2_height);
+quantity height_diff_res = glass2_height - glass1_height; // but this one should definitely return delta
+
+// point results
+quantity<point<isq::height[cm], floor_level>> glass1_top = table_top + glass1_height;
+quantity point1 = glass1_top - glass1_height;
+assert(point1 == table_top);
+// quantity point2 = glass1_height - glass1_top; // no sense - does not compile
+
The new syntax simplifies API as one quantity
class template will now serve all quantity
variations (possibly even more in the future). It also allows us to model quantities that
were impossible to express before without some workarounds.
For example, we can now correctly calculate Carnot engine efficiency with any of the following:
-quantity temp_cold = 300. * K;
-quantity temp_hot = 500. * K;
-quantity carnot_eff_1 = 1. - temp_cold / temp_hot;
-quantity carnot_eff_2 = (temp_hot - temp_cold) / temp_hot;
+quantity temp_cold = 300. * K;
+quantity temp_hot = 500. * K;
+quantity carnot_eff_1 = 1. - temp_cold / temp_hot;
+quantity carnot_eff_2 = (temp_hot - temp_cold) / temp_hot;
In the above code, we can easily create absolute or delta values of temperatures and do
arithmetics on them. Previously, we had to create deltas from both points artificially
with:
-quantity temp_cold = point<K>(300.);
-quantity temp_hot = point<K>(500.);
-quantity carnot_eff_1 = 1. - temp_cold.quantity_from_zero() / temp_hot.quantity_from_zero();
-quantity carnot_eff_2 = (temp_hot - temp_cold) / temp_hot.quantity_from_zero();
+quantity temp_cold = point<K>(300.);
+quantity temp_hot = point<K>(500.);
+quantity carnot_eff_1 = 1. - temp_cold.quantity_from_zero() / temp_hot.quantity_from_zero();
+quantity carnot_eff_2 = (temp_hot - temp_cold) / temp_hot.quantity_from_zero();
It worked but was far from being physically pure and pretty.
Summary¶
-We believe that adding absolute quantities will be a major improvement in the library that
-will allow us to more correctly model physical equations making them terser and easier to
-understand at the same time.
+We believe that adding absolute quantities will be a significant improvement in the library
+that will allow us to model physical equations in a terser, more correct, easier to
+write, understand, and maintain way.
We plan to deliver the features mentioned in this post as a part of mp-units V3.
Please share your feedback.
diff --git a/HEAD/blog/absolute-quantities.jpeg b/HEAD/blog/absolute-quantities.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..7825448163183dc02c501421bec57ba4558eab91
GIT binary patch
literal 111040
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