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/)
-   -   Real Gas EOS (https://www.cfd-online.com/Forums/openfoam-programming-development/103937-real-gas-eos.html)

francesco_capuano June 29, 2012 08:46

Real Gas EOS
 
Hi everybody,

I would like to implement a real-gas equation of state (e.g. Peng-Robinson).
In a very old thread,

http://www.cfd-online.com/Forums/ope...eal-gases.html

some general tips were given; however, any further suggestions (particularly for OpenFOAM 2.0.x or 2.1.x) would be greatly appreciated. Besides, I was wondering if there are any already implemented versions of real-gas EOS which are available on the web.

Thanks in advance.
Francesco

Chris Lucas July 2, 2012 03:17

Hi,

you can find a real gas implementation (redlich Kwong, Peng Robinson ...) for OpenFOAM in OpenFOAM ext. .

http://openfoam-extend.git.sourcefor...-ext;a=summary

Have a look at the branch feature/fullyIntegratedRealGasThermo.

Best Regards,
Christian

francesco_capuano July 2, 2012 06:00

Dear Christian,

thank you very much, that is exactly what I am looking for. I cannot compile it, though. Is it possible to make the library compatible with OpenFOAM v. 2.x? I see that many files are missing in the newer versions (for instance all those in the reaction/reactions folder).

Thanks again,
Francesco

Chris Lucas July 2, 2012 07:01

Hi,

I have no version of the code for OpenFOAM 2.0 but you can rewrite the code yourself. Have you tried the code in OpenFOAM 1.6 ext.?

Best Regards,
Christian

francesco_capuano July 2, 2012 08:47

Thanks for your reply. I haven't tried it yet, but I will soon and let you know.

Best regards,
Francesco

Gitesh P July 5, 2012 08:30

Hello Christian,

Can you give some more detail for how to use these codes ?

Regards,
GP

Chris Lucas July 6, 2012 03:19

Hi,

have a look at the pipe tutorial for rhoPisoFoam. All possible thermodynamic models are shown in the thermodynamicProperties dict. Additionally, have a look at the fvSolution of this case. The flag realFluid should be set to true (This changes the pressure equation a bit). For more infomation have a look at the solver code (rhoPisoFoam, pEqn). If you want to use a different solver, the pressure eqn. in this solver must be changed as well (as I did in rhoPisoFoam)

If you have further questions, please ask :)


By the way, I finished programming the steam tables and are testing them at the moment. Hope to upload them soon.

Christian

francesco_capuano July 13, 2012 08:37

Hi Chris,

I have installed OpenFOAM 1.6-ext but still have some problems with the real-gas libraries. I am particularly interested in simulations involving reacting mixtures: are your libraries able to deal with those cases? Which packages do I have to install from the repository? It seems to me that "real gas EOS for mixtures" and "mixture version of real gas EOS" are not sufficient, aren't they?

Thank you very much, regards,
Francesco

Chris Lucas July 13, 2012 08:43

Hi,

"Which packages do I have to install from the repository?"

--> the latest one

"It seems to me that "real gas EOS for mixtures" and "mixture version of real gas EOS" are not sufficient, aren't they?"

your correct, at the moment the real gas classes are not connected to the reaction library. You have to connect them yourself. I'm not sure how difficult this is.



Regards,
Christian

Servalun July 17, 2013 05:36

records
 
Dear Christian,
I downloaded your real gas implementation code for OpenFoam. I have successfully modified it and now I'm using it for my needs. First of all thanks - great job. I want now to summarize my efforts. Do you have some documentation or records of what you did, that you can share?

Best regards,
Sergey

Gitesh P July 23, 2013 05:15

Real gas implementation code for OpenFoam
 
Hello Sergey,

Nice to know that!

Could you tell me in which version of OpenFOAM you are using for Christian's real gas implementation?

With regards,
GP

Chris Lucas July 25, 2013 03:21

Hi,

he is using OpenFOAM 2.1. I also have a real gas version for OF 2.1 and might release it soon (problem at the moment is to find the best way to do it). Sergey, you can add your stuff afterwards ( if you like :) )

Regards,
Christian

Chris Lucas August 14, 2013 11:32

HI,

I finally finished the work. You can download the real gas library for OF 2.1 here:

git clone https://github.com/morgoth541/of_realFluid.git

Christian

PeterBishop August 26, 2013 11:18

Hi,
I downloaded your library from git repository and tried to compile on my exisiting installation of OF2.1, but when I try to compile thermophysicalModels/basic I get the following error

psiThermo/realGasEThermo/realGasEThermos.C(61): error: argument list for class template "Foam::realGasEThermo" is missing

I'm using Intel compiler 13.0.1.

Moreover the following include appears in basicMixtures.C

#include "binaryMixture.H"

it seems this file does not exist anywhere.

Thanks in advance for your reply and for sharing your work.

immortality August 26, 2013 13:25

Hi
how can download it in GitHub?
is it applicable for 2.2.0 version?
and which model is suitable for air in pressures in the range of:200000pa-1.8Mpa
and temperatures of :300-1300K?

Chris Lucas August 27, 2013 03:08

Hi Peter,

thank you for your response. I found the error (forgot to add one file) and I will push the update after work.

@immortality

it a git repository, use the command in the consol

git clone https://github.com/morgoth541/of_realFluid.git

Christian

immortality August 27, 2013 05:46

Hi dear Christian which model you have used in the code?Van Der Waals or what?
is it appropriate to my case in ranges of p and T I told before?

Chris Lucas August 29, 2013 02:59

Hi

have a look at the repository README file. The new models are explained there.

Christian

PeterBishop September 20, 2013 05:19

Hi Chris,
I downloaded your real gas implementation from your repository and successfully compiled it on my existing of 2.1 installation. Everything works like a charm :)

At the moment I'm trying to make some validation of realFluidPISOSolver, simulating transcritical injection of nitrogen jets, for which there are in literature some experimetal data. In this regard should be very useful to let the solver write the specific heat field, have you any suggestion?

Chris Lucas September 20, 2013 08:18

Hi,

have a look at createFields:

copy and rename "volScalarField rho". Change thermo.rho() to thermo.Cp(). Then, update the new field each time step.

Christian

dalaron September 23, 2013 01:37

I downloaded Chris's of_realFluid from github, but do not know how to compile this on my machine. My experience is limited to making simple modifications to solvers and just using wmake. I'm not sure what I should be doing to ensure the thermophysical property modifications are also included.

Chris Lucas September 23, 2013 03:23

Hi,

you downloaded OpenFOAM 2.1 with my modifications. Simply compile the code (as you would compile the "normal" OpenFOAM version). The water properties (external media) must be compiled by hand (not included in script)

Christian

PeterBishop September 23, 2013 05:20

Hi Chris,
I added the following lines to createfields.H, compiled the solver correctly but when I try to run the realFluidPISOSolver, it is not able to write the Cp field.

Code:

    volScalarField Cp
    (
        IOobject
        (
            "Cp",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        thermo.Cp()
    );

I tried also to add this in realFluidPISOSolver.C with no success

Code:

        rho = thermo.rho();
        Cp  = themro.Cp();
        runTime.write();


Chris Lucas September 23, 2013 05:48

Hi,

1. in here is a typo

rho = thermo.rho(); Cp = themro.Cp(); runTime.write();
is this correct im code?

2. Please try

volScalarField Cp2 ( IOobject ( "Cp2", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), thermo.Cp() );

3. Add an Info line in the Cp() function of realgasThermo.C to see if the function is called.

Christian

dalaron September 23, 2013 05:55

Thanks for the response Chris. I'm still very new to this, so my apologies if these are very basic questions.

As a test I tried the Allmake shell script for my openfoam211 install (not the of_realFluid) to see how it works, but got a whole bunch of error messages.

I moved into /opt/openfoam211 and executed Allmake by
Code:

./Allmake
That was giving me a lot of errors. For example.
Code:

make[1]: *** [multiphaseInterFoam] Error 1
mkdir: cannot create directory `linuxGccDPOpt': Permission denied

Tried running this with sudo/password in an attempt to fix the Permission denied message, but that didn't work either.

Code:

aaron:/opt/openfoam211$ sudo ./Allwmake
./Allwmake: 4: ./Allwmake: wmakeCheckPwd: not found
Error: Current directory is not $WM_PROJECT_DIR
    The environment variables are inconsistent with the installation.
    Check the OpenFOAM entries in your dot-files and source them.
aaron:/opt/openfoam211$ cd $WM_PROJECT_DIR
aaron:/opt/openfoam211$

I'm in the right directory so I'm not quite sure what's going on.

The (limited) experience I have compiling with OpenFOAM requires a Make folder, and files + options with that Make folder. Compiling everything else as you are suggesting isn't like that (at least I don't think so) so I'm getting confused. I've also tried the Allmake shell script in src folder, but get similar error messages

Chris Lucas September 23, 2013 06:57

Hi,

you are trying to compile OF under root without being a superuser.

Have a look through the forum you will definitely find some theads about how to compile OF


Christian

PeterBishop September 23, 2013 08:53

Hi Chris,

Quote:

Originally Posted by Chris Lucas (Post 453085)
1. in here is a typo

rho = thermo.rho(); Cp = themro.Cp(); runTime.write();
is this correct im code?

Yes, the code is ok.

Quote:

Originally Posted by Chris Lucas (Post 453085)
2. Please try
volScalarField Cp2 ( IOobject ( "Cp2", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), thermo.Cp() );

In this way the solver is able to write the specific heat field, every time step the Cp2 variable is written, but I'm not sure to understand why the code does not accept Cp.

Thank you very much for your kind support!

Chris Lucas September 23, 2013 08:56

Hi,

the problem is that in realGasHThermo, a field called Cp is constructed in the Cp() function. So you have to fields with the same name and the last field (which is the one in realGasHThermo) is used.

Christian

dalaron September 23, 2013 10:20

I may be missing something obvious, but when attempting to compile realFluidPISOSolver I get the following error message.
Code:

In file included from realFluidPISOSolver.C:45:0:
createFields.H: In function ‘int main(int, char**)’:
createFields.H:12:43: error: ‘class Foam::basicPsiThermo’ has no member named ‘drhodh’

in createFields.H, line 45
Code:

const volScalarField& drhodh = thermo.drhodh();
I do not know how to compile thermophysical properties which I think needs to be done? Executing Allwmake in of_realFluid/src/thermophysicalModels gives some permission errors and I haven't been able to figure out why.

Thanks for your for your patience. I am learning (albeit slowly!)

Chris Lucas September 23, 2013 10:27

Hi,

you have not compiled my thermo code, so the solver calls a function unknown to him.

Christian

dalaron September 23, 2013 11:39

Quote:

Originally Posted by Chris Lucas (Post 453141)
Hi,

you have not compiled my thermo code, so the solver calls a function unknown to him.

Christian

I don't know how to do that. I've looked around online and in the user guide and still am not sure. There is a similar thread here (http://www.cfd-online.com/Forums/ope...erties-ii.html) and my understanding is that I need to modify Make/options to include the correct path. Something kind of like:

Code:

EXE_INC = \
    -I$(WM_PROJECT_USER_DIR)/of_realFluid/src/thermophysicalModels/specie/lnInclude \
    -I$(WM_PROJECT_USER_DIR)/of_realFluid/src/thermophysicalModels/basic/lnInclude \
    -I$(WM_PROJECT_USER_DIR)/of_realFluid/src/turbulenceModels/compressible/turbulenceModel \
    -I$(WM_PROJECT_USER_DIR)/of_realFluid/src/finiteVolume/lnInclude

EXE_LIBS = \
    -lfiniteVolume \
    -lmeshTools \
    -lbasicThermophysicalModels \
    -lspecie \
    -lcompressibleTurbulenceModel \
    -lcompressibleRASModels \
    -lcompressibleLESModels

Is this even remotely close to what I should be doing? :confused:

Can you possibly provide a more detailed description of how to compile everything correctly?

PeterBishop September 25, 2013 11:11

1 Attachment(s)
Hi Chris,
I'm using realFluidPISOSolver to simulate transcritical injenction of Nitrogen according to the article below with very good result. In the attached image the experimental data for axial density are compared to the simulation results.
The solver seems to work correctly and it is very reliable!

Tae Seon Park, LES and RANS simulations of cryogenic liquid nitrogen jets, J. Of Superciritical Fluids 72 (2012) 232-247

Since you coded real gas formulation for mixtures also I'm wondering how difficult would be to link your library to reactingFoam solver.

Regards

Chris Lucas September 26, 2013 07:45

HI,

depends on your goal. If you simply want to mix inert gases, that should be easy.

Christian

dalaron September 28, 2013 08:00

Hi Chris,
Sorry to continue bothering you with this, but I am still not able to compile your real gas solver on my computer. I really want to get this working and haven't been able to figure out my problems over the last few days.

Peter, perhaps you can help me out also?

Chris, you mentioned that I need to compile the thermo code. I haven't been able to do that. I have the of_realFluid from your git saved to my home folder:
Code:

aaron:~/OpenFOAM/aaron-2.1.1/of_realFluid/
To try and compile the thermo code I moved into
Code:

aaron:~/OpenFOAM/aaron-2.1.1/of_realFluid/src/thermophysicalModels/basic$
and executed wmake command. I get the following error message:
Code:

In file included from mixtures/basicMixture/basicMixture.C:26:0:
mixtures/basicMixture/basicMixture.H:39:23: fatal error: volFields.H: No such file or directory
compilation terminated.
make: *** [Make/linuxGccDPOpt/basicMixture.o] Error 1

So it can't find volFields.H.

Within the Make folder, I changed "files" at the very end to have LIB = $(FOAM_USER_LIBBIN)/libbasicThermophysicalModels and this is my "options" file:

Code:

EXE_INC = \
    -I$(WM_PROJECT_USER_DIR)/of_realFluid/src/finiteVolume/lnInclude \
    -I$(WM_PROJECT_USER_DIR)/of_realFluid/src/thermophysicalModels/specie/lnInclude

LIB_LIBS = \
    -lfiniteVolume

I have tried looking around the forums for a few days now and don't know what to do. Any help is much appreciated.
Regards,
Aaron

Chris Lucas September 30, 2013 04:14

Hi,

change the installation path in OpenFOAM/etc/bashrc and compile OpenFOAM (all of it) using Allwmake (the installed OF version must not be loaded)

or

compile the thermo library as a FOAM_USER_LIBBIN. Rename it dynamic library (e.g. /libbasicThermophysicalModels2). Make sure the install OpenFOAM version on your machine is compatible to the OF version I used. The environment variables of the installed OF version must be loaded. Then, change the path to the new thermo library in the solver and compile the solver

Christian

PS:

have a look at
http://openfoamwiki.net/index.php/In...OpenFOAM-2.1.1
or
http://openfoamwiki.net/index.php/In...M-2.2.0/Ubuntu

PeterBishop October 1, 2013 11:14

Quote:

Originally Posted by Chris Lucas (Post 453706)
depends on your goal. If you simply want to mix inert gases, that should be easy.

Hi Chris,
mixing inert gases should be a good starting point! My real goal is to have a real gas capable version of reactingFoam.

Chris Lucas October 2, 2013 02:48

Hi,

the library can mix inert gases if you provide the correct mixture class (e.g. rewrite pureMixture.C).

For reactions: A guess you need to add a few more things. Have a look at the difference between specieThermo and realGasSpecieThermo (especially the functions I remove without an equivalent new function)

Another point is the enthalpy of formation, which must be included.

Finally, you must add the library to the reaction models (have a look how the current thermo models are connected to the reaction model)


Christian


magazoni December 2, 2013 10:41

Problem with IAPWS package
 
Hi Chris,

The real gas package is working, but when I tried to use the IAPWS package, the following error appears:

Code:

--> FOAM FATAL ERROR:
Unknown basicPsiThermo type IAPWSThermo

Valid basicPsiThermo types are:

35
(
ePsiThermo<pureMixture<constTransport<specieThermo<eConstThermo<perfectGas>>>>>
ePsiThermo<pureMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>
ePsiThermo<pureMixture<sutherlandTransport<specieThermo<eConstThermo<perfectGas>>>>>
ePsiThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>
ePsiThermo<pureMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>
hPsiThermo<pureMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>
hPsiThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>
hPsiThermo<pureMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>
hsPsiThermo<pureMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>
hsPsiThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>
hsPsiThermo<pureMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>
realGasEThermo<pureMixture<constTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<aungierRedlichKwong>>>>>
realGasEThermo<pureMixture<constTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<pengRobinson>>>>>
realGasEThermo<pureMixture<constTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<redlichKwong>>>>>
realGasEThermo<pureMixture<constTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<soaveRedlichKwong>>>>>
realGasEThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<aungierRedlichKwong>>>>>
realGasEThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<pengRobinson>>>>>
realGasEThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<redlichKwong>>>>>
realGasEThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<soaveRedlichKwong>>>>>
realGasHThermo<pureMixture<constTransport<realGasSpecieThermo<constantHeatCapacity<aungierRedlichKwong>>>>>
realGasHThermo<pureMixture<constTransport<realGasSpecieThermo<constantHeatCapacity<pengRobinson>>>>>
realGasHThermo<pureMixture<constTransport<realGasSpecieThermo<constantHeatCapacity<redlichKwong>>>>>
realGasHThermo<pureMixture<constTransport<realGasSpecieThermo<constantHeatCapacity<soaveRedlichKwong>>>>>
realGasHThermo<pureMixture<constTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<aungierRedlichKwong>>>>>
realGasHThermo<pureMixture<constTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<pengRobinson>>>>>
realGasHThermo<pureMixture<constTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<redlichKwong>>>>>
realGasHThermo<pureMixture<constTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<soaveRedlichKwong>>>>>
realGasHThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<constantHeatCapacity<aungierRedlichKwong>>>>>
realGasHThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<constantHeatCapacity<pengRobinson>>>>>
realGasHThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<constantHeatCapacity<redlichKwong>>>>>
realGasHThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<constantHeatCapacity<soaveRedlichKwong>>>>>
realGasHThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<aungierRedlichKwong>>>>>
realGasHThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<pengRobinson>>>>>
realGasHThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<redlichKwong>>>>>
realGasHThermo<pureMixture<sutherlandTransport<realGasSpecieThermo<nasaHeatCapacityPolynomial<soaveRedlichKwong>>>>>
)



    From function basicPsiThermo::New(const fvMesh&)
    in file psiThermo/basicPsiThermo/basicPsiThermoNew.C at line 60.

FOAM exiting

I tried to compile the IAPWS package, but there is a problem,

Code:

cluster@node0:/opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/externalMedia/IAPWS_Waterproperties$ wmake libso
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file IAPWSThermo/IAPWS-IF97.C
Making dependency list for source file IAPWSThermo/IAPWSThermos.C
SOURCE=IAPWSThermo/IAPWS-IF97.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-100 -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/specie/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude  -IlnInclude -I. -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/OSspecific/POSIX/lnInclude  -fPIC -c $SOURCE -o Make/linux64GccDPOpt/IAPWS-IF97.o
In file included from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/Field.H:360:0,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/DimensionedField.H:42,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricField.H:44,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricScalarField.H:38,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricFields.H:34,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/lnInclude/volFields.H:37,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/basicThermo.H:39,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/basicPsiThermo.H:39,
                from IAPWSThermo/IAPWS-IF97.H:44,
                from IAPWSThermo/IAPWS-IF97.C:33:
/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/Field.C: In member function ‘void Foam::Field<Type>::operator=(const Foam::VectorSpace<Form, Cmpt, nCmpt>&)’:
/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/Field.C:680:42: warning: typedef ‘VSType’ locally defined but not used [-Wunused-local-typedefs]
    typedef VectorSpace<Form,Cmpt,nCmpt> VSType;
                                          ^
IAPWSThermo/IAPWS-IF97.C: In function ‘void Foam::calculateProperties_h(SteamState, Foam::scalar&, Foam::scalar&, Foam::scalar&, Foam::scalar&, Foam::scalar&, Foam::scalar&, Foam::scalar&, Foam::scalar&, Foam::scalar&)’:
IAPWSThermo/IAPWS-IF97.C:240:62: warning: variable ‘cpv’ set but not used [-Wunused-but-set-variable]
        scalar rhov,rhol,betav,betal,kappav,kappal,vv,vl,cpl,cpv,hl,hv,cp;
                                                              ^
IAPWSThermo/IAPWS-IF97.C: In function ‘Foam::scalar Foam::psiH(SteamState)’:
IAPWSThermo/IAPWS-IF97.C:432:62: warning: variable ‘cpv’ set but not used [-Wunused-but-set-variable]
        scalar rhov,rhol,betav,betal,kappav,kappal,vv,vl,cpl,cpv,hl,hv,h,p;
                                                              ^
IAPWSThermo/IAPWS-IF97.C:489:12: warning: ‘psiH’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    return psiH;
            ^
IAPWSThermo/IAPWS-IF97.C: In function ‘Foam::scalar Foam::drhodh(SteamState)’:
IAPWSThermo/IAPWS-IF97.C:586:12: warning: ‘drhodh’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    return drhodh;
            ^
SOURCE=IAPWSThermo/IAPWSThermos.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-100 -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/specie/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude  -IlnInclude -I. -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.0/src/OSspecific/POSIX/lnInclude  -fPIC -c $SOURCE -o Make/linux64GccDPOpt/IAPWSThermos.o
In file included from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/Field.H:360:0,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/DimensionedField.H:42,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricField.H:44,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricScalarField.H:38,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricFields.H:34,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/lnInclude/volFields.H:37,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/basicThermo.H:39,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/basicPsiThermo.H:39,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/makeBasicPsiThermo.H:35,
                from IAPWSThermo/IAPWSThermos.C:34:
/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/Field.C: In member function ‘void Foam::Field<Type>::operator=(const Foam::VectorSpace<Form, Cmpt, nCmpt>&)’:
/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/Field.C:680:42: warning: typedef ‘VSType’ locally defined but not used [-Wunused-local-typedefs]
    typedef VectorSpace<Form,Cmpt,nCmpt> VSType;
                                          ^
In file included from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/typeInfo.H:57:0,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/IOobject.H:76,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/regIOobject.H:41,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricField.H:42,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricScalarField.H:38,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/GeometricFields.H:34,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/lnInclude/volFields.H:37,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/basicThermo.H:39,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/basicPsiThermo.H:39,
                from /opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/makeBasicPsiThermo.H:35,
                from IAPWSThermo/IAPWSThermos.C:34:
IAPWSThermo/IAPWSThermos.C: At global scope:
IAPWSThermo/IAPWSThermos.C:65:5: error: ‘Foam::IAPWSThermo::typeName’ is not a static data member of a class template [-fpermissive]
    IAPWSThermo
    ^
/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/className.H:102:24: note: in definition of macro ‘defineTypeNameWithName’
    const ::Foam::word Type::typeName(Name)
                        ^
/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/className.H:202:5: note: in expansion of macro ‘defineTemplateTypeNameWithName’
    defineTemplateTypeNameWithName(Type, Name);                              \
    ^
/opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/makeBasicPsiThermo.H:100:1: note: in expansion of macro ‘defineTemplateTypeNameAndDebugWithName’
 defineTemplateTypeNameAndDebugWithName                                        \
 ^
IAPWSThermo/IAPWSThermos.C:63:1: note: in expansion of macro ‘makeBasicExternalLibraryBasedThermo’
 makeBasicExternalLibraryBasedThermo
 ^
IAPWSThermo/IAPWSThermos.C:65:5: error: ‘Foam::IAPWSThermo::debug’ is not a static data member of a class template [-fpermissive]
    IAPWSThermo
    ^
/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/className.H:143:9: note: in definition of macro ‘defineDebugSwitchWithName’
    int Type::debug(::Foam::debug::debugSwitch(Name, DebugSwitch))
        ^
/opt/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude/className.H:203:5: note: in expansion of macro ‘defineTemplateDebugSwitchWithName’
    defineTemplateDebugSwitchWithName(Type, Name, DebugSwitch)
    ^
/opt/OpenFOAM/OpenFOAM-2.1.0/src/thermophysicalModels/basic/lnInclude/makeBasicPsiThermo.H:100:1: note: in expansion of macro ‘defineTemplateTypeNameAndDebugWithName’
 defineTemplateTypeNameAndDebugWithName                                        \
 ^
IAPWSThermo/IAPWSThermos.C:63:1: note: in expansion of macro ‘makeBasicExternalLibraryBasedThermo’
 makeBasicExternalLibraryBasedThermo
 ^
make: ** [Make/linux64GccDPOpt/IAPWSThermos.o] Erro 1

Do you have any idea about this?

Thanks in advanced,
Felipe Magazoni

Chris Lucas December 2, 2013 11:14

Hi,

do you use my github code or have you included the new code in your OF version?



Christian

Chris Lucas December 2, 2013 11:19

Hi,

the problem seems to be related to the macro in basicPsiThermo.

Have a look if the code is copied correctly.

Christian


All times are GMT -4. The time now is 23:30.