CodeProject

Eine C#-Bibliothek für physikalische Einheiten

von - 22.03.2023
Die Bibliothek definiert diese grundlegenden und viele davon abgeleitete Dimensionen.
Foto: CodeProject.com
Kleine Rechenfehler können in komplexen Systemen zu großen Katastrophen führen. Die Physik-Bibliothek von Keith Barrett soll Fehler vermeiden helfen, ist in C# Version 9 geschrieben und nutzt .NET 5.0.
Die ursprüngliche Inspiration für sein Projekt war für Entwickler Keith Barrett der Verlust des Mars Climate Orbiter der NASA im Jahr 1999. Dieser scheiterte beim Eintritt in die Marsumlaufbahn an einer Verwechslung zwischen metrischen (SI) und US-amerikanischen Maßeinheiten (United States Customary Units). Ein Teilsystem lieferte Messungen in Pfund-Kraft-Sekunden an ein anderes Teilsystem, das diese in Newton-Sekunden erwartete. Als die Sonde abbremste, um in die Umlaufbahn einzutreten, kam sie der Atmosphäre des Planeten zu nahe und verglühte entweder oder prallte in die Sonnenumlaufbahn ab.
Daher hat Keith Barrett versucht, eine Code-Bibliothek zu erstellen, in der diese Art von Fehler von vornherein ausgeschlossen werden sollte. Sie ist in C# Version 9 geschrieben, nutzt .NET 5.0 und hat die folgenden Eigenschaften:
  • Sie kann zur Durchführung vieler Standardberechnungen aus Physik und Technik verwendet werden.
  • Sie basiert auf Dimensionsanalyse, das heißt alle Größen haben eine entsprechende physikalische Dimension, wie zum Beispiel Länge oder Masse.
  • Es ist stark typisiert, so dass Größen unterschiedlicher Dimension nur auf wissenschaftlich gültige Weise kombiniert werden können.
  • Intern werden alle Werte in S.I. (metrischen) Einheiten gespeichert.
  • Nur an den externen Schnittstellen werden die Werte in ein bestimmtes Einheitensystem umgewandelt, zum Beispiel bei der Konvertierung in und aus Strings.
Alles Weitere zur C#-Physik-Bibliothek von Keith Barrett erfahren Sie auf dieser CodeProject-Seite.
Verwandte Themen