Keith Barrett 09.08.2021, 13:03 Uhr

C#-Bibliothek für physikalische Einheiten

Keith Barrett, Senior Developer in England, teilt eine C#-Bibliothek für die Verwendung in physikalischen und technischen Berechnungen.
(Quelle: codeproject.com)
Die ursprüngliche Inspiration für sein Projekt war für Keith Barrett der Verlust des Mars Climate Orbiter der NASA im Jahr 1999. Dieser scheiterte beim Eintritt in die Marsumlaufbahn aufgrund einer Verwechslung zwischen metrischen (SI) und US-Einheiten. Ein Teilsystem lieferte Messungen in US-Pfund-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.
Barrett hat versucht, eine Code-Bibliothek zu erstellen, in der diese Art von Fehler von vornherein ausgeschlossen werden sollte. Sie 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.
  • Sie ist stark typisiert, so dass Größen unterschiedlicher Dimension nur auf wissenschaftlich gültige Weise kombiniert werden können.
  • Intern werden alle Werte in SI-Einheiten (metrisch) gespeichert. Nur an den externen Schnittstellen werden die Werte in ein bestimmtes Einheitensystem umgewandelt, zum Beispiel bei der Konvertierung in und aus Strings.
Die Bibliothek ist in C# Version 9 geschrieben und nutzt das .NET 5.0 Framework. Ein Beispiel, wie man die Bibliothek nutzt, weitere Hintergründe sowie die Sourcen finden Sie auf dieser Codeproject-Seite: www.codeproject.com/Articles/5306824/Taking-Your-Brain-to-Another-Dimension-A-Csharp-li


Das könnte Sie auch interessieren