Move mass-to-molar conversion into function from base class

This commit is contained in:
Ian Bell
2015-12-06 15:06:18 -07:00
parent 1d48b8bcea
commit 265909b491
2 changed files with 10 additions and 48 deletions

View File

@@ -11,6 +11,11 @@ void CoolProp::BicubicBackend::update(CoolProp::input_pairs input_pair, double v
// Clear cached values
clear();
// Convert to mass-based units if necessary
CoolPropDbl ld_value1 = val1, ld_value2 = val2;
mass_to_molar_inputs(input_pair, ld_value1, ld_value2);
val1 = ld_value1; val2 = ld_value2;
// To start, set quality to value that is for single-phase
_Q = -1000;
@@ -84,10 +89,6 @@ void CoolProp::BicubicBackend::update(CoolProp::input_pairs input_pair, double v
}
break;
}
case HmassP_INPUTS:{
update(HmolarP_INPUTS, val1 * AS->molar_mass(), val2); // H: [J/kg] * [kg/mol] -> [J/mol]
return;
}
case PUmolar_INPUTS:
case PSmolar_INPUTS:
case DmolarP_INPUTS:{
@@ -153,18 +154,6 @@ void CoolProp::BicubicBackend::update(CoolProp::input_pairs input_pair, double v
recalculate_singlephase_phase();
}
break;
}
case DmassP_INPUTS:{
// Call again, but this time with molar units; D: [kg/m^3] / [kg/mol] -> [mol/m^3]
update(DmolarP_INPUTS, val1 / AS->molar_mass(), val2); return;
}
case PUmass_INPUTS:{
// Call again, but this time with molar units; U: [J/kg] * [kg/mol] -> [J/mol]
update(PUmolar_INPUTS, val1, val2*AS->molar_mass()); return;
}
case PSmass_INPUTS:{
// Call again, but this time with molar units; S: [J/kg/K] * [kg/mol] -> [J/mol/K]
update(PSmolar_INPUTS, val1, val2*AS->molar_mass()); return;
}
case PT_INPUTS:{
_p = val1; _T = val2;
@@ -238,14 +227,6 @@ void CoolProp::BicubicBackend::update(CoolProp::input_pairs input_pair, double v
}
break;
}
case DmassT_INPUTS:{
// Call again, but this time with molar units; D: [kg/m^3] / [kg/mol] -> [mol/m^3]
update(DmolarT_INPUTS, val1 / AS->molar_mass(), val2); return;
}
case SmassT_INPUTS:{
// Call again, but this time with molar units; S: [J/kg/K] * [kg/mol] -> [J/mol/K]
update(SmolarT_INPUTS, val1*AS->molar_mass(), val2); return;
}
case SmolarT_INPUTS:
case DmolarT_INPUTS:{
CoolPropDbl otherval; parameters otherkey;

View File

@@ -9,6 +9,11 @@ void CoolProp::TTSEBackend::update(CoolProp::input_pairs input_pair, double val1
// Clear cached variables
clear();
// Convert to mass-based units if necessary
CoolPropDbl ld_value1 = val1, ld_value2 = val2;
mass_to_molar_inputs(input_pair, ld_value1, ld_value2);
val1 = ld_value1; val2 = ld_value2;
// Check the tables, build if neccessary
check_tables();
@@ -74,10 +79,6 @@ void CoolProp::TTSEBackend::update(CoolProp::input_pairs input_pair, double val1
}
break;
}
case HmassP_INPUTS:{
update(HmolarP_INPUTS, val1 * AS->molar_mass(), val2); // H: [J/kg] * [kg/mol] -> [J/mol]
return;
}
case PUmolar_INPUTS:
case PSmolar_INPUTS:
case DmolarP_INPUTS:{
@@ -134,18 +135,6 @@ void CoolProp::TTSEBackend::update(CoolProp::input_pairs input_pair, double val1
}
break;
}
case DmassP_INPUTS:{
// Call again, but this time with molar units; D: [kg/m^3] / [kg/mol] -> [mol/m^3]
update(DmolarP_INPUTS, val1 / AS->molar_mass(), val2); return;
}
case PUmass_INPUTS:{
// Call again, but this time with molar units; U: [J/kg] * [kg/mol] -> [J/mol]
update(PUmolar_INPUTS, val1, val2*AS->molar_mass()); return;
}
case PSmass_INPUTS:{
// Call again, but this time with molar units; S: [J/kg/K] * [kg/mol] -> [J/mol/K]
update(PSmolar_INPUTS, val1, val2*AS->molar_mass()); return;
}
case PT_INPUTS:{
_p = val1; _T = val2;
if (!single_phase_logpT.native_inputs_are_in_range(_T, _p)){
@@ -172,14 +161,6 @@ void CoolProp::TTSEBackend::update(CoolProp::input_pairs input_pair, double val1
}
break;
}
case DmassT_INPUTS:{
// Call again, but this time with molar units; D: [kg/m^3] / [kg/mol] -> [mol/m^3]
update(DmolarT_INPUTS, val1 / AS->molar_mass(), val2); return;
}
case SmassT_INPUTS:{
// Call again, but this time with molar units; S: [J/kg/K] * [kg/mol] -> [J/mol/K]
update(SmolarT_INPUTS, val1*AS->molar_mass(), val2); return;
}
case SmolarT_INPUTS:
case DmolarT_INPUTS:{
CoolPropDbl otherval; parameters otherkey;