From a671237073f7ef762e4136f950432a49f254791b Mon Sep 17 00:00:00 2001 From: marioalexis Date: Thu, 25 Jan 2024 19:00:54 -0300 Subject: [PATCH] Base: Add stiffness per unit area unit --- src/Base/Unit.cpp | 4 ++++ src/Base/Unit.h | 1 + src/Base/UnitsSchemaInternal.cpp | 20 +++++++++++++++++++- src/Base/UnitsSchemaMKS.cpp | 20 +++++++++++++++++++- 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/Base/Unit.cpp b/src/Base/Unit.cpp index 64cefecf85..7aa14c7526 100644 --- a/src/Base/Unit.cpp +++ b/src/Base/Unit.cpp @@ -575,6 +575,9 @@ QString Unit::getTypeString() const if (*this == Unit::Stiffness) { return QString::fromLatin1("Stiffness"); } + if (*this == Unit::StiffnessDensity) { + return QString::fromLatin1("StiffnessDensity"); + } if (*this == Unit::Stress) { return QString::fromLatin1("Stress"); } @@ -667,6 +670,7 @@ const Unit Unit::ShearModulus (-1,1,-2); const Unit Unit::SpecificEnergy (2, 0, -2); const Unit Unit::SpecificHeat (2, 0, -2, 0, -1); const Unit Unit::Stiffness (0, 1, -2); +const Unit Unit::StiffnessDensity (-2, 1, -2); const Unit Unit::Stress (-1,1,-2); const Unit Unit::ThermalConductivity (1, 1, -3, 0, -1); const Unit Unit::ThermalExpansionCoefficient(0, 0, 0, 0, -1); diff --git a/src/Base/Unit.h b/src/Base/Unit.h index 8b4a4aec70..77b325a784 100644 --- a/src/Base/Unit.h +++ b/src/Base/Unit.h @@ -150,6 +150,7 @@ public: static const Unit YoungsModulus; static const Unit Stiffness; + static const Unit StiffnessDensity; static const Unit Force; static const Unit Work; diff --git a/src/Base/UnitsSchemaInternal.cpp b/src/Base/UnitsSchemaInternal.cpp index c3d13cd38e..355e8307c7 100644 --- a/src/Base/UnitsSchemaInternal.cpp +++ b/src/Base/UnitsSchemaInternal.cpp @@ -223,7 +223,7 @@ UnitsSchemaInternal::schemaTranslate(const Quantity& quant, double& factor, QStr unitString = QString::fromLatin1("mN/m"); factor = 1e-3; } - if (UnitValue < 1e3) { + else if (UnitValue < 1e3) { unitString = QString::fromLatin1("N/m"); factor = 1.0; } @@ -236,6 +236,24 @@ UnitsSchemaInternal::schemaTranslate(const Quantity& quant, double& factor, QStr factor = 1e6; } } + else if ((unit == Unit::StiffnessDensity)) { + if (UnitValue < 1e-3) { + unitString = QString::fromLatin1("Pa/m"); + factor = 1e-6; + } + else if (UnitValue < 1) { + unitString = QString::fromLatin1("kPa/m"); + factor = 1e-3; + } + else if (UnitValue < 1e3) { + unitString = QString::fromLatin1("MPa/m"); + factor = 1.0; + } + else { + unitString = QString::fromLatin1("GPa/m"); + factor = 1e3; + } + } else if (unit == Unit::Force) { if (UnitValue < 1e3) { unitString = QString::fromLatin1("mN"); diff --git a/src/Base/UnitsSchemaMKS.cpp b/src/Base/UnitsSchemaMKS.cpp index e15a721ad3..aba27295ab 100644 --- a/src/Base/UnitsSchemaMKS.cpp +++ b/src/Base/UnitsSchemaMKS.cpp @@ -174,7 +174,7 @@ QString UnitsSchemaMKS::schemaTranslate(const Quantity& quant, double& factor, Q unitString = QString::fromLatin1("mN/m"); factor = 1e-3; } - if (UnitValue < 1e3) { + else if (UnitValue < 1e3) { unitString = QString::fromLatin1("N/m"); factor = 1.0; } @@ -187,6 +187,24 @@ QString UnitsSchemaMKS::schemaTranslate(const Quantity& quant, double& factor, Q factor = 1e6; } } + else if ((unit == Unit::StiffnessDensity)) { + if (UnitValue < 1e-3) { + unitString = QString::fromLatin1("Pa/m"); + factor = 1e-6; + } + else if (UnitValue < 1) { + unitString = QString::fromLatin1("kPa/m"); + factor = 1e-3; + } + else if (UnitValue < 1e3) { + unitString = QString::fromLatin1("MPa/m"); + factor = 1.0; + } + else { + unitString = QString::fromLatin1("GPa/m"); + factor = 1e3; + } + } else if (unit == Unit::ThermalConductivity) { if (UnitValue > 1000000) { unitString = QString::fromLatin1("W/mm/K");