|
[Sponsors] |
February 29, 2012, 13:20 |
Code for Nusselt number
|
#1 |
Senior Member
Goutam Saha
Join Date: Dec 2011
Location: UK
Posts: 131
Rep Power: 14 |
I have used the following code created by Johan Magnusson. It creates the tool NusseltCalc. Only problem is, when I run NusseltCalc then I got the error:
Command not found. Could you please help me? I am adding the code as an attachment. |
|
March 1, 2012, 13:18 |
|
#2 |
Senior Member
Markus Rehm
Join Date: Mar 2009
Location: Erlangen (Germany)
Posts: 184
Rep Power: 17 |
Hi,
have you correctly compiled the tool? You need to do a "wmake", see the Wiki for more information on that topic. Markus |
|
March 1, 2012, 13:28 |
|
#3 |
Senior Member
Goutam Saha
Join Date: Dec 2011
Location: UK
Posts: 131
Rep Power: 14 |
Dear Members,
This is the code for local Nusselt number: volScalarField wall_localNusselt ( IOobject ( "wall_localNusselt", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedScalar("wall_localNusselt ",dimless,0.0) ); forAll(wall_localNusselt.boundaryField(),patchi) { wall_localNusselt.boundaryField()[patchi] = length*patchHeatFlux[patchi]/((T_hot-T_ini)*k); } wall_localNusselt.write(); } I want to write a code for Average Nusselt Number. Last edited by Goutam; March 3, 2012 at 09:32. |
|
March 1, 2012, 13:48 |
Solved !!!
|
#4 |
Senior Member
Goutam Saha
Join Date: Dec 2011
Location: UK
Posts: 131
Rep Power: 14 |
The code was correct. NusseltCalc is working now.
|
|
March 1, 2012, 14:07 |
Problem !!!
|
#5 |
Senior Member
Goutam Saha
Join Date: Dec 2011
Location: UK
Posts: 131
Rep Power: 14 |
How to calculate average Nusselt number?
Last edited by Goutam; March 3, 2012 at 09:03. |
|
March 2, 2012, 04:21 |
|
#6 |
Senior Member
Markus Rehm
Join Date: Mar 2009
Location: Erlangen (Germany)
Posts: 184
Rep Power: 17 |
DearGoutam,
I have not used the code but it would be helpful to see the error message. Markus |
|
March 2, 2012, 05:35 |
|
#7 |
Senior Member
Goutam Saha
Join Date: Dec 2011
Location: UK
Posts: 131
Rep Power: 14 |
Looking for a response?
Last edited by Goutam; March 3, 2012 at 09:28. |
|
March 5, 2012, 08:10 |
|
#8 |
Senior Member
Markus Rehm
Join Date: Mar 2009
Location: Erlangen (Germany)
Posts: 184
Rep Power: 17 |
Hello Goutam,
please be a bit more precise. As far as I understand, the code you posted above calculates the patch-averaged Nusselt number. Because patchHeatFlux should be the heat flux over the patch in [W/m2], right? Markus |
|
March 5, 2012, 08:16 |
Average Nusselt Number
|
#9 |
Senior Member
Goutam Saha
Join Date: Dec 2011
Location: UK
Posts: 131
Rep Power: 14 |
Dear Markus,
This code will calculate heat flux and Local Nusselt NUmber at each patch. I am using this code and its working properly. If you want to calculate average Nusselt number, then just write in the terminal window: patchAverage wall_localNusselt your_patch_name You will get your average Nusselt number. Cheers !!! Last edited by Goutam; March 7, 2012 at 06:29. |
|
April 9, 2012, 09:27 |
How can I alter your code?
|
#10 | |
New Member
giovanni silva
Join Date: Jul 2010
Posts: 14
Rep Power: 16 |
Quote:
-- wall_localNusselt.boundaryField()[patchi] = length*patchHeatFlux[patchi]/((T_hot-T_ini)*k); -- I want to calculate the localNusselt number at a wall which is called "right". I have a rectangular cavity which has 4 walls with the following names: bottom, right, left and top. So, the Nusselt number is calculated as the integration of dT/dx for limits from y=0 to 1, at x=0, which is the "right" wall. How can I alter your code? I am using an incompressible Magnetohydrodynamics` solver. Thanks a lot for your help! |
||
June 22, 2014, 06:47 |
|
#11 | |
Member
shiv
Join Date: Jun 2012
Location: Lucknow, IN
Posts: 51
Rep Power: 14 |
Quote:
I have used the same code and terminal command for calculating the nusselt number for a case of fin tube heat exchanger using chtMultiRegionSimpleFoam solver but i am getting: Code:
Create time Create mesh for time = 0 Time = 0 No field NusseltNumber Time = 1600 No field NusseltNumber Time = 1700 No field NusseltNumber Time = 1800 No field NusseltNumber Time = 1900 No field NusseltNumber Time = 2000 No field NusseltNumber End |
||
June 22, 2014, 06:59 |
|
#12 |
Member
shiv
Join Date: Jun 2012
Location: Lucknow, IN
Posts: 51
Rep Power: 14 |
Hi,
From what i understand from code, this is not a post processing utility rather a runtime utility and i need to create a volumetric scalar field NusseltNumber for it to work. Plz let me know your views. |
|
June 23, 2014, 07:05 |
|
#13 | |
Senior Member
Goutam Saha
Join Date: Dec 2011
Location: UK
Posts: 131
Rep Power: 14 |
Quote:
|
||
October 24, 2014, 16:58 |
Nusseltcalc.C
|
#14 |
New Member
Lorenzo Gomes
Join Date: Nov 2013
Location: Brazil
Posts: 12
Rep Power: 13 |
Hello there,
I'm trying to compile the tool but I keep receiving this error: Code:
NusseltCalc.C: In function 'int main(int, char**)': NusseltCalc.C:61:38: error: missing template arguments before '->' token Any ideas why? Thanks. |
|
October 24, 2014, 17:29 |
|
#15 |
Senior Member
|
Hi,
RASModel is class name, did you mean turbulence->alphaEff()? (also this method is available only for compressible turbulence models, in case of incompressible model you have to calculate is as nu/Pr + nut/Prt) |
|
October 27, 2014, 12:52 |
|
#16 |
New Member
Lorenzo Gomes
Join Date: Nov 2013
Location: Brazil
Posts: 12
Rep Power: 13 |
Thanks for the quickly reply. That killed that error but now I can't find a way to link the libraries I need. The error is this:
Code:
/usr/bin/ld: cannot find -lcompressibleTurbulenceModel /usr/bin/ld: cannot find -lcompressibleRASModels /usr/bin/ld: cannot find -lcompressibleLESModels /usr/bin/ld: cannot find -lLESdeltas /usr/bin/ld: cannot find -lreactionThermophysicalModels /usr/bin/ld: cannot find -lfiniteVolume /usr/bin/ld: cannot find -lgenericPatchFields /usr/bin/ld: cannot find -lspecie /usr/bin/ld: cannot find -lfluidThermophysicalModels /usr/bin/ld: cannot find -lsolidThermo My options file in /Make dir is this: Code:
EXE_INC = \ -I$(LIB_SRC)/turbulenceModels \ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ -lcompressibleLESModels \ -lLESdeltas \ -lreactionThermophysicalModels \ -lfiniteVolume \ -lgenericPatchFields \ -lspecie \ -lfluidThermophysicalModels \ -lsolidThermo |
|
October 27, 2014, 13:41 |
|
#17 |
Senior Member
|
Hi,
it looks much like you've forgotten to set up environment variables. |
|
October 27, 2014, 13:49 |
|
#18 |
New Member
Lorenzo Gomes
Join Date: Nov 2013
Location: Brazil
Posts: 12
Rep Power: 13 |
I´m kind of new at this. How can I do that?
|
|
February 8, 2015, 16:13 |
|
#19 |
Member
james wilson
Join Date: Aug 2014
Location: Orlando, Fl
Posts: 39
Rep Power: 12 |
basically we can calculate local nusselt numbers over a patch as we've seen in the discussion above. To get an average nusselt number, you must do some area weighting in the case of a non uniform mesh. Below, you calculate the local nusselt number at each face on heatedPatchID and multiply by the faces area. You must also calculate the total patch area. Once each local nusselt number is weighted by its own area of its face on the boundary, you divide the entire sum of area weighted nusselt numbers by the total area. This results in an averaged nusselt number.
Take a uniform mesh for example: e.g. (A1*Nu1 +A2*Nu2 +... An*Nun)/Atotal = NUM/DEN where A1 is the face area of face 1 on heatedPatchID and Atotal is the entire patch area and if A1 = A2 = An (uniform mesh), then A1 = Atotal/n = A2 = .. = An resulting in Atotal(Nu1 + Nu2 + ... +Nun)/(Atotal*n) = (Nu1 + Nu2 + ... +Nun)/n), which quite simply in a basic average of n components. This is how we integrate numerically along a dimension in most cases where we divide the area weighted sum by the total area of that boundary of interest whether it be length, area or volume. Code:
label heatedPatchID = mesh.boundaryMesh().findPatchID("heatedBoundaryName"); const polyPatch& cPatch = mesh.boundaryMesh()[heatedPatchID]; scalar patchArea = 0.0; scalar eps = 1e-99; //avoid divide by zero forAll(cPatch, facei) //Cycle through all of the boundary faces of heatedPatchID to find total patch area { localArea = magSf.boundaryField()[heatedPatchID][facei]; patchArea += localArea; //building DEN } // i suppose scalar patchArea = sum(magSf.boundaryField()[heatedPatchID]); //would suffice scalar averageNusseltNumber = sum(T.boundaryField()[heatedPatchID].snGrad() * magSf.boundaryField()[heatedPatchID])/(T.boundaryField()[heatedPatchID]-Tsat.value()+eps)/(patchArea + eps); //calculating NUM/DEN Any comments are welcome. James |
|
April 16, 2015, 22:27 |
error compiling
|
#20 |
Senior Member
|
Hi,
I'm facing this problem when i type wmake Code:
michele@micheleXubuntu:~/OpenFOAM/michele-2.3.1/run/nusseltCalc$ wmake g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-100 -I/opt/openfoam231/src/turbulenceModels -I/opt/openfoam231/src/turbulenceModels/compressible/turbulenceModel/lnInclude -I/opt/openfoam231/src/thermophysicalModels/specie/lnInclude -I/opt/openfoam231/src/thermophysicalModels/reactionThermo/lnInclude -I/opt/openfoam231/src/thermophysicalModels/basic/lnInclude -I/opt/openfoam231/src/thermophysicalModels/solidThermo/lnInclude -I/opt/openfoam231/src/finiteVolume/lnInclude -IlnInclude -I. -I/opt/openfoam231/src/OpenFOAM/lnInclude -I/opt/openfoam231/src/OSspecific/POSIX/lnInclude -fPIC -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPOpt/nusseltCalc.o -L/opt/openfoam231/platforms/linux64GccDPOpt/lib \ -lcompressibleTurbulenceModel -lcompressibleRASModels -lcompressibleLESModels -lLESdeltas -lreactionThermophysicalModels -lfiniteVolume -lgenericPatchFields -lspecie -lfluidThermophysicalModels -lsolidThermo -lOpenFOAM -ldl -lm -o /opt/openfoam231/platforms/linux64GccDPOpt/bin/nusseltCalc /usr/bin/ld: cannot open output file /opt/openfoam231/platforms/linux64GccDPOpt/bin/nusseltCalc: Permission denied collect2: error: ld returned 1 exit status make: *** [/opt/openfoam231/platforms/linux64GccDPOpt/bin/nusseltCalc] Error 1 michele@micheleXubuntu:~/OpenFOAM/michele-2.3.1/run/nusseltCalc$ thanks a lot Michele |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[mesh manipulation] Mesh Refinement | Luiz Eduardo Bittencourt Sampaio (Sampaio) | OpenFOAM Meshing & Mesh Conversion | 42 | January 8, 2017 13:55 |
Problem with decomposePar tool | vinz | OpenFOAM Pre-Processing | 18 | January 26, 2011 03:17 |
[Commercial meshers] Trimmed cell and embedded refinement mesh conversion issues | michele | OpenFOAM Meshing & Mesh Conversion | 2 | July 15, 2005 05:15 |
What is the Better Way to Do CFD? | John C. Chien | Main CFD Forum | 54 | April 23, 2001 09:10 |
State of the art in CFD technology | Juan Carlos GARCIA SALAS | Main CFD Forum | 39 | November 1, 1999 15:34 |