Skip to content

[Usage]: Foundational Astrodynamics Library #769

@iulianojay

Description

@iulianojay

Organization Type

Individual Developer

Organization Name (Optional)

Astrea

Primary Domain/Industry

Aerospace/Aviation

Other Domain (if selected above)

No response

Project Stage

Production/Deployed

Development Team Size

Just me (1)

Use Case Description

I have used the mp-units library as the foundation for open-source astrodynamics library, Astrea. I use it for compile-time checks, unit conversions, unit consistency, and basically every other use the library was designed for. It handles normal orbital and dynamics calculations well enough and can handle the more complex stuff with some massaging. It fits perfectly into my custom Julian date std::chrono clock, and it's taught me a significant amount about some of the unit assumptions I've taken for granted in my calculations. Unit conversion issues are rife in aerospace projects and my tool would not be nearly as capable without mp-units underneath it.

Features Used

  • Basic quantity arithmetic (addition, subtraction, multiplication, division)
  • Unit conversions (m to km, s to h, etc.)
  • Dimensional analysis and compile-time validation
  • Custom units and dimensions
  • Quantity points
  • Text formatting and I/O
  • C++ modules support
  • Interoperability with other libraries
  • SI unit system
  • Other unit systems (CGS, Imperial, etc.)
  • Natural units
  • Freestanding mode

Key Benefits Experienced

  • Eliminated unit conversion errors
  • Easy, library-wide unit consistency to avoid hidden conversions and scaling errors
  • Clean, legible code that easier to debug
  • No more implicit units in variables
  • Compile-time safety for quantities
  • No-overhead abstractions and many constexpr operations and unit conversions
  • Seamless integration with std::chrono
  • This library has taught me a lot about how powerful C++ compile-time abstractions can be

Impact on Your Project

Game-changing - Solved major problems

Usage Permissions

  • You can use our testimonial in documentation and presentations
  • You can mention our organization name publicly

Metadata

Metadata

Assignees

Labels

usage experienceUsage experience story from our form

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions