CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   Nusselt number over theta (http://www.cfd-online.com/Forums/openfoam/82263-nusselt-number-over-theta.html)

 snehal November 22, 2010 05:41

Nusselt number over theta

Hello everybody,
I have successfully simulated the case of flow around a circular cylinder with heat transfer using OpenFOAM.
For heat transfer I have calculated the nusselt number over the cylinder surface.
I just wanted to know, how can I plot Nusselt number over theta(angle 0-360).

 aerothermal November 22, 2010 14:18

use paraFoam to do that

extract your cylinder boundary with extractBlock
plot on intersection and select appropriate axis (z?)
select variables...

 anijdon March 13, 2011 04:57

calculating nusselt number

hello ;
I added energy equation to simplefoam and simulated heat transfer around a cube but I don't know how to calculate nusselt number and plot it.all walls of the cube are under constant heat flux.
would you help me?:o
thanks.

 aerothermal March 13, 2011 11:25

Quote:
 Originally Posted by anijdon (Post 299158) hello ; I added energy equation to simplefoam and simulated heat transfer around a cube but I don't know how to calculate nusselt number and plot it.all walls of the cube are under constant heat flux. would you help me?:o thanks.
Hi anijdon,

See the tool,

Code:

 wallHeatFlux
Let me know if you have difficulties.

regards,

aeroThermal

 anijdon March 13, 2011 16:05

thanks, do you mean wallHeatFluxLaminar utility?but it calculates wall heat flux which is my input data as boundary conditions and I don't need it.I think I need termal gradient to calculate h=q''/(Ts-T) >> Nu=hL/k. but I don't know how!!!

 aerothermal March 16, 2011 14:00

yes...of course you have the heat flux!

so it is simpler! do it in paraFoam...

1) extract your cylinder boundary with extractBlock
2) use calculator to evaluate \dot{q}^" / (DeltaT)
3) plot on intersection and select appropriate axis (z?)
4) select variables...

Regards,

aerothermal

 anijdon March 17, 2011 05:46

hello.
thanks a lot . but my problem is that I don't know how to calculate DeltaT.

 aerothermal March 17, 2011 10:50

You can calculate that in paraFoam. Use Filter -> Calculator.
So it is possible to calculate (T-Tref) on it to generate a new field.
In order to get only T surface you will need to Filter -> ExtractBlock your patch.

 anijdon March 17, 2011 16:23

I'm sorry, it was so easy.thanks a lot for your helping.:)
excuse me, can we export the result of caculating to matlab or save the data in a separate file?(I'm not well in paraview)
thanks
kind regards

 aerothermal March 17, 2011 16:35

yes...just select your plot, click file -> save data.
it will save as .csv for external tools like excel, matlab or R Cran

 anijdon March 18, 2011 15:23

thank a lot for your guidance.
regards.

 anijdon April 9, 2011 02:26

1 Attachment(s)
hello dear aerothermal;
excuse me, I have another problem with heat transfer in openfoam.
I want to simulate an incompressible nanofluid flow with heat transfer using simpleFoam (i.e. solver includes an energy equation).The conductivity of the fluid is temperature dependent . I don't know haw can modify the solver and case directories to these properties become temperature dependent :confused:;I took down this threat in this site but I have not received any answer so far,
would you help me:o?
I attach special formula of nonofluids:

Attachment 7190

kind regards

 aerothermal November 10, 2011 09:57

Dear Maryam,

Regards,

aerothermal

 Goutam February 19, 2012 09:34

dear friends,

I have calculated the local Nusselt number. Please see the code.
How I will calculate the average Nusselt Number?

#include "fvCFD.H"
#include "hCombustionThermo.H"
#include "basicThermo.H"
#include "RASModel.H"
#include "wallFvPatch.H"

int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
instantList timeDirs = timeSelector::select0(runTime, args);
#include "createMesh.H"

forAll(timeDirs, timeI)
{
runTime.setTime(timeDirs[timeI], timeI);
Info<< "Time = " << runTime.timeName() << endl;

#include "createFields.H"

surfaceScalarField heatFlux
(
);

const surfaceScalarField::GeometricBoundaryField& patchHeatFlux =
heatFlux.boundaryField();

Info<< "\nWall heat fluxes [W]" << endl;
forAll(patchHeatFlux, patchi)
{
if (typeid(mesh.boundary()[patchi]) == typeid(wallFvPatch))
{
Info<< mesh.boundary()[patchi].name()
<< " "
<< sum
(
mesh.magSf().boundaryField()[patchi]
*patchHeatFlux[patchi]
)
<< endl;
}
}
Info<< endl;

volScalarField wallHeatFlux
(
IOobject
(
"wallHeatFlux",
runTime.timeName(),
mesh
),
mesh,
dimensionedScalar("wallHeatFlux", heatFlux.dimensions(), 0.0)
);

forAll(wallHeatFlux.boundaryField(), patchi)
{
wallHeatFlux.boundaryField()[patchi] = patchHeatFlux[patchi];
}

wallHeatFlux.write();

Info << "\nNusselt Number:" << endl;

volScalarField localNusselt
(
IOobject
(
"localNusselt",
runTime.timeName(),
mesh,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("localNusselt",dimless,0.0)
);

forAll(localNusselt.boundaryField(),patchi)
{
localNusselt.boundaryField()[patchi] = length*patchHeatFlux[patchi]/((T_hot-T_ini)*k);
}

localNusselt.write();
}

Info<< "End" << endl;
return 0;
}

 aerothermal March 22, 2012 08:58

Average Nusselt

Two ways:

1) in your code, sum all your Nusselt number values for one patch (not all patches) times de area of each element; sum all areas of elements/cells of the same patch; divide the nusselt values sum by the area sum

2) in paraFoam, use filter "extractBlock" to extract the patch you want the average, use filter "integrate variables", it will open an spreadsheet, look for Area value in Cells or Points, look for Nusselt value in Cells or Points, divide Nusselt integrated value by the Area integrated value.

Regards,

aerothermal

 All times are GMT -4. The time now is 22:00.