diff --git a/src/App/Application.cpp b/src/App/Application.cpp index 5a07c132f4..56ef0a38b2 100644 --- a/src/App/Application.cpp +++ b/src/App/Application.cpp @@ -2060,6 +2060,7 @@ void Application::initTypes() App::PropertyElectricCharge ::init(); App::PropertyElectricCurrent ::init(); App::PropertyElectricPotential ::init(); + App::PropertyElectromagneticPotential ::init(); App::PropertyFrequency ::init(); App::PropertyForce ::init(); App::PropertyHeatFlux ::init(); diff --git a/src/App/PropertyUnits.cpp b/src/App/PropertyUnits.cpp index bd8a0610bc..69e887039f 100644 --- a/src/App/PropertyUnits.cpp +++ b/src/App/PropertyUnits.cpp @@ -554,6 +554,17 @@ PropertyMagnetization::PropertyMagnetization() setUnit(Base::Unit::Magnetization); } +//************************************************************************** +// PropertyElectromagneticPotential +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPESYSTEM_SOURCE(App::PropertyElectromagneticPotential, App::PropertyQuantity) + +PropertyElectromagneticPotential::PropertyElectromagneticPotential() +{ + setUnit(Base::Unit::ElectromagneticPotential); +} + //************************************************************************** // PropertyMass //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/src/App/PropertyUnits.h b/src/App/PropertyUnits.h index 0d4780eac5..b67c82f740 100644 --- a/src/App/PropertyUnits.h +++ b/src/App/PropertyUnits.h @@ -546,6 +546,19 @@ public: ~PropertyMagnetization() override = default; }; +/** ElectromagneticPotential property + * This is a property for representing electromagnetic potentials. It is basically a float + * property. On the Gui it has a quantity like Wb/m. + */ +class AppExport PropertyElectromagneticPotential: public PropertyQuantity +{ + TYPESYSTEM_HEADER_WITH_OVERRIDE(); + +public: + PropertyElectromagneticPotential(); + ~PropertyElectromagneticPotential() override = default; +}; + /** Mass property * This is a property for representing mass. It is basically a float * property. On the Gui it has a quantity like kg. diff --git a/src/Base/Unit.cpp b/src/Base/Unit.cpp index 46a5dbe3ef..d60c3178d7 100644 --- a/src/Base/Unit.cpp +++ b/src/Base/Unit.cpp @@ -515,6 +515,9 @@ QString Unit::getTypeString() const if (*this == Unit::ElectricPotential) { return QString::fromLatin1("ElectricPotential"); } + if (*this == Unit::ElectromagneticPotential) { + return QString::fromLatin1("ElectromagneticPotential"); + } if (*this == Unit::Frequency) { return QString::fromLatin1("Frequency"); } @@ -656,6 +659,7 @@ const Unit Unit::ElectricalInductance (2, 1, -2, -2); const Unit Unit::ElectricalResistance (2, 1, -3, -2); const Unit Unit::ElectricCharge (0, 0, 1, 1); const Unit Unit::ElectricPotential (2, 1, -3, -1); +const Unit Unit::ElectromagneticPotential (1, 1, -2, -1); const Unit Unit::Force (1, 1, -2); const Unit Unit::Frequency (0, 0, -1); const Unit Unit::HeatFlux (0, 1, -3, 0, 0); diff --git a/src/Base/Unit.h b/src/Base/Unit.h index 5e957a97a7..81ec17ec51 100644 --- a/src/Base/Unit.h +++ b/src/Base/Unit.h @@ -137,6 +137,7 @@ public: static const Unit ElectricalConductance; static const Unit ElectricalResistance; static const Unit ElectricalConductivity; + static const Unit ElectromagneticPotential; static const Unit AmountOfSubstance; static const Unit LuminousIntensity; diff --git a/src/Base/UnitsSchemaInternal.cpp b/src/Base/UnitsSchemaInternal.cpp index c17cbbe99e..99824bb44b 100644 --- a/src/Base/UnitsSchemaInternal.cpp +++ b/src/Base/UnitsSchemaInternal.cpp @@ -400,6 +400,10 @@ UnitsSchemaInternal::schemaTranslate(const Quantity& quant, double& factor, QStr unitString = QString::fromLatin1("A/m"); factor = 1e-3; } + else if (unit == Unit::ElectromagneticPotential) { + unitString = QString::fromLatin1("Wb/m"); + factor = 1e3; + } else if (unit == Unit::ElectricalConductance) { if (UnitValue < 1e-9) { unitString = QString::fromUtf8("\xC2\xB5S"); diff --git a/src/Base/UnitsSchemaMKS.cpp b/src/Base/UnitsSchemaMKS.cpp index 5d921e8166..c575b81e9e 100644 --- a/src/Base/UnitsSchemaMKS.cpp +++ b/src/Base/UnitsSchemaMKS.cpp @@ -347,6 +347,10 @@ QString UnitsSchemaMKS::schemaTranslate(const Quantity& quant, double& factor, Q unitString = QString::fromLatin1("A/m"); factor = 1e-3; } + else if (unit == Unit::ElectromagneticPotential) { + unitString = QString::fromLatin1("Wb/m"); + factor = 1e3; + } else if (unit == Unit::ElectricalConductance) { if (UnitValue < 1e-9) { unitString = QString::fromUtf8("\xC2\xB5S");