CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (http://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   icoPolynomial (http://www.cfd-online.com/Forums/openfoam-programming-development/75690-icopolynomial.html)

MartinEB May 3, 2010 08:51

icoPolynomial
 
Dear all,

¿Does anybody know how to use icoPolynomial in the thermophysicalProperties File?

I've failed to find a syntax example

Thank you

mik June 20, 2010 10:13

Hi Martin,

have you find a solution for the usage of icoPolynomial ?

Because it is not already "ACITVE" in OprnFOAM-1.6 , one has to active it inserting the following lines:

Code:

$(equationOfState)/icoPolynomial/icoPolynomial.C
in the file named file located in the Make directory in
Code:

thermophysicalModels/specie
Unfortunately does not work!

Compiling (using first wclean ans then wmake libso commands) one becomes some errors related to icoPolynomial...

Code:

equationOfState/icoPolynomial/icoPolynomial.C:38: error: redefinition of ‘Foam::icoPolynomial<PolySize>::icoPolynomial(Foam::Istream&)’
equationOfState/icoPolynomial/icoPolynomial.C:38: error: ‘Foam::icoPolynomial<PolySize>::icoPolynomial(Foam::Istream&)’ previously declared here
equationOfState/icoPolynomial/icoPolynomial.C:48: error: redefinition of ‘template<int PolySize> Foam::Ostream& Foam::operator<<(Foam::Ostream&, const Foam::icoPolynomial<PolySize>&)’
equationOfState/icoPolynomial/icoPolynomial.C:48: error: ‘template<int PolySize> Foam::Ostream& Foam::operator<<(Foam::Ostream&, const Foam::icoPolynomial<PolySize>&)’ previously declared here
make: *** [Make/linux64GccDPOpt/icoPolynomial.o] Error 1

Can please someone help me/us ?

Many thanks

Best regards

Michea

rolfL August 27, 2010 05:42

Hi Michea,

have the same problem and solved it with help of the tutorial lagrangian/porousExplicitSourceReactingParcelFoam/filter . Also
http://www.cfd-online.com/Forums/ope...erties-ii.html
is very interesting.

I think you don't have to activate icoPolynimial.H . You can find in thermophysicalModels/specie/include/thermoPhysicsTyes.H

Code:

    typedef polynomialTransport
        <
            specieThermo
            <
                hPolynomialThermo
                <
                    icoPolynomial<8>,
                    8
                >
            >,
            8
        >
        icoPoly8ThermoPhysics;

This code defines a combination of transport model, thermodynamic model and equation of state which you can use in hRhoThermo or even an other thermoType. There or in an new file mythermoPhysicsTyes.H you can define your own combinations.
In my case (thermoType hRhoThermo<pureMixture<icoPoly8ThermoPhysics>>)

  • I add an second constructor to rhoThermo/basicRhoThermo/makeBasicRhoThermo.H
    Code:

    #define makeBasicRhoPoly8Thermo(Cthermo,Mixture,ThermoPhys)      \
                                                                    \
    typedef Cthermo<Mixture<ThermoPhys> >                              \
        Cthermo##Mixture##ThermoPhys;                              \
                                                                      \
    defineTemplateTypeNameAndDebugWithName                            \
    (                                                                \
        Cthermo##Mixture##ThermoPhys,                              \
        #Cthermo"<"#Mixture"<"#ThermoPhys">>",                        \
        0                                                          \
    );                                                              \
                                                                    \
    addToRunTimeSelectionTable                                      \
    (                                                                  \
        basicRhoThermo,                                                \
        Cthermo##Mixture##ThermoPhys,                                  \
        fvMesh                                                      \
    )

  • Declare your model in rhoThermo/hRhoThermo/hRhoThermos.C
    Code:

    #include "icoPolynomial.H"
    #include "hPolynomialThermo.H"
    #include "polynomialTransport.H"
    #include "thermoPhysicsTypes.H"

    #....


    makeBasicRhoPoly8Thermo
    (
        hRhoThermo,
        pureMixture,
        icoPoly8ThermoPhysics
    );

  • Now the ame thing for the mixture model
    Add a second constructor in basic/mixtures/basicMixture/makeBasicMixture.H
    Code:

    #define makeBasicPoly8Mixture(Mixture,ThermoPhys)  \
                                                        \
    typedef Mixture<ThermoPhys>                          \
        Mixture##ThermoPhys;                            \
                                                        \
    defineTemplateTypeNameAndDebugWithName              \
    (                                                  \
        Mixture##ThermoPhys,                            \
        #Mixture"<"#ThermoPhys">",                        \
        0                                              \
    );                                                  \

  • and define the new model in basic/mixture/basicMixture/basicMixtures.C

    Code:

    #include "icoPolynomial.H"
    #include "hPolynomialThermo.H"
    #include "polynomialTransport.H"
    #include "thermoPhysicsTypes.H"

    #....

    makeBasicPoly8Mixture
    (
        pureMixture,
        icoPoly8ThermoPhysics
    );

  • add to basic/Make/options
    Code:

        -I$(WM_PROJECT_USER_DIR)/src/thermophysicalModels/specie/include \
    that the compiler find the thermoPhysicsTypes.H (or mythermoPhysicsTypes.H)

    an to basic/Make/files
    Code:

    LIB = $(FOAM_USER_LIBBIN)/libmybasicThermophysicalModels
Make sure that your solver reads the new libmybasicThermophysicalModels.
Now you can use
Code:

thermoType  hRhoThermo<pureMixture<icoPoly8ThermoPhysics>>;

mixture fluid
    1        //nMoles
    1        //molecular weight [kg/kmol]
    rhoPolynomial            //Density [kg/m^3]
    (
      -1184.001476
        24.60296436
      -0.102643604
        0.000190266
      -1.3575E-07
      0
      0
      0
    )
    0                                // Standard formation enthalpy [J/kg]
    0                                // Standard entropy [J/kg/K]
    cpPolynomial            //heat capacity [J/kgK]
    (
        37498.29651
      -397.803871
        1.784995791
      -0.003571033
        2.69033E-06
      0
      0
      0
    )
    muPolynomial            //dynamic viscosity [kg/ms]
    (
        0.482530744
      -0.005623874
        2.4706E-05
      -4.83898E-08
        3.5613E-11
      0
      0
      0
    )
    kappaPolynomial            //heat conductivity [W/mK]
    (
        6.710422429
      -0.085502221
        0.00042304
      -8.92444E-07
        6.88012E-10
      0
      0
      0
    )

I hope it helps and good luck.
Kind regards,
Rolf

schteff September 27, 2010 07:57

Hi everybody,

does anyone has any experience with this changes and the changes in polynomial thermophysical properties II with the chtMultiRegionFoam- Solver?

Does it work?

I want to simulate the heat transfer from an Air-Region through two Solid-Regions into a Water-Region, but I can only use "perfect Gas" as equation of state and not icoPolynomial. (the Air-Region has 500 K and should be cooled by the water region 300 K). So my problem is the water!

Do I have to change the solver-files?

Thanks a lot for any help

stefan

juho September 28, 2010 05:10

The changes proposed by Rolf seem to work for the basicRhoThermo used in the buoyantPimpleFoam/buoyantSimpleFoam.

However, the chtMultiRegionFoam uses the basicPsiThermo, which calculates the density as

rho = p*psi;

The icoPolynomial returns a zero for the compressibility psi, which results in zero density. Thus, it does not work with the basicPsiThermo. In my opinion, to use the icoPolynomial equation of state in the chtMultiRegionFoam, the solver could be converted to use the basicRhoThermo along the guidelines of the buoyantPimpleFoam.

schteff September 28, 2010 08:03

Hello juho,

thank you.

Do you know how to convert the solver?
And what happens with the Air-Region when I convert the solver?

regards,

Stefan

juho September 28, 2010 09:21

Quote:

Originally Posted by schteff (Post 276908)
Do you know how to convert the solver?
And what happens with the Air-Region when I convert the solver?

I'd like to think I do, but I haven't done it. :)

As far as I know, the fluid regions would behave the same way they do in the buoyantPimpleFoam. The main difference is in the pressure equation formulation. Each region has its own thermoPhysicalProperties, so for each of them, any of the basicRhoThermo sub models can be used. For ex. perfectGas equation-of-state in one region and icoPolynomial in another.

olivierG September 28, 2010 12:24

hello,
in order to compile, we need to copy thermophysicalModels/{specie,basic} in $(WM_PROJECT_USER_DIR)/src

Sorry for editing ...

regards,
Olivier

will.logie October 12, 2010 11:51

compiling a buoyantPimpleFoam with icoPolynomial added to "user" thermophysicalModels
 
1 Attachment(s)
greetings all!

I've been stuffing around with openfoam171 for the last day or so because I ultimately want to get chtMultiRegionFoam up and running with icoPolynomial too.

To begin with, I did as the doctor ordered and created user libraries libuBasicThermophysicalModels.so and libuSpecie.so from source (/src/thermophysicalModels/) to my $FOAM_USER_LIBBIN directory. That seemed to work OK.

Next I copied the buoyantPimpleFoam source to $FOAM_PROJECT_USER_DIR/applications/solvers and modified the dependencies such that Make/files look like this:
Code:

uBuoyantPimpleFoam.C

EXE = $(FOAM_USER_APPBIN)/uBuoyantPimpleFoam

and Make/options like this:
Code:

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

EXE_LIBS = \
    -L$(FOAM_USER_LIBBIN)/libuBasicThermophysicalModels.so \
    -L$(FOAM_USER_LIBBIN)/libuSpecie.so \
    -lmeshTools \
    -lcompressibleTurbulenceModel \
    -lcompressibleRASModels \
    -lcompressibleLESModels \
    -lfiniteVolume

What I don't understand is why
Code:

ldd 'uBuoyantPimpleFoam' | less
then shows a link to the libbasicThermophysicalModels.so file:
Code:

linux-gate.so.1 =>  (0x003d1000)
        libmeshTools.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmeshTools.so (0x00110000)
        libcompressibleTurbulenceModel.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleTurbulenceModel.so (0x00712000)
        libcompressibleRASModels.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleRASModels.so (0x00a55000)
        libcompressibleLESModels.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleLESModels.so (0x00ccc000)
        libfiniteVolume.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libfiniteVolume.so (0x00e00000)
        libOpenFOAM.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libOpenFOAM.so (0x11588000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00353000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x003d2000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00357000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x009f4000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x0059f000)
        libbasicThermophysicalModels.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libbasicThermophysicalModels.so (0x004c8000)
        libPstream.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libPstream.so (0x0037d000)
        libtriSurface.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libtriSurface.so (0x0075e000)
        libdecompositionMethods.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libdecompositionMethods.so (0x00387000)
        liblagrangian.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/liblagrangian.so (0x003a5000)
        libspecie.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libspecie.so (0x007cd000)
        libLESdeltas.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libLESdeltas.so (0x00848000)
        libLESfilters.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libLESfilters.so (0x00871000)
        libz.so.1 => /lib/libz.so.1 (0x0056d000)
        /lib/ld-linux.so.2 (0x00582000)
        libmpi.so.0 => /home/will/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/lib/libmpi.so.0 (0x00915000)
        libscotchDecomp.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotchDecomp.so (0x003be000)
        libmetisDecomp.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmetisDecomp.so (0x006f9000)
        libparMetisDecomp.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libparMetisDecomp.so (0x009a1000)
        libopen-rte.so.0 => /home/will/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/lib/libopen-rte.so.0 (0x00c5e000)
        libopen-pal.so.0 => /home/will/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/lib/libopen-pal.so.0 (0x110eb000)
        libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0x009b4000)
        libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0x003cb000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x009cb000)
        libscotch.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotch.so (0x07936000)
        libscotcherrexit.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotcherrexit.so (0x00cb4000)
        libmetis.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmetis.so (0x05f0e000)
        libGKlib.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libGKlib.so (0x00a13000)
        libmetis-parmetis.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libmetis-parmetis.so (0x1c6d4000)
        libparmetis.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libparmetis.so (0x091e1000)

Does anyone have a tip or two I could try, or better yet, can tell me what I'm doing wrong?

Cheers,
Will.

EDIT: (see http://www.openfoam.com/docs/user/co...plications.php -> 3.2.2.2)
The actual library files to be linked must be specified using the -l option and removing the lib prefix and .so extension from the library file name, e.g.libnew.so is included with the flag -lnew. By default, wmake loads the following libraries:
  1. the libOpenFOAM.so library from the $FOAM_LIBBIN directory;
  2. platform dependent libraries specified in set in files in the $WM_DIR/rules/$WM_ARCH/ directory, e.g.libm.so from /usr/X11/lib and liblam.so from $(LAM_ARCH_PATH)/lib;
  3. other libraries specified in the Make/options file.

will.logie October 12, 2010 12:41

Hmmm... still not quite satisfactory:
 
Code:

        linux-gate.so.1 =>  (0x002a5000)
      libuBasicThermophysicalModels.so =>  /home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuBasicThermophysicalModels.so  (0x00761000)
        libuSpecie.so => /home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuSpecie.so (0x00110000)

        libmeshTools.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmeshTools.so (0x00397000)
        libcompressibleTurbulenceModel.so =>  /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleTurbulenceModel.so  (0x0089b000)
        libcompressibleRASModels.so =>  /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleRASModels.so  (0x008e7000)
        libcompressibleLESModels.so =>  /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleLESModels.so  (0x005da000)
        libfiniteVolume.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libfiniteVolume.so (0x00b87000)
        libOpenFOAM.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libOpenFOAM.so (0x0a412000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x0037b000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0018b000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x002a6000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00281000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x18f3a000)
        libPstream.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libPstream.so (0x0073a000)
        libtriSurface.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libtriSurface.so (0x002cc000)
        libdecompositionMethods.so =>  /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libdecompositionMethods.so  (0x0033b000)
        liblagrangian.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/liblagrangian.so (0x00359000)
        libbasicThermophysicalModels.so =>  /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libbasicThermophysicalModels.so  (0x06544000)
        libspecie.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libspecie.so (0x0080f000)

        libLESdeltas.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libLESdeltas.so (0x0070e000)
        libLESfilters.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libLESfilters.so (0x1f49b000)
        libz.so.1 => /lib/libz.so.1 (0x0037f000)
        /lib/ld-linux.so.2 (0x00b6a000)
        libmpi.so.0 => /home/will/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/lib/libmpi.so.0 (0x21a67000)
        libscotchDecomp.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotchDecomp.so (0x00744000)
        libmetisDecomp.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmetisDecomp.so (0x00751000)
        libparMetisDecomp.so =>  /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libparMetisDecomp.so  (0x00af0000)
        libopen-rte.so.0 =>  /home/will/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/lib/libopen-rte.so.0  (0x00b03000)
        libopen-pal.so.0 =>  /home/will/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/lib/libopen-pal.so.0  (0x0ad49000)
        libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0x00b4a000)
        libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0x002a0000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x143dd000)
        libscotch.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotch.so (0x0cd7c000)
        libscotcherrexit.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotcherrexit.so (0x00372000)
        libmetis.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmetis.so (0x03e43000)
        libGKlib.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libGKlib.so (0x1041b000)
        libmetis-parmetis.so =>  /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libmetis-parmetis.so  (0x157f1000)
        libparmetis.so => /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libparmetis.so (0x16615000)

Does anyone know where the libbasicThermophysicalModels.so and libspecie.so are otherwise added to buoyantPimpleFoam?

rolfL October 13, 2010 01:25

Hi Will,

This is the make file I used.

Code:

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

EXE_LIBS = \
    -L$(FOAM_USER_LIBBIN) \
    -lmybasicThermophysicalModels \
    -lmyspecie \
    -lmeshTools \
    -lcompressibleTurbulenceModel \
    -lcompressibleRASModels \
    -lcompressibleLESModels \
    -lfiniteVolume

My ldd command output for mybuoyantPimpleFoam is similar to yours. There is also a link to libbasicThermophysicalModels.so and libspecie.so. But it works correctly for me and I have no problems using icoPolynomial with mybuoyantPimpleFoam.

will.logie October 13, 2010 07:50

yeap, I got the same thing not long after posting... however mine ain't working
 
1 Attachment(s)
Thanks Rolf,

The problem I'm getting now though probably has to do with my inexperience in general. I've compiled uBuoyantPimpleFoam and created a simple convective example with your thermophysical icoPolynomial coefficients. The tube is 320K and everything else starts at 300K:

Code:

/*---------------------------------------------------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  1.7.1                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.com                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
Build  : 1.7.1-03e7e056c215
Exec  : uBuoyantPimpleFoam
Date  : Oct 13 2010
Time  : 13:42:28
Host  : pc-spf-163
PID    : 8316
Case  : /home/will/OpenFOAM/will-1.7.1/run/ihx/uBuoyantPimpleFoam/2Dcavity
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0


Reading g
Reading thermophysical properties

Selecting thermodynamics package hRhoThermo<pureMixture<icoPoly8ThermoPhysics>>
Reading field U

Reading/calculating face flux field phi

Creating turbulence model

Selecting turbulence model type RASModel
Selecting RAS turbulence model kEpsilon
kEpsilonCoeffs
{
    Cmu            0.09;
    C1              1.44;
    C2              1.92;
    C3              -0.33;
    sigmak          1;
    sigmaEps        1.3;
    Prt            1;
}

Calculating field g.h

Reading field p_rgh

Creating field DpDt

Courant Number mean: 0 max: 0

Starting time loop

Courant Number mean: 0 max: 0
deltaT = 0.0119048
Time = 0.0119048

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG:  Solving for Ux, Initial residual = 1, Final residual = 5.19166e-07, No Iterations 39
DILUPBiCG:  Solving for Uy, Initial residual = 1, Final residual = 7.13873e-07, No Iterations 42
DILUPBiCG:  Solving for h, Initial residual = 1, Final residual = 6.83868e-07, No Iterations 45
DICPCG:  Solving for p_rgh, Initial residual = 0.988612, Final residual = 0.00728285, No Iterations 31
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 7.69566e-05, global = 8.02575e-07, cumulative = 8.02575e-07
DICPCG:  Solving for p_rgh, Initial residual = 0.772007, Final residual = 9.45501e-09, No Iterations 710
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 0.000338578, global = 8.02575e-07, cumulative = 1.60515e-06
DILUPBiCG:  Solving for epsilon, Initial residual = 0.141665, Final residual = 0.0141315, No Iterations 7
DILUPBiCG:  Solving for k, Initial residual = 1, Final residual = 0.0880678, No Iterations 11
ExecutionTime = 0.14 s  ClockTime = 0 s

Courant Number mean: 0.041058 max: 0.923907
deltaT = 0.0064162
Time = 0.018321

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG:  Solving for Ux, Initial residual = 0.975099, Final residual = 1.96942e-07, No Iterations 5
DILUPBiCG:  Solving for Uy, Initial residual = 0.949817, Final residual = 7.80405e-08, No Iterations 5
DILUPBiCG:  Solving for h, Initial residual = 1, Final residual = 1.40581e-07, No Iterations 5
DICPCG:  Solving for p_rgh, Initial residual = 0.995576, Final residual = 194849, No Iterations 1001
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.42643e+12, global = 74903.8, cumulative = 74903.8
DICPCG:  Solving for p_rgh, Initial residual = 0.937606, Final residual = 302513, No Iterations 1001
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 2.20296e+17, global = 31626.3, cumulative = 106530
DILUPBiCG:  Solving for epsilon, Initial residual = 1, Final residual = 0.0138631, No Iterations 4
bounding epsilon, min: -7.04501e+10 max: 9.43471e+11 average: 1.0706e+09
DILUPBiCG:  Solving for k, Initial residual = 0.919654, Final residual = 0.000745739, No Iterations 1
bounding k, min: -413.931 max: 1.95956e+07 average: 17381.4
ExecutionTime = 0.38 s  ClockTime = 0 s

Courant Number mean: -4.61207e+12 max: 1.65905e-10
deltaT = 0.00766937
Time = 0.0259903

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG:  Solving for Ux, Initial residual = 0.571846, Final residual = 9.81427e-07, No Iterations 15
DILUPBiCG:  Solving for Uy, Initial residual = 0.955, Final residual = 8.90635e-07, No Iterations 14
DILUPBiCG:  Solving for h, Initial residual = 0.979026, Final residual = 3.66781e-07, No Iterations 47
DICPCG:  Solving for p_rgh, Initial residual = 1, Final residual = 60.9321, No Iterations 1001
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.76015e+16, global = 1, cumulative = 106531
DICPCG:  Solving for p_rgh, Initial residual = 0.845961, Final residual = 85.1494, No Iterations 1001
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 9.41809e+15, global = 1, cumulative = 106532
DILUPBiCG:  Solving for epsilon, Initial residual = 1, Final residual = 0.0760286, No Iterations 1
bounding epsilon, min: -4.72096e+55 max: 1.56326e+57 average: 7.52936e+53
DILUPBiCG:  Solving for k, Initial residual = 1.47402e-15, Final residual = 1.47402e-15, No Iterations 0
ExecutionTime = 0.62 s  ClockTime = 0 s

Courant Number mean: -2.78527e+39 max: 1.26531e-21
deltaT = 0.00918877
Time = 0.0351791

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG:  Solving for Ux, Initial residual = 0.980146, Final residual = 1.53382e+06, No Iterations 1001
DILUPBiCG:  Solving for Uy, Initial residual = 0.988734, Final residual = 48519.8, No Iterations 1001
DILUPBiCG:  Solving for h, Initial residual = 1, Final residual = 1.44966e+60, No Iterations 1001
#0  Foam::error::printStack(Foam::Ostream&) in "/home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libOpenFOAM.so"
#1  Foam::sigFpe::sigFpeHandler(int) in "/home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libOpenFOAM.so"
#2  Uninterpreted:
#3  in "/lib/tls/i686/cmov/libm.so.6"
#4  pow in "/lib/tls/i686/cmov/libm.so.6"
#5  Foam::specieThermo<Foam::hPolynomialThermo<Foam::icoPolynomial<8>, 8> >::H(double) const in "/home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuBasicThermophysicalModels.so"
#6  Foam::hRhoThermo<Foam::pureMixture<Foam::polynomialTransport<Foam::specieThermo<Foam::hPolynomialThermo<Foam::icoPolynomial<8>, 8> >, 8> > >::calculate() in "/home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuBasicThermophysicalModels.so"
#7  Foam::hRhoThermo<Foam::pureMixture<Foam::polynomialTransport<Foam::specieThermo<Foam::hPolynomialThermo<Foam::icoPolynomial<8>, 8> >, 8> > >::correct() in "/home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuBasicThermophysicalModels.so"
#8 
 in "/home/will/OpenFOAM/will-1.7.1/applications/bin/linuxGccDPOpt/uBuoyantPimpleFoam"
#9  __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#10 
 in "/home/will/OpenFOAM/will-1.7.1/applications/bin/linuxGccDPOpt/uBuoyantPimpleFoam"
Floating point exception

As one can see, I'm getting numerical explosion in the p_rgh iteration with horrendous consequences and SIGFPE triggering... I dare say that I'm to blame for that...:confused: -> fvScemes/fvSolutions?

PS. is there a reason why you've got molecular weight set to 1 and not 18?

rolfL October 13, 2010 08:55

Hi Will,

I set molecular weight to 1 for test purpose. I forgot to set it back but I think it has no influence since you do not mix it with another fluid.
Can you give us a short description of your problem and post the bc of your model. Maybe I can give you a hint...
Rolf

will.logie October 13, 2010 10:02

uBuoyantPimpleFoam - 2DpipeWallCavity
 
1 Attachment(s)
Attached is the case directory. Because of the file size limit I've only included the gmsh geo file. You'll need gmsh to create the msh file for conversion;

Code:

gmsh 2Dcavity.geo -3
gmshToFoam 2Dcavity.msh

The problem that I am trying to validate is that of natural convective heat transfer from a pipeWall into an enclosure, the idea being that given accurate modelling thereof, the Nusselt numbers will be available.

This is just a starting case from which I'd like to build some more complicated geometries (involving more pipes) and eventually a 3D chtMultiRegionFoam heat exchanger case... (?opinions welcome?)

I've turned off turbulence to begin with (eg. 0/{k,epsilon} are whatever), the pipeWall is now at 305° and the surroundings/walls all at 300K. No velocities to begin with and 1e5 pressure.

The reason icoPolynomial is spitting chips is because of unreasonable T, U, p, ...etc., such that impossible temperatures are being evaluated by it.

Thanks for your interest and I appreciate all tips/suggestions!

On a side note; when uBuoyantPimpleFoam (as we have it) is started as a foamJob (eg. as done by an ./Allrun->runApplication), glibc spits a dummy for finding library double ups.

Will.

rolfL October 14, 2010 05:35

Hi Will,

I create the mesh as you described. The bc setting in your case are not complete. I found in constant/polyMesh/boundary frontAndBack and defaultFaces, which are not definied in your 0/* bc files. I add frontAndBack as symmetryPlane and defaultFaces as wall to all files in /0. With some adatations of the PIMPLE settings in system/fvSolution and under-relaxation factors for h it seems to work fine.
Rolf

Code:

PIMPLE
{
    momentumPredictor yes;
    nOuterCorrectors 1;
    nCorrectors    2;
    nNonOrthogonalCorrectors 1;
}


relaxationFactors
{
    h              0.8;
}


will.logie October 14, 2010 11:00

how vexing...
 
2 Attachment(s)
I thank you and am sorry to bother you again Rolf!

I was a bit sloppy in deleting/creating the tar.gz yesterday which is why certain patch definitions were missing :o. Your thoughtful additions do not change the catastrophe happening on my computer when I invoke thermoType hRhoThermo<pureMixture<icoPoly8ThermoPhysics>> though.

If you have the patience, do you think you can look over my file changes to $WM_PROJECT_USER_DIR/src/thermophysicalModels/{basic,specie}? I don't understand why my icoPoly8ThermoPhysics refuses to work and assume I am missing something critical. To recap what I've done:

1.) copy -r from $LIB_SRC/thermophysicalModels/{basic, specie} to $WM_PROJECT_USER_DIR/src/thermophysicalModels/{basic, specie}.

2.) change files in $WM_PROJECT_USER_DIR/src/thermophysicalModels/{basic, specie} as they are found in basic.tar.gz and specie.tar.gz

3.) wmake libso {specie, basic} in $WM_PROJECT_USER_DIR/src/thermophysicalModels

Some diagnostics from my wayward thermoType:

a) when I run the case I posted with thermoType->perfectGas it runs but I get this output at the end, even though the case runs fine:
Code:

*** glibc detected *** uBuoyantPimpleFoam: double free or corruption (!prev): 0x08950bc0 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(+0x6b591)[0x2ad9591]
/lib/tls/i686/cmov/libc.so.6(+0x6cde8)[0x2adade8]
/lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0x2addecd]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x17bf741]
/usr/lib/libstdc++.so.6(_ZNSs4_Rep10_M_destroyERKSaIcE+0x1d)[0x179bc2d]
/home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuBasicThermophysicalModels.so(_ZN4Foam4wordD1Ev+0x4c)[0x31990c]
/lib/tls/i686/cmov/libc.so.6(__cxa_finalize+0xb8)[0x2a9d588]
/home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libbasicThermophysicalModels.so(+0x2d224)[0x8416224]
/home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libbasicThermophysicalModels.so(+0x894b0)[0x84724b0]
/lib/ld-linux.so.2(+0xe2a6)[0x4332a6]
/lib/tls/i686/cmov/libc.so.6(+0x2f1bf)[0x2a9d1bf]
/lib/tls/i686/cmov/libc.so.6(+0x2f22f)[0x2a9d22f]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xee)[0x2a84bde]
uBuoyantPimpleFoam[0x80626b1]
======= Memory map: ========
00110000-0015a000 r-xp 00000000 08:05 1234823    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleTurbulenceModel.so
0015a000-0015b000 r--p 00049000 08:05 1234823    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleTurbulenceModel.so
0015b000-0015c000 rw-p 0004a000 08:05 1234823    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libcompressibleTurbulenceModel.so
0015c000-0015e000 r-xp 00000000 08:05 191471    /lib/tls/i686/cmov/libdl-2.11.1.so
0015e000-0015f000 r--p 00001000 08:05 191471    /lib/tls/i686/cmov/libdl-2.11.1.so
0015f000-00160000 rw-p 00002000 08:05 191471    /lib/tls/i686/cmov/libdl-2.11.1.so
00160000-00184000 r-xp 00000000 08:05 191472    /lib/tls/i686/cmov/libm-2.11.1.so
00184000-00185000 r--p 00023000 08:05 191472    /lib/tls/i686/cmov/libm-2.11.1.so
00185000-00186000 rw-p 00024000 08:05 191472    /lib/tls/i686/cmov/libm-2.11.1.so
00186000-001a3000 r-xp 00000000 08:05 172104    /lib/libgcc_s.so.1
001a3000-001a4000 r--p 0001c000 08:05 172104    /lib/libgcc_s.so.1
001a4000-001a5000 rw-p 0001d000 08:05 172104    /lib/libgcc_s.so.1
001a5000-001ad000 r-xp 00000000 08:05 1262607    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libPstream.so
001ad000-001ae000 r--p 00007000 08:05 1262607    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libPstream.so
001ae000-001af000 rw-p 00008000 08:05 1262607    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libPstream.so
001af000-001c5000 r-xp 00000000 08:05 1234643    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/liblagrangian.so
001c5000-001c6000 ---p 00016000 08:05 1234643    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/liblagrangian.so
001c6000-001c7000 r--p 00016000 08:05 1234643    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/liblagrangian.so
001c7000-001c8000 rw-p 00017000 08:05 1234643    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/liblagrangian.so
001c8000-001ef000 r-xp 00000000 08:05 1234687    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libLESdeltas.so
001ef000-001f0000 r--p 00026000 08:05 1234687    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libLESdeltas.so
001f0000-001f1000 rw-p 00027000 08:05 1234687    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libLESdeltas.so
001f1000-00204000 r-xp 00000000 08:05 173040    /lib/libz.so.1.2.3.3
00204000-00205000 r--p 00012000 08:05 173040    /lib/libz.so.1.2.3.3
00205000-00206000 rw-p 00013000 08:05 173040    /lib/libz.so.1.2.3.3
00206000-00207000 r-xp 00000000 08:05 1234634    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotcherrexit.so
00207000-00208000 r--p 00000000 08:05 1234634    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotcherrexit.so
00208000-00209000 rw-p 00001000 08:05 1234634    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotcherrexit.so
0020f000-00287000 r-xp 00000000 08:05 1561719    /home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuSpecie.so
00287000-00289000 r--p 00077000 08:05 1561719    /home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuSpecie.so
00289000-0028a000 rw-p 00079000 08:05 1561719    /home/will/OpenFOAM/will-1.7.1/lib/linuxGccDPOpt/libuSpecie.so
0028a000-00295000 r-xp 00000000 08:05 1234648    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotchDecomp.so
00295000-00296000 r--p 0000a000 08:05 1234648    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotchDecomp.so
00296000-00297000 rw-p 0000b000 08:05 1234648    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libscotchDecomp.so
00298000-002b4000 r-xp 00000000 08:05 1234651    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libdecompositionMethods.so
002b4000-002b5000 r--p 0001b000 08:05 1234651    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libdecompositionMethods.so
002b5000-002b6000 rw-p 0001c000 08:05 1234651    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libdecompositionMethods.so
002b6000-002c1000 r-xp 00000000 08:05 1234650    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmetisDecomp.so
002c1000-002c2000 r--p 0000a000 08:05 1234650    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmetisDecomp.so
002c2000-002c3000 rw-p 0000b000 08:05 1234650    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/libmetisDecomp.so
002c3000-002d4000 r-xp 00000000 08:05 1262608    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libparMetisDecomp.so
002d4000-002d5000 r--p 00010000 08:05 1262608    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libparMetisDecomp.so
002d5000-002d6000 rw-p 00011000 08:05 1262608    /home/will/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1/libparMetisDecomp.so
002d6000-002dc000 r-xp 00000000 08:05 191475    /lib/tls/i686/cmov/libnss_compat-2.11.1.so
002dc000-002dd000 r--p 00006000 08:05 191475    /lib/tls/i686/cmov/libnss_compat-2.11.1.so
002dd000-002de000 rw-p 00007000 08:05 191475    /lib/tls/i686/cmov/libnss_compat-2.11.1.so
002de000-002e6000 r-xp 00000000 08:05 191479    /lib/tls/i686/cmov/libnss_nis-2.11.1.so
002e6000-002e7000 r--p 00007000 08:05 191479    /lib/tls/i686/cmov/libnss_nis-2.11.1.so
002e7000-002e8000 rw-p 00008000 08:05 191479    /lib/tls/i686/cmov/libnss_nis-2.11.1.so

b) If I run the same case with thermoType->icoPoly8 I get the output I mentioned in the post yesterday at 13:50.

Thanks again,
Will.


All times are GMT -4. The time now is 13:06.