Base: Add surface charge density unit
This commit is contained in:
committed by
marioalexis
parent
f24d24c9ac
commit
aaa976953d
@@ -2060,6 +2060,7 @@ void Application::initTypes()
|
||||
App::PropertyElectricalInductance ::init();
|
||||
App::PropertyElectricalResistance ::init();
|
||||
App::PropertyElectricCharge ::init();
|
||||
App::PropertySurfaceChargeDensity ::init();
|
||||
App::PropertyElectricCurrent ::init();
|
||||
App::PropertyElectricPotential ::init();
|
||||
App::PropertyElectromagneticPotential ::init();
|
||||
|
||||
@@ -392,6 +392,17 @@ PropertyElectricCharge::PropertyElectricCharge()
|
||||
setUnit(Base::Unit::ElectricCharge);
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// PropertySurfaceChargeDensity
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
TYPESYSTEM_SOURCE(App::PropertySurfaceChargeDensity, App::PropertyQuantity)
|
||||
|
||||
PropertySurfaceChargeDensity::PropertySurfaceChargeDensity()
|
||||
{
|
||||
setUnit(Base::Unit::SurfaceChargeDensity);
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// PropertyElectricCurrent
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
@@ -361,6 +361,19 @@ public:
|
||||
~PropertyElectricCharge() override = default;
|
||||
};
|
||||
|
||||
/** SurfaceChargeDensity property
|
||||
* This is a property for representing surface charge density. It is basically a float
|
||||
* property. On the Gui it has a quantity like C/m^2.
|
||||
*/
|
||||
class AppExport PropertySurfaceChargeDensity: public PropertyQuantity
|
||||
{
|
||||
TYPESYSTEM_HEADER_WITH_OVERRIDE();
|
||||
|
||||
public:
|
||||
PropertySurfaceChargeDensity();
|
||||
~PropertySurfaceChargeDensity() override = default;
|
||||
};
|
||||
|
||||
/** ElectricCurrent property
|
||||
* This is a property for representing electric currents. It is basically a
|
||||
* float property. On the Gui it has a quantity like A.
|
||||
|
||||
@@ -587,7 +587,7 @@ std::string Unit::getString() const
|
||||
|
||||
std::string Unit::getTypeString() const
|
||||
{
|
||||
static std::array<std::pair<Unit, std::string>, 55> unitSpecs {{
|
||||
static std::array<std::pair<Unit, std::string>, 56> unitSpecs {{
|
||||
{ Unit::Acceleration, "Acceleration" },
|
||||
{ Unit::AmountOfSubstance, "AmountOfSubstance" },
|
||||
{ Unit::Angle, "Angle" },
|
||||
@@ -603,6 +603,7 @@ std::string Unit::getTypeString() const
|
||||
{ Unit::ElectricalInductance, "ElectricalInductance" },
|
||||
{ Unit::ElectricalResistance, "ElectricalResistance" },
|
||||
{ Unit::ElectricCharge, "ElectricCharge" },
|
||||
{ Unit::SurfaceChargeDensity, "SurfaceChargeDensity" },
|
||||
{ Unit::ElectricCurrent, "ElectricCurrent" },
|
||||
{ Unit::ElectricPotential, "ElectricPotential" },
|
||||
{ Unit::ElectromagneticPotential, "ElectromagneticPotential" },
|
||||
@@ -681,6 +682,7 @@ const Unit Unit::ElectricalConductivity (-3, -1, 3, 2);
|
||||
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::SurfaceChargeDensity (-2, 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);
|
||||
|
||||
@@ -110,6 +110,7 @@ public:
|
||||
static const Unit ElectricCurrent;
|
||||
static const Unit ElectricPotential;
|
||||
static const Unit ElectricCharge;
|
||||
static const Unit SurfaceChargeDensity;
|
||||
static const Unit MagneticFieldStrength;
|
||||
static const Unit MagneticFlux;
|
||||
static const Unit MagneticFluxDensity;
|
||||
|
||||
@@ -364,6 +364,10 @@ UnitsSchemaInternal::schemaTranslate(const Quantity& quant, double& factor, std:
|
||||
unitString = "C";
|
||||
factor = 1.0;
|
||||
}
|
||||
else if (unit == Unit::SurfaceChargeDensity) {
|
||||
unitString = "C/m^2";
|
||||
factor = 1e-6;
|
||||
}
|
||||
else if (unit == Unit::CurrentDensity) {
|
||||
if (UnitValue <= 1e3) {
|
||||
unitString = "A/m^2";
|
||||
|
||||
@@ -312,6 +312,10 @@ UnitsSchemaMKS::schemaTranslate(const Quantity& quant, double& factor, std::stri
|
||||
unitString = "C";
|
||||
factor = 1.0;
|
||||
}
|
||||
else if (unit == Unit::SurfaceChargeDensity) {
|
||||
unitString = "C/m^2";
|
||||
factor = 1e-6;
|
||||
}
|
||||
else if (unit == Unit::CurrentDensity) {
|
||||
if (UnitValue <= 1e3) {
|
||||
unitString = "A/m^2";
|
||||
|
||||
Reference in New Issue
Block a user