[Base] add electrical conductivity
- this is necessary to perform electrodynamics simulations. Since the typical values are in the range of 1e6 S/m, we need the new units kS and MS - since this is for simulations, also add electrical conductivity to the FEM material cards
This commit is contained in:
@@ -331,6 +331,8 @@ Quantity Quantity::Volt (1e+6 ,Unit(2,1,-3,-1)); // Volt (k
|
||||
Quantity Quantity::MilliVolt (1e+3 ,Unit(2,1,-3,-1));
|
||||
Quantity Quantity::KiloVolt (1e+9 ,Unit(2,1,-3,-1));
|
||||
|
||||
Quantity Quantity::MegaSiemens (1.0 ,Unit(-2,-1,3,2));
|
||||
Quantity Quantity::KiloSiemens (1e-3 ,Unit(-2,-1,3,2));
|
||||
Quantity Quantity::Siemens (1e-6 ,Unit(-2,-1,3,2)); // Siemens (A^2*s^3/kg/m^2)
|
||||
Quantity Quantity::MilliSiemens (1e-9 ,Unit(-2,-1,3,2));
|
||||
Quantity Quantity::MicroSiemens (1e-12 ,Unit(-2,-1,3,2));
|
||||
|
||||
@@ -268,6 +268,8 @@ public:
|
||||
static Quantity MilliVolt;
|
||||
static Quantity KiloVolt;
|
||||
|
||||
static Quantity MegaSiemens;
|
||||
static Quantity KiloSiemens;
|
||||
static Quantity Siemens;
|
||||
static Quantity MilliSiemens;
|
||||
static Quantity MicroSiemens;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -164,6 +164,8 @@ CGRP '\,'[0-9][0-9][0-9]
|
||||
"kV" yylval = Quantity::KiloVolt; return UNIT; // kilo Volt
|
||||
"mV" yylval = Quantity::MilliVolt; return UNIT; // milli Volt
|
||||
|
||||
"MS" yylval = Quantity::MegaSiemens; return UNIT; // mega Siemens
|
||||
"kS" yylval = Quantity::KiloSiemens; return UNIT; // kilo Siemens
|
||||
"S" yylval = Quantity::Siemens; return UNIT; // Siemens (A^2*s^3/kg/m^2)
|
||||
"mS" yylval = Quantity::MilliSiemens; return UNIT; // milli Siemens
|
||||
"\xC2\xB5S" yylval = Quantity::MicroSiemens; return UNIT; // micro Siemens
|
||||
|
||||
@@ -447,6 +447,7 @@ QString Unit::getTypeString(void) const
|
||||
if(*this == Unit::ElectricalInductance ) return QString::fromLatin1("ElectricalInductance");
|
||||
if(*this == Unit::ElectricalConductance ) return QString::fromLatin1("ElectricalConductance");
|
||||
if(*this == Unit::ElectricalResistance ) return QString::fromLatin1("ElectricalResistance");
|
||||
if(*this == Unit::ElectricalConductivity ) return QString::fromLatin1("ElectricalConductivity");
|
||||
if(*this == Unit::AmountOfSubstance ) return QString::fromLatin1("AmountOfSubstance");
|
||||
if(*this == Unit::LuminousIntensity ) return QString::fromLatin1("LuminousIntensity");
|
||||
if(*this == Unit::Pressure ) return QString::fromLatin1("Pressure");
|
||||
@@ -495,6 +496,7 @@ Unit Unit::ElectricalCapacitance(-2,-1,4,2);
|
||||
Unit Unit::ElectricalInductance(2,1,-2,-2);
|
||||
Unit Unit::ElectricalConductance(-2,-1,3,2);
|
||||
Unit Unit::ElectricalResistance(2,1,-3,-2);
|
||||
Unit Unit::ElectricalConductivity(-3,-1,3,2);
|
||||
Unit Unit::AmountOfSubstance(0,0,0,0,0,1);
|
||||
Unit Unit::LuminousIntensity(0,0,0,0,0,0,1);
|
||||
|
||||
|
||||
@@ -121,6 +121,7 @@ public:
|
||||
static Unit ElectricalInductance;
|
||||
static Unit ElectricalConductance;
|
||||
static Unit ElectricalResistance;
|
||||
static Unit ElectricalConductivity;
|
||||
static Unit AmountOfSubstance;
|
||||
static Unit LuminousIntensity;
|
||||
|
||||
|
||||
@@ -360,6 +360,24 @@ QString UnitsSchemaInternal::schemaTranslate(const Quantity &quant, double &fact
|
||||
factor = 1e12;
|
||||
}
|
||||
}
|
||||
else if (unit == Unit::ElectricalConductivity) {
|
||||
if (UnitValue < 1e-3) {
|
||||
unitString = QString::fromLatin1("mS/m");
|
||||
factor = 1e-12;
|
||||
}
|
||||
else if (UnitValue < 1.0) {
|
||||
unitString = QString::fromLatin1("S/m");
|
||||
factor = 1e-9;
|
||||
}
|
||||
else if (UnitValue < 1e3) {
|
||||
unitString = QString::fromLatin1("kS/m");
|
||||
factor = 1e-6;
|
||||
}
|
||||
else {
|
||||
unitString = QString::fromLatin1("MS/m");
|
||||
factor = 1e-3;
|
||||
}
|
||||
}
|
||||
else if (unit == Unit::ElectricalCapacitance) {
|
||||
if (UnitValue < 1e-15) {
|
||||
unitString = QString::fromLatin1("pF");
|
||||
|
||||
@@ -307,6 +307,24 @@ QString UnitsSchemaMKS::schemaTranslate(const Quantity &quant, double &factor, Q
|
||||
factor = 1e12;
|
||||
}
|
||||
}
|
||||
else if (unit == Unit::ElectricalConductivity) {
|
||||
if (UnitValue < 1e-3) {
|
||||
unitString = QString::fromLatin1("mS/m");
|
||||
factor = 1e-12;
|
||||
}
|
||||
else if (UnitValue < 1.0) {
|
||||
unitString = QString::fromLatin1("S/m");
|
||||
factor = 1e-9;
|
||||
}
|
||||
else if (UnitValue < 1e3) {
|
||||
unitString = QString::fromLatin1("kS/m");
|
||||
factor = 1e-6;
|
||||
}
|
||||
else {
|
||||
unitString = QString::fromLatin1("MS/m");
|
||||
factor = 1e-3;
|
||||
}
|
||||
}
|
||||
else if (unit == Unit::ElectricalCapacitance) {
|
||||
if (UnitValue < 1e-15) {
|
||||
unitString = QString::fromLatin1("pF");
|
||||
|
||||
Reference in New Issue
Block a user