Filled out TransportFactory::getLiquidInteractionsTransportData to
parse interaction parameters. About 220 lines of XML node extraction
added.
LiquidTransport.h LiquidTransport.cpp
Near the end of LiquidTransport::initLiquid, added the copying of
interaction parameters from the LiquidTransportParams object to
members:
+ m_visc_Eij = tr.visc_Eij;
+ m_visc_Sij = tr.visc_Sij;
+ m_lambda_Aij = tr.thermalCond_Aij;
+ m_diff_Dij = tr.diff_Dij;
+ m_radius_Aij = tr.radius_Aij;
Note that the last member was added to allow for hydrodynamic radius
mixing rules.
associated with transport coefficient mixing properties:
+ LiquidTranMixingModel m_viscMixModel;
+ LiquidTranMixingModel m_lambdaMixModel;
+ DenseMatrix m_lambda_Aij;
+ LiquidTranMixingModel m_diffMixModel;
+ DenseMatrix m_diff_Dij;
+ LiquidTranMixingModel m_radiusMixModel;
Removed
- int m_compositionDepType;
since it is replaced by the above property-dependent model
specifications.
Similarly in LiquidTransportParams.h added following
+ LiquidTranMixingModel model_viscosity;
+ LiquidTranMixingModel model_thermalCond;
+ DenseMatrix thermalCond_Aij;
+ LiquidTranMixingModel model_speciesDiffusivity;
+ DenseMatrix diff_Dij;
+ LiquidTranMixingModel model_hydroradius;
Added some processing of the above variables from the XML file in
LiquidTransport::getLiquidInteractionsTransportData.
Removed XML node processing of transport model (species interaction part) from
initLiquid().
m_molefracs_tran and m_concentrations are now properly dimensioned and copied.
TransportFactory.cpp
Corrections to XML node processing in getLiquidSpeciesTransportData
and getLiquidSpeciesInteractionData
Added methods
void getSpeciesHydrodynamicRadius() -- similar to getSpeciesViscosities()
void updateHydrodynamicRadius_T() -- similar to updateViscosities_T()
void updateHydrodynamicRadius_C()
Added private members
bool m_radi_temp_ok;
bool m_radi_conc_ok;
LiquidTransportData and TransportParams. However, the last set of
changes broke AqueosTransport because it uses the same property
coefficient vectors as those now moved to GasTransportParams.
Changed order of some prototypes in LiquidTransport.h to group public,
protected and private members better.
Renamed methods (consistency with other transport models) like
virtual void update_temp()
to
virtual bool update_T() //note boolean return value
Added method getSpeciesHydrodynamicRadius(doublereal* const radius);
to fill the hydrodynamic radius array.
Added protected member vectors to hold information on
temperature-dependent species transport properties:
(1) model enumeration like
vector<LiquidTR_Model> m_viscTempDepType_Ns;
(2) coefficients of temperature-dependent properties like
vector<Coeff_T_> m_coeffVisc_Ns;
These replace sets of variables like m_visc_A, m_visc_n, m_visc_Tact.
These are filled in LiquidTransport::initLiquid using
LiquidTransportData vector held within LiquidTransportParams
Species thermal conductivity variables now use "lambda" instead of
"cond" for simplicity.
Still need to work on species-species interactions. Variables like
int m_compositionDepType will need to be replaced by property-specific
(i.e. viscosity, thermal conductivity) variables.
Major changes to LiquidTransport::initLiquid(LiquidTransportParams&
tr)
- starting to bring in species-species interactions, but not there
yet.
- complete rewrite of filling temperture-dependent property variables.
- added hydrodynamic radius and species diffusivity property parsing.
-
LiquidTransport::thermalConductivity() now uses mass-fraction weighted
mixing rule. Generality will follow.
LiquidTransport::updateViscosity
LiquidTransport::updateCond_T() hava been updated to use new
temperture-dependent property coefficients (m_lambdaTempDepType_Ns and
m_coeffLambda_Ns).
LiquidTransport::updateDiff() now computes Stefan-Maxwell interaction
parameters (D_ij) using Stokes-Einstein reltion.
Moved temperature fits polynomials for viscosity, conductivity,
diffusivity from TransportParams to GasTransportParams.
Defined mixing model enumeration for liquid species-species
interactions in LiquidTransportParams
enum LiquidTranMixingModel {
LTR_MIXMODEL_NOTSET=-1,
LTR_MIXMODEL_SOLVENT,
LTR_MIXMODEL_MOLEFRACS,
LTR_MIXMODEL_MASSFRACS,
LTR_MIXMODEL_LOG_MOLEFRACS,
LTR_PAIRWISE_INTERACTIONS
};
Removed species Arrhenius parameters from LiquidTransportParams.
These are now held in LiquidTransportData obejcts which are stored as
a vector in LiquidTransportParams
In LiquidTransportData, the hydrodynamic radius now holds coefficients
for temperature dependent models instead of just a constant value.
Also changed enumeration for polynomial from LTR_MODEL_COEFF to
LTR_MODEL_POLY.
TransportFactory::setupLiquidTransport:
Removed "transport_database" argument since this can equally well be
pulled from thermo object also passed. The "transport_databse" is now
called species_database (since it holds the vector of species nodes.
The method getLiquidTransportData is renamed to
getLiquidSpeciesTransportData to reflect the fact that it just parses
the species node parts of the transport data.
A new XML_Node, called phase_database and corresponding to the phase,
is defined. If this has a child "transport" node, this node is passed
to the new method.
void TransportFactory::getLiquidInteractionsTransportData(
const XML_Node &transportNode,
XML_Node& log,
const std::vector<std::string>& names,
LiquidTransportParams& tr);
This method, largely unfilled, will parse models for species-species
interactions in the liquid phase.
TransportFactory::getLiquidSpeciesTransportData
Largely minor changes to the parsing of the species transport
properties, but allow all temperature dependence models for
hydrodynamic radius just for generality.
LiquidTransportData objects are now pushed directly onto
LiquidTransportParams instead of filling members of
LiquidTransportParams. Removed most of the unit conversion and will
rely largely on the parser unit conversions. Need to be careful
here, especially with the hydrodynamic radius which will likely be
given in Angstroms and not meters.