CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   janaf dynamic_cast issue (https://www.cfd-online.com/Forums/openfoam-programming-development/146812-janaf-dynamic_cast-issue.html)

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


All times are GMT -4. The time now is 08:16.