sebastien_F1 |
January 7, 2015 10:13 |
janaf dynamic_cast issue
Hi,
I'm working on fireFoam and I try to implement a new model. For this model, I need to have access to polynomial Janaf coefficients defined in "constant/thermo.compressibleGas".
My solution was to use a dynamic_cast inside my code as follows :
Code:
// Setup the janaf thermo class
typedef janafThermo<perfectGas<specie> > janafType;
typedef sutherlandTransport<sensibleEnthalpy<janafType> > thermoType;
const multiComponentMixture<thermoType>& myThermo =
dynamic_cast<const multiComponentMixture<thermoType>&>(this->thermoPtr_());
// O2 thermal enthalpy
// Oxygen label
const label specie_O2 = this->thermoPtr_->composition().species()["O2"];
// Compute janaf class for O2
const janafType& myThermo_O2 = dynamic_cast<const janafType&>(myThermo.speciesData()[specie_O2]);
// Compute molecular thermal enthalpy [J/kmol]
scalar H_O2 = myThermo_O2.hs(1e5, Tair_);
// Compute molecular weight [kg/kmol]
scalar MW_O2 = this->thermoPtr_->composition().W(specie_O2);
// Calculate thermal enthalpy [J/kg]
scalar hs_O2 = H_O2/MW_O2;
Info << "hs_O2 = " << hs_O2 << endl;
It was working fine in OpenFOAM.2.1 but in OpenFOAM.2.2, I have the following error:
cannot dynamic_cast ... (source type is not polymorphic)
Anyone has a hint how to solve this problem?
Thanks
Sebastien
|