CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   How to output other properties? (http://www.cfd-online.com/Forums/openfoam/100307-how-output-other-properties.html)

wagnergaluppo April 23, 2012 18:13

How to output other properties?
 
Hi,
I am using the OpenFOAM-210 and I Know that with foamCalc utility I can get the components of velocity and I also know how to get mach number and vorticity, but does anybody know how to output other variables such as viscosity, Reynolds number and etc?
thanks,
Wagner

akidess April 24, 2012 02:42

Viscosity will be written to the time directories if it's not constant, and you can plot it with paraview. You can also use paraview to calculate the Reynolds number. If you want a command line utility, you'll have to get your hands dirty.

wagnergaluppo April 26, 2012 23:51

Thank you for your reply. I'm ready to get my hands dirty. Even though my viscosity is constant, I would still like to know how to output it at each time-step. I would like to verify that I am getting the correct value for my viscosity. I'm using the rhoCentralFoam solver. This is the output of the "createFields.H" file:

13--> const volScalarField& mu = thermo.mu();

So what I did was change this file to something like this:

13--> volScalarField mu
14--> (
15--> IOobject
16--> (
17--> "mu",
18--> runTime.timeName(),
19--> mesh,
20--> IOobject::MUST_READ,
21--> IOobject::AUTO_WRITE
22--> ),
23--> mesh
24--> );

Then I recompiled and created a "mu" file at my "/0/" directory. But after I running, the other time directories do not have the mu property. It's not autowriting as ordered. For the Reynolds number I'm still having problems. Do you know of any documentation about the command line utility for this?
thanks,
Wagner

wagnergaluppo May 1, 2012 14:42

sutherland viscosity
 
Hi Akidess,

I followed your suggestion and set the viscosity to sutherland. Now that the viscosity is not constant, I would have expected it to write to the time directories like you suggested. Unfortunately, viscosity does not appear in any of the time directories.

Have I missed something?

Here is the output of my thermophysical properties

Code:

FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "constant";
    object      thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

thermoType      ePsiThermo<pureMixture<sutherlandTransport<specieThermo<eConstThermo<perfectGas>>>>>;

mixture
{
    // normalised gas
    specie
    {
        nMoles          1;
        molWeight      50;
    }
    thermodynamics
    {
        Cv              1007.8039105;
        Hf              2.544e+06;
    }
    transport
    {
        As              1.67212e-06;
        Ts              170.672;
    }
}


wagnergaluppo May 1, 2012 14:48

createfields.H
 
This is what I've specified in the createfields.H file

Code:

const volScalarField& psi = thermo.psi();
volScalarField mu
(
IOobject
(
"mu",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);


akidess May 2, 2012 03:39

Which solver are you using? I'll try it out and see if I can get it to work.

wagnergaluppo May 2, 2012 12:36

I'm using the rhoCentralFoam.
Thanks,
Wagner

wagnergaluppo May 16, 2012 15:28

I figure it out.
Thank you,
Wagner Galuppo

akidess May 19, 2012 05:09

Sorry I couldn't help much, I got busy with other things. Can you add a post on how you solved the problem? It might help others in the future.

wagnergaluppo May 24, 2012 12:29

Actually I partly figured it out. I found the file "basicThermo.C" in (/opt/openfoam210/src/thermophysicalModels/basic/basicThermo/)
If you have look from the 201st until 213th line you will find this:
Code:

mu_
    (
        IOobject
        (
            "mu",
            mesh.time().timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::NO_WRITE
        ),
        mesh,
        dimensionSet(1, -1, -1, 0, 0)
    ),

I copied the directory (/opt/openfoam210/src/thermophysicalModels/basic/) to my workplace and I changed the name from /basic/ to /myBasic/.
in terminal:
Code:

$ cd /opt/openfoam210
$ cp -r --parents src/thermophysicalModels/basic/ /home/cfd02/OpenFOAM/USER-2.1.0/
$ cd ~/OpenFOAM/USER-2.1.0/src/thermophysicalModels/
$ mv basic myBasic

Next I edited line 209 in the file myBasic/basicThermo/basicThermo.C from:
Code:

IOobject::NO_WRITE
to
Code:

IOobject::AUTO_WRITE
and saved and closed it.

Then I changed the 27th line in the file myBasic/Make/files from:
Code:

LIB = $(FOAM_LIBBIN)/libbasicThermophysicalModels
to
Code:

LIB = $(FOAM_USER_LIBBIN)/libbasicThermophysicalModels
and saved and closed it.

Next I compiled the code:
Code:

$ cd ~/OpenFOAM/USER-2.1.0/src/thermophysicalModels/myBasic/
$ wmake libso

It works, if you run rhoCentralFoam will output mu and doesn't matter if it is constant.
The Problem is that I'm overwriting the main library basicThermophysicalModels instead of creating a new one.

wagnergaluppo May 24, 2012 19:20

I changed the last modifications for mu on line 209 (in myBasic/basicThermo/basicThermo.C) back to

Code:

IOobject::NO_WRITE
and doing so reverted to the original configuration of OpenFoam for basic thermophysical property. I recompiled it overwriting my last changes.

Now OpenFoam is using the original configuration, and so I try to make a new basic thermoPhysical model.

First, I reset mu to AUTO_WRITE (since I want to output mu).

Next, I changed line 27 in the file myBasic/Make/files from
Code:

LIB = $(FOAM_USER_LIBBIN)/libbasicThermophysicalModels
to:
Code:

LIB = $(FOAM_USER_LIBBIN)/libmubasicThermophysicalModels
and compiled it with the wmake libso command.

Then I copied rhoCentralFoam solver to my workplace and renamed the directory from /rhoCentralFoam/ to /muRhoCentralFoam/, and after that in the new /muRhoCentralFoam/ directory I changed the file from rhoCentralFoam.C to muRhoCentralFoam.C.
Code:

$ cd /opt/opefoam210/
$ cp -r --parents applications/solvers/compressible/rhoCentralFoam/ $WM_PROJECT_USER_DIR
$ cd $WM_PROJECT_USER_DIR/applications/solvers/compressible/
$ mv rhoCentralFoam muRhoCentralFoam
$ cd muRhoCentralFoam
$ mv rhoCentralFoam.C muRhoCentralFoam.C

Next, in the /muRhoCentralFoam/Make/ directory I changed the file files from
Code:

rhoCentralFoam.C

EXE = $(FOAM_APPBIN)/rhoCentralFoam

to
Code:

muRhoCentralFoam.C

EXE = $(FOAM_USER_APPBIN)/muRhoCentralFoam

And the file options from
Code:

EXE_INC = \
    -IBCs/lnInclude \
    -I$(LIB_SRC)/finiteVolume/lnInclude \
    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
    -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
    -I$(LIB_SRC)/dynamicMesh/lnInclude \
    -I$(LIB_SRC)/meshTools/lnInclude

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

to
Code:

EXE_INC = \
    -IBCs/lnInclude \
    -I$(LIB_SRC)/finiteVolume/lnInclude \
    -I$(WM_PROJECT_USER_DIR)/src/thermophysicalModels/myBasic/lnInclude \
    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
    -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
    -I$(LIB_SRC)/dynamicMesh/lnInclude \
    -I$(LIB_SRC)/meshTools/lnInclude

EXE_LIBS = \
    -lfiniteVolume \
    -lmubasicThermophysicalModels \
    -lspecie \
    -lrhoCentralFoam \
    -lcompressibleTurbulenceModel \
    -lcompressibleRASModels \
    -lcompressibleLESModels \
    -lmeshTools

Then I tried to compile it, but it cannot find -lmubasicThermophysicalModels, the solver compilation is not reading my new basic thermophysicalModel.

Copilation error message:
Code:

Making dependency list for source file muRhoCentralFoam.C
SOURCE=muRhoCentralFoam.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-100 -IBCs/lnInclude -I/opt/openfoam210/src/finiteVolume/lnInclude -I/home/USER/OpenFOAM/USER-2.1.0/src/thermophysicalModels/myBasic/lnInclude -I/opt/openfoam210/src/thermophysicalModels/specie/lnInclude -I/opt/openfoam210/src/turbulenceModels/compressible/turbulenceModel -I/opt/openfoam210/src/dynamicMesh/lnInclude -I/opt/openfoam210/src/meshTools/lnInclude -IlnInclude -I. -I/opt/openfoam210/src/OpenFOAM/lnInclude -I/opt/openfoam210/src/OSspecific/POSIX/lnInclude  -fPIC -c $SOURCE -o Make/linux64GccDPOpt/muRhoCentralFoam.o
/opt/openfoam210/src/finiteVolume/lnInclude/readTimeControls.H: In function ‘int main(int, char**)’:
/opt/openfoam210/src/finiteVolume/lnInclude/readTimeControls.H:32: warning: unused variable ‘adjustTimeStep’
/opt/openfoam210/src/finiteVolume/lnInclude/readTimeControls.H:35: warning: unused variable ‘maxCo’
/opt/openfoam210/src/finiteVolume/lnInclude/readTimeControls.H:38: warning: unused variable ‘maxDeltaT’
g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-100 -IBCs/lnInclude -I/opt/openfoam210/src/finiteVolume/lnInclude -I/home/USER/OpenFOAM/USER-2.1.0/src/thermophysicalModels/myBasic/lnInclude -I/opt/openfoam210/src/thermophysicalModels/specie/lnInclude -I/opt/openfoam210/src/turbulenceModels/compressible/turbulenceModel -I/opt/openfoam210/src/dynamicMesh/lnInclude -I/opt/openfoam210/src/meshTools/lnInclude -IlnInclude -I. -I/opt/openfoam210/src/OpenFOAM/lnInclude -I/opt/openfoam210/src/OSspecific/POSIX/lnInclude  -fPIC -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPOpt/muRhoCentralFoam.o -L/opt/openfoam210/platforms/linux64GccDPOpt/lib \
            -lfiniteVolume -lmubasicThermophysicalModels -lspecie -lrhoCentralFoam -lcompressibleTurbulenceModel -lcompressibleRASModels -lcompressibleLESModels -lmeshTools -lOpenFOAM -ldl  -lm -o /home/USER/OpenFOAM/USER-2.1.0/platforms/linux64GccDPOpt/bin/muRhoCentralFoam
/usr/bin/ld: cannot find -lmubasicThermophysicalModels
collect2: ld returned 1 exit status
make: *** [/home/USER/OpenFOAM/USER-2.1.0/platforms/linux64GccDPOpt/bin/muRhoCentralFoam] Error 1

I also tried replacing in the file /Make/options
Code:

-lmubasicThermophysicalModels \
for the original one
Code:

-lbasicThermophysicalModels \
but it loads the main basic thermophysicalModel from OpenFoam.
Do you have any suggestions or ideas about how can I create this new basic thermophysicalModel and load it in my new solver, or what I am doing wrong?

Thanks,
Wagner Galuppo


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