CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   write out nusselt number (gradient of T, respectively) for timesteps (http://www.cfd-online.com/Forums/openfoam/69832-write-out-nusselt-number-gradient-t-respectively-timesteps.html)

sven November 5, 2009 22:42

write out nusselt number (gradient of T, respectively) for timesteps
 
I need to calculate a nusselt number for a body in a crossflow for different time steps. Does OpenFOAM provide a function which can do that? If not, can I somehow use the probing function to write out a temperature gradient at a wall, like I can write out fields at certain points? Has anyone ever done something like this? Thanks a lot!

santos November 6, 2009 05:38

Hi Sven,

You can see how I modified simpleFoam and turbFoam (now its pisoFoam) for determination of Sherwood number:

http://openfoamwiki.net/index.php/Co...mpleScalarFoam
http://openfoamwiki.net/index.php/Co...turbScalarFoam

There is some coding and recompilation involved, but not too difficult. Just make sure you use the adequate dimensions for temperature in place of mass fraction.

Regards,
Jose Santos

sven November 6, 2009 22:01

Hey Sanots,

thanks for your answer. I had a look at your source Code files, especially at simpleScalarFoam.C. I think, what I need is something similar to the following lines in your code:

Code:

// Calculates kc and Sh on each patch
        Info<< "Calculating kc and Sh" << endl;

label patchi = mesh.boundaryMesh().findPatchID("electrode1");
label patchj = mesh.boundaryMesh().findPatchID("electrode2");

// kc = 1 / Tb * D * (dT/dy)_wall
                kc.boundaryField()[patchi] =
                  1/Tb.value()*DT.value()*-T.boundaryField()[patchi].snGrad();

                kc.boundaryField()[patchj] =
                  1/Tb.value()*DT.value()*-T.boundaryField()[patchj].snGrad();

I just want to get the gradient, so I guess it should look like this:

Code:

label patchi = mesh.boundaryMesh().findPatchID("myPatch");
gradT.boundaryField()[patchi]=T.boundaryField()[patchi].snGrad();

Where "myPatch" is the name of the patch for which I want to get the Temperature gradient.
and at the end of the code I need something like

Code:

volScalarField output
          (
                IOobject
                (
                    "Sh",
                    runTime.timeName(),
                    mesh,
                    IOobject::NO_READ,
                    IOobject::AUTO_WRITE
                ),

        output=gradT
          );

        runTime.write();

Is it correct like this? Thanks a lot!

santos November 7, 2009 07:48

Yes, you are on the right track. Look below for my suggestion. Regards!

Code:

volScalarField gradT
            (
                IOobject
                (
                    "gradT",
                    runTime.timeName(),
                    mesh,
                    IOobject::NO_READ,
                    IOobject::AUTO_WRITE
                ),
                mesh,
                dimensionedVector
                (
                    "gradT",
                    T.dimensions()/dimLength,
                    0
                )
            );

label patchi = mesh.boundaryMesh().findPatchID("myPatch");
gradT.boundaryField()[patchi]=T.boundaryField()[patchi].snGrad();
runTime.write();


sven November 7, 2009 20:55

Thanks a lot Santos, I got it working. The solver now writes out the gradT for myPatch in every time directory. However, I want the solver to write all these data only in one file instead of several files. I think I can perhaps use the probe function, but I dont know how to probe on a patch. Do you know how this works or do you have another idea? Thank you very much! I really appreciate your help!

Sven

santos November 8, 2009 05:03

I am not familiar with the probe function, sorry. I normally extract gradT values in one file in other way:

1 - Make your solver write gradT on the screen with the patch name, normally you want an area-averaged value. Look in the solvers I mentioned above for guidance.

2 - Launch the simulation and redirect your output to a log file
Code:

simpleScalarFoam > log &
3 - Extract gradT values to another file (here its gradTvalues):
Code:

grep <your_patch> <log_file> | awk '{print $8}' > gradTvalues
This line will look for 'your_patch' in you 'log_file' and will extract the 8th entry in that line (in my case its the gradT value, please change it accordingly).

Regards,
Jose Santos

vilop6 February 1, 2010 12:59

hi all

i m intersseted by this topic and i will try it to calculate nusselt number, my quastion is how integrate "gradT" over the patch using any intagration method availble or not in openfoam "trapez, simpson, RkX, ..."

regards

Goutam February 29, 2012 13:53

GradT
 
Dear Santos,

Thanks for your help. I have written the code in the file buoyantBousseinsqSimpleFoam.C. After that when I set wmake, then I am getting error. Is this code is ok? I want to calculate GradT.

aaron_lan March 14, 2012 08:51

Hi Goutam,

Have you solved your problem of calculating GradT in buoyantBousseinsqSimpleFoam? I am also very interested in this case.

Goutam March 14, 2012 08:58

No. But I have calculated local and Average Nusselt number. You can see my post on this. I gave the code.

giovanni10 April 6, 2012 12:16

average Nusselt number
 
Quote:

Originally Posted by sven (Post 235294)
I need to calculate a nusselt number for a body in a crossflow for different time steps. Does OpenFOAM provide a function which can do that? If not, can I somehow use the probing function to write out a temperature gradient at a wall, like I can write out fields at certain points? Has anyone ever done something like this? Thanks a lot!

Dear Sven,
Did you finally find a solution to your problem? Unfortunately, I`m not an expert in C++. So, It is too difficult for me. I would like to calculate the average Nusselt number. I am working on a 2D laterally and volumetrically heated square cavity. I have seen your discussion here. Could you help me? Thanks in advance!

liuchaofu May 8, 2013 10:06

Hi Goutam.Can you tell me how to calculated local and Average Nusselt number.Thank you .


All times are GMT -4. The time now is 10:28.