Skip to content

Commit 3021b13

Browse files
committed
docs: isq::acceleration_of_free_fall usage added to the "Custom Quanity Specifications" chapter
1 parent 6cfd154 commit 3021b13

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

docs/workshops/extensions/custom_quantity_specifications.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ flowchart TD
7878
mechanical_energy --- motor_energy["<b>motor_energy</b><br><i>(isq::mechanical_energy / motor_efficiency)</i>"]
7979
8080
potential_energy["<b>isq::potential_energy</b><br>[J]"]
81-
potential_energy --- gravitational_potential_energy["<b>gravitational_potential_energy</b><br><i>(isq::mass * isq::acceleration * isq::height)</i>"]
81+
potential_energy --- gravitational_potential_energy["<b>gravitational_potential_energy</b><br><i>(isq::mass * isq::acceleration_of_free_fall * isq::height)</i>"]
8282
```
8383

8484
!!! tip
@@ -131,8 +131,8 @@ constexpr quantity<qs::total_mass[kg]> total_mass(quantity<qs::cabin_mass[kg]> c
131131
constexpr quantity<qs::gravitational_potential_energy[J]> lifting_energy(quantity<qs::total_mass[kg]> mass,
132132
quantity<qs::travel_height[m]> height)
133133
{
134-
constexpr quantity g = isq::acceleration(1 * si::standard_gravity);
135-
return mass * g * height;
134+
constexpr quantity g0 = isq::acceleration_of_free_fall(1 * si::standard_gravity);
135+
return mass * g0 * height;
136136
}
137137

138138
constexpr quantity<isq::kinetic_energy[J]> acceleration_energy(quantity<qs::total_mass[kg]> mass,
@@ -210,7 +210,7 @@ int main()
210210
inline constexpr struct cruising_speed final : quantity_spec<isq::speed> {} cruising_speed;
211211
inline constexpr struct motor_efficiency final : quantity_spec<isq::mechanical_efficiency> {} motor_efficiency;
212212
inline constexpr struct motor_energy final : quantity_spec<isq::mechanical_energy, isq::mechanical_energy / motor_efficiency> {} motor_energy;
213-
inline constexpr struct gravitational_potential_energy final : quantity_spec<isq::potential_energy, isq::mass * isq::acceleration * isq::height> {} gravitational_potential_energy;
213+
inline constexpr struct gravitational_potential_energy final : quantity_spec<isq::potential_energy, isq::mass * isq::acceleration_of_free_fall * isq::height> {} gravitational_potential_energy;
214214
215215
}
216216
@@ -229,14 +229,14 @@ int main()
229229
}
230230
231231
constexpr quantity<qs::gravitational_potential_energy[J]> lifting_energy(quantity<qs::total_mass[kg]> mass,
232-
quantity<qs::travel_height[m]> height)
232+
quantity<qs::travel_height[m]> height)
233233
{
234-
constexpr quantity g = isq::acceleration(1 * si::standard_gravity);
235-
return mass * g * height;
234+
constexpr quantity g0 = isq::acceleration_of_free_fall(1 * si::standard_gravity);
235+
return mass * g0 * height;
236236
}
237237
238238
constexpr quantity<isq::kinetic_energy[J]> acceleration_energy(quantity<qs::total_mass[kg]> mass,
239-
quantity<qs::cruising_speed[m/s]> speed)
239+
quantity<qs::cruising_speed[m/s]> speed)
240240
{
241241
return 0.5 * mass * pow<2>(speed);
242242
}
@@ -322,14 +322,14 @@ int main()
322322
```cpp
323323
// Gravitational potential energy: E_p = m * g * h
324324
inline constexpr struct gravitational_potential_energy final :
325-
quantity_spec<isq::mass * isq::acceleration * isq::height> {} gravitational_potential_energy;
325+
quantity_spec<isq::mass * isq::acceleration_of_free_fall * isq::height> {} gravitational_potential_energy;
326326
327327
// Type-checked dimensional analysis!
328328
quantity energy =
329-
gravitational_potential_energy(total_mass(1200 * kg) * isq::acceleration(1 * si::standard_gravity) * travel_height(30 * m));
329+
gravitational_potential_energy(total_mass(1200 * kg) * isq::acceleration_of_free_fall(1 * si::standard_gravity) * travel_height(30 * m));
330330
```
331331
332-
The equation form `mass * acceleration * height`:
332+
The equation form `mass * acceleration_of_free_fall * height`:
333333
334334
- Makes the physics explicit in the type system
335335
- Ensures correct ingredients are used in calculations
@@ -420,7 +420,7 @@ int main()
420420
- **Self-documenting APIs**: Function signatures clearly communicate what kind of
421421
quantity each parameter expects
422422
- **Equation-based specifications**: Using equation forms like
423-
`isq::mass * isq::acceleration * isq::height` for `gravitational_potential_energy`
423+
`isq::mass * isq::acceleration_of_free_fall * isq::height` for `gravitational_potential_energy`
424424
makes the physics explicit in the type system and requires correct ingredients
425425
to be used in a quantity equation to get the desired outcome
426426
- **Practical applications**: Valuable in motor sizing (cabin/passenger/total mass),

0 commit comments

Comments
 (0)