[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:
@@ -274,6 +274,8 @@ EXPO [eE][-+]?[0-9]+
|
||||
"kV" COUNTCHARS; yylval.quantity.scaler = Quantity::KiloVolt; yylval.quantity.unitStr = yytext; return UNIT; // kilo Volt
|
||||
"mV" COUNTCHARS; yylval.quantity.scaler = Quantity::MilliVolt; yylval.quantity.unitStr = yytext; return UNIT; // milli Volt
|
||||
|
||||
"MS" COUNTCHARS; yylval.quantity.scaler = Quantity::MegaSiemens; yylval.quantity.unitStr = yytext; return UNIT; // mega Siemens
|
||||
"kS" COUNTCHARS; yylval.quantity.scaler = Quantity::KiloSiemens; yylval.quantity.unitStr = yytext; return UNIT; // kilo Siemens
|
||||
"S" COUNTCHARS; yylval.quantity.scaler = Quantity::Siemens; yylval.quantity.unitStr = yytext; return UNIT; // Siemens (A^2*s^3/kg/m^2)
|
||||
"mS" COUNTCHARS; yylval.quantity.scaler = Quantity::MilliSiemens; yylval.quantity.unitStr = yytext; return UNIT; // milli Siemens
|
||||
"uS" COUNTCHARS; yylval.quantity.scaler = Quantity::MicroSiemens; yylval.quantity.unitStr = yytext; return UNIT; // micro Siemens
|
||||
|
||||
@@ -731,6 +731,8 @@ App.Units.Volt = App.Units.Quantity('V')
|
||||
App.Units.MilliVolt = App.Units.Quantity('mV')
|
||||
App.Units.KiloVolt = App.Units.Quantity('kV')
|
||||
|
||||
App.Units.MegaSiemens = App.Units.Quantity('MS')
|
||||
App.Units.KiloSiemens = App.Units.Quantity('kS')
|
||||
App.Units.Siemens = App.Units.Quantity('S')
|
||||
App.Units.MilliSiemens = App.Units.Quantity('mS')
|
||||
App.Units.MicroSiemens = App.Units.Quantity('uS')
|
||||
@@ -807,6 +809,7 @@ App.Units.ElectricalCapacitance = App.Units.Unit(-2,-1,4,2)
|
||||
App.Units.ElectricalInductance = App.Units.Unit(2,1,-2,-2)
|
||||
App.Units.ElectricalConductance = App.Units.Unit(-2,-1,3,2)
|
||||
App.Units.ElectricalResistance = App.Units.Unit(2,1,-3,-2)
|
||||
App.Units.ElectricalConductivity = App.Units.Unit(-3,-1,3,2)
|
||||
App.Units.AmountOfSubstance = App.Units.Unit(0,0,0,0,0,1)
|
||||
App.Units.LuminousIntensity = App.Units.Unit(0,0,0,0,0,0,1)
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -81,6 +81,7 @@ DlgUnitsCalculator::DlgUnitsCalculator( QWidget* parent, Qt::WindowFlags fl )
|
||||
<< Base::Unit::ElectricalInductance
|
||||
<< Base::Unit::ElectricalConductance
|
||||
<< Base::Unit::ElectricalResistance
|
||||
<< Base::Unit::ElectricalConductivity
|
||||
<< Base::Unit::ElectricCharge
|
||||
<< Base::Unit::ElectricCurrent
|
||||
<< Base::Unit::ElectricPotential
|
||||
|
||||
@@ -94,7 +94,7 @@ YoungsModulus =
|
||||
|
||||
|
||||
[Thermal]
|
||||
; Description to be updated
|
||||
; Specific capacity in [FreeCAD SpecificHeat unit]
|
||||
; https://en.wikipedia.org/wiki/Heat_capacity
|
||||
SpecificHeat =
|
||||
|
||||
@@ -106,6 +106,15 @@ ThermalConductivity =
|
||||
; https://en.wikipedia.org/wiki/Volumetric_thermal_expansion_coefficient
|
||||
ThermalExpansionCoefficient =
|
||||
|
||||
[Electrical]
|
||||
; The ratio to the permittivity of the vacuum
|
||||
; https://en.wikipedia.org/wiki/Relative_permittivity
|
||||
RelativePermittivity =
|
||||
|
||||
; The electrical conductivity in [FreeCAD ElectricalConductivity unit]
|
||||
; https://en.wikipedia.org/wiki/Electrical_resistivity_and_conductivity
|
||||
ElectricalConductivity =
|
||||
|
||||
|
||||
[Architectural]
|
||||
; Description to be updated
|
||||
|
||||
@@ -142,11 +142,11 @@
|
||||
SpecificHeat:
|
||||
Type: 'Quantity'
|
||||
URL: 'https://en.wikipedia.org/wiki/Heat_capacity'
|
||||
Description: " "
|
||||
Description: "Specific capacity in [FreeCAD SpecificHeat unit]"
|
||||
ThermalConductivity:
|
||||
Type: 'Quantity'
|
||||
URL: 'https://en.wikipedia.org/wiki/Thermal_conductivity'
|
||||
Description: "Thermal conductivity in [FreCAD ThermalConductivity unit]"
|
||||
Description: "Thermal conductivity in [FreeCAD ThermalConductivity unit]"
|
||||
ThermalExpansionCoefficient:
|
||||
Type: 'Quantity'
|
||||
URL: 'https://en.wikipedia.org/wiki/Volumetric_thermal_expansion_coefficient'
|
||||
@@ -155,7 +155,11 @@
|
||||
RelativePermittivity:
|
||||
Type: 'Float'
|
||||
URL: 'https://en.wikipedia.org/wiki/Relative_permittivity'
|
||||
Description: "a material property, expressing the ratio to the permittivity of the Vacuum"
|
||||
Description: "The ratio to the permittivity of the vacuum"
|
||||
ElectricalConductivity:
|
||||
Type: 'Quantity'
|
||||
URL: 'https://en.wikipedia.org/wiki/Electrical_resistivity_and_conductivity'
|
||||
Description: "The electrical conductivity in [FreeCAD ElectricalConductivity unit]"
|
||||
- Architectural:
|
||||
Color:
|
||||
Type: 'String'
|
||||
|
||||
Reference in New Issue
Block a user