C++ version
The C++ API can be included in your code as follow:
//Include library
#include "Asali.h"
//Main
int main()
{
//Create composition using std vectors
std::vector<std::string> names(3);
std::vector<double> x(3);
names[0] = "H2";
names[1] = "O2";
names[2] = "N2";
x[0] = 0.1;
x[1] = 0.2;
x[2] = 1. - x[0] - x[1];
//Initialize Asali
ASALI::Asali asali;
//Set up composition/pressure and temperature
asali.setSpecies(names);
asali.setTemperature(393.15); //K
asali.setPressure(4e05); //Pa
asali.setMoleFraction(x);
//Properties evaluation
std::vector<std::vector<double>> diff = asali.binaryDiffusion();
std::vector<double> cp = asali.speciesMassCp();
return 0;
}
Example and database generator can be compiled by typing:
./compile.sh
To convert the Asali database into C code run:
./database-generator
Available thermodynamic and transport properties
ASALI estimates different thermodynamic and transport (asali is the library object):
| Function | Estimated property | Return type | Unit dimension |
|---|---|---|---|
| asali.density() | Mixture density | double | kg/m3 |
| asali.mixtureMolecularWeight() | Mixture molecular weight | double | g/mol |
| asali.mixtureThermalConductivity() | Mixture thermal conductivity | double | W/m/K |
| asali.mixtureViscosity() | Mixture viscosity | double | Pa*s |
| asali.mixtureMolarCp() | Mixture specific heat | double | J/kmol/K |
| asali.mixtureMassCp() | Mixture specific heat | double | J/kg/K |
| asali.mixtureMolarEnthalpy() | Mixture enthalpy | double | J/kmol |
| asali.mixtureMassEnthalpy() | Mixture enthalpy | double | J/kg |
| asali.mixtureMolarEntropy() | Mixture entropy | double | J/kmol/K |
| asali.mixtureMassEntropy() | Mixture entropy | double | J/kg/K |
| asali.mixtureDiffusion() | Mixture diffusivity | std::vector<double> | m2/s |
| asali.speciesThermalConductivity() | Single specie thermal conductivity | std::vector<double> | W/m/K |
| asali.speciesViscosity() | Single specie viscosity | std::vector<double> | Pa*s |
| asali.speciesMolarCp() | Single specie specific heat | std::vector<double> | J/kmol/K |
| asali.speciesMassCp() | Single specie specific heat | std::vector<double> | J/kg/K |
| asali.speciesMolarEnthalpy() | Single specie enthalpy | std::vector<double> | J/kmol |
| asali.speciesMassEnthalpy() | Single specie enthalpy | std::vector<double> | J/kg |
| asali.speciesMolarEntropy() | Single specie entropy | std::vector<double> | J/kmol/K |
| asali.speciesMassEntropy() | Single specie entropy | std::vector<double> | J/kg/K |
| asali.arithmeticMeanGasVelocity() | Single gas velocity | std::vector<double> | m/s |
| asali.meanFreePath() | Single mean free path | std::vector<double> | m |
| asali.binaryDiffusion() | Single binary diffusion | std::vector<std::vector<double>> | m2/s |