[Transport] Make SimpleTransport constructible without XML
This commit is contained in:
parent
4b5af64050
commit
7020fa72bf
4 changed files with 93 additions and 1 deletions
|
|
@ -207,6 +207,10 @@ public:
|
|||
*/
|
||||
virtual bool initLiquid(LiquidTransportParams& tr);
|
||||
|
||||
void setCompositionDependence(LiquidTranMixingModel model) {
|
||||
compositionDepType_ = model;
|
||||
}
|
||||
|
||||
virtual std::string transportType() const {
|
||||
return "Simple";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,8 @@ for optimize_flag in ('-O3', '-O2', '/O2'):
|
|||
ccflags.remove(optimize_flag)
|
||||
localenv['CCFLAGS'] = ccflags
|
||||
|
||||
localenv['ENV']['CANTERA_DATA'] = Dir('#build/data').abspath
|
||||
localenv['ENV']['CANTERA_DATA'] = (Dir('#build/data').abspath + os.pathsep +
|
||||
Dir('#test/data').abspath)
|
||||
|
||||
PASSED_FILES = {}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "cantera/transport/TransportData.h"
|
||||
#include "cantera/transport/MixTransport.h"
|
||||
#include "cantera/transport/MultiTransport.h"
|
||||
#include "cantera/transport/SimpleTransport.h"
|
||||
#include "cantera/transport/TransportFactory.h"
|
||||
#include "cantera/thermo/ThermoFactory.h"
|
||||
#include "cantera/thermo/IdealGasPhase.h"
|
||||
|
|
@ -166,6 +167,92 @@ TEST_F(TransportFromScratch, thermalConductivityMulti)
|
|||
}
|
||||
}
|
||||
|
||||
class SimpleTransportTest : public testing::Test
|
||||
{
|
||||
public:
|
||||
SimpleTransportTest()
|
||||
: p(newPhase("HMW_NaCl_pdss.xml", "NaCl_electrolyte"))
|
||||
{
|
||||
}
|
||||
|
||||
void check_transport(SimpleTransport& tr) {
|
||||
p->setState_TP(303.13, OneAtm);
|
||||
size_t N = p->nSpecies();
|
||||
EXPECT_NEAR(tr.viscosity(), 0.001, 1e-4);
|
||||
EXPECT_NEAR(tr.thermalConductivity(), 0.58, 1e-3);
|
||||
|
||||
vector_fp spvisc(N), Dmix(N), mobilities(N), fluxes1(N), fluxes2(N);
|
||||
vector_fp gradX(N, 0.0);
|
||||
gradX[1] = 1.0;
|
||||
double gradT = 0.0;
|
||||
double gradV = 1.0;
|
||||
|
||||
vector_fp spvisc_ref = {0.001, 0, 0, 0, 0};
|
||||
vector_fp Dmix_ref = {1e-05, 1e-05, 1e-05, 1e-05, 1e-05};
|
||||
vector_fp mobilities_ref = {0.000382823, 0.000382823, 0.000382823,
|
||||
0.000382823, 0.000382823};
|
||||
vector_fp fluxes1_ref = {0.0102344, -0.0124461, 0.00221167,
|
||||
2.22987e-14, 2.43291e-10};
|
||||
vector_fp fluxes2_ref = {-0.0191255, -0.0505223, 0.0696478,
|
||||
-7.85548e-13, 7.6615e-09};
|
||||
|
||||
tr.getSpeciesViscosities(spvisc.data());
|
||||
tr.getMixDiffCoeffs(Dmix.data());
|
||||
tr.getMobilities(mobilities.data());
|
||||
tr.getSpeciesFluxes(1, &gradT, N, gradX.data(), N, fluxes1.data());
|
||||
gradX[1] = 0.0;
|
||||
tr.set_Grad_T(&gradT);
|
||||
tr.set_Grad_V(&gradV);
|
||||
tr.set_Grad_X(gradX.data());
|
||||
tr.getSpeciesFluxesExt(N, fluxes2.data());
|
||||
|
||||
for (size_t k = 0; k < N; k++) {
|
||||
EXPECT_NEAR(spvisc[k], spvisc_ref[k], 1e-5);
|
||||
EXPECT_NEAR(Dmix[k], Dmix_ref[k], 1e-7);
|
||||
EXPECT_NEAR(mobilities[k], mobilities_ref[k], 1e-9);
|
||||
EXPECT_NEAR(fluxes1[k], fluxes1_ref[k], 1e-5*std::abs(fluxes1_ref[k]));
|
||||
EXPECT_NEAR(fluxes2[k], fluxes2_ref[k], 1e-5*std::abs(fluxes2_ref[k]));
|
||||
}
|
||||
}
|
||||
|
||||
shared_ptr<ThermoPhase> p;
|
||||
};
|
||||
|
||||
TEST_F(SimpleTransportTest, fromScratch)
|
||||
{
|
||||
SimpleTransport tr(p.get(), 3);
|
||||
LiquidTransportParams params;
|
||||
params.LTData.resize(p->nSpecies());
|
||||
|
||||
LTPspecies_Const* ltp = new LTPspecies_Const();
|
||||
ltp->setName(p->speciesName(0));
|
||||
ltp->setTransportPropertyType(TP_VISCOSITY);
|
||||
ltp->setThermo(p.get());
|
||||
ltp->setCoeff(1.0 * toSI("centipoise"));
|
||||
params.LTData[0].viscosity = ltp;
|
||||
|
||||
ltp = new LTPspecies_Const();
|
||||
ltp->setName(p->speciesName(0));
|
||||
ltp->setTransportPropertyType(TP_THERMALCOND);
|
||||
ltp->setThermo(p.get());
|
||||
ltp->setCoeff(0.58);
|
||||
params.LTData[0].thermalCond = ltp;
|
||||
|
||||
for (size_t k = 0; k < p->nSpecies(); k++) {
|
||||
ltp = new LTPspecies_Const();
|
||||
ltp->setName(p->speciesName(k));
|
||||
ltp->setTransportPropertyType(TP_DIFFUSIVITY);
|
||||
ltp->setThermo(p.get());
|
||||
ltp->setCoeff(1e-5);
|
||||
params.LTData[k].speciesDiffusivity = ltp;
|
||||
}
|
||||
|
||||
params.thermo = p.get();
|
||||
tr.initLiquid(params);
|
||||
tr.setCompositionDependence(LTI_MODEL_SOLVENT);
|
||||
check_transport(tr);
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
printf("Running main() from transportFromScratch.cpp\n");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue