Register Blogs Members List Search Today's Posts Mark Forums Read

 January 31, 2011, 10:27 adding temperature to simpleFoam #1 New Member   carlos Join Date: Apr 2010 Posts: 8 Rep Power: 10 Hello, Has any of you foamers added temperature to simpleFoam successfully? Regards, Carlos

 February 1, 2011, 12:23 #2 Senior Member   Elvis Join Date: Mar 2009 Location: Sindelfingen, Germany Posts: 605 Blog Entries: 5 Rep Power: 19 Hi, maybe this link helps you http://openfoamwiki.net/index.php/How_to_add_temperature_to_icoFoam

 February 5, 2011, 10:07 #3 New Member   carlos Join Date: Apr 2010 Posts: 8 Rep Power: 10 Thanks Elvis, I'm building it. It is taking me a while to understand how to implement the Temperature equation for a "steady state" for simpleFoam. I am making analogies with the buoyantBoussinesqSimpleFoam solver in a first step, but I am not sure. Anyway, up to the 12th iteration I get an error message. If I make a step forward implementing simpleTempFoam, i'll post it here. Thanks again, Carlos

 February 6, 2011, 01:51 #4 Member   Bjorn H. Hjertager Join Date: Mar 2009 Posts: 71 Rep Power: 12 Hi, Instead of implementing temperature yourself you could use rhoSimpleFoam. This solver has already the solution of the enthalpy equation included. rgds Bjorn

 February 6, 2011, 03:35 #5 New Member   carlos Join Date: Apr 2010 Posts: 8 Rep Power: 10 Hi Bjorn, Is it possible to use water as heat transfer media in rhoSimpleFoam? I haven't been able to change perfectGas in the thermophysicalproperties file.

 February 6, 2011, 04:28 #6 Member   Bjorn H. Hjertager Join Date: Mar 2009 Posts: 71 Rep Power: 12 Ok, I did not realize that your problem had water as medium. So, you probably need to implement the temperature equation after all. Have you by the way checked the thermomodel: icoPolynomial Incompressible polynomial equation of state, e.g. for liquids as indicated in the User Manual? rgds Bjorn

 June 1, 2011, 11:19 #7 Member   Nickolas P Join Date: Oct 2010 Location: Greece Posts: 30 Rep Power: 10 Hello everyone, I m a relatively new foamer and I mostly work with simpleFoam. I wanted as well to add temperature calculation for my flow as Carlos, so I followed as Bjorn suggested the rhosimpleFoam solver and the instructions from OpenFoam Wiki on how to add temperature to IcoFoam. A lot of erros appeared at the first place but I managed to overcome them, builded the new solver with the temperature and no errors appear. I use Paraview for postprocessing and the problem is that U,p, nu (I work with non - Newtonian flow) is printed normally but I cannot see anywhere the T variable to select to view the results. Did anybody had that problem?I would appreciate any comments. Kindly, Nickolas shiromaniac likes this.

 June 1, 2011, 11:21 #8 Member   Nickolas P Join Date: Oct 2010 Location: Greece Posts: 30 Rep Power: 10 Also, in the past I have succesfully carried out the addition of temperature to icoFoam and Paraview gave me the results as suggested from OpenFoam Wiki about that subject. Thanx

 June 1, 2011, 11:43 #9 Senior Member   Martin Join Date: Oct 2009 Location: Aachen, Germany Posts: 253 Rep Power: 16 Hi Nickolas, just a guess, but have you defined the scalarField for T with option "IOobject::AUTO_WRITE"? Code: ```Info << "Reading field T\n" << endl; volScalarField T ( IOobject ( "T", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE // <---- T should be written out ), mesh );``` Beside of that you can force T to be written out with: Code: `T.write()` near the end of your code. Martin

 June 1, 2011, 11:48 #10 Member   Nickolas P Join Date: Oct 2010 Location: Greece Posts: 30 Rep Power: 10 Yes that is correct. Below I m sending the createFields.H file of my created solver: Info << "Reading field p\n" << endl; volScalarField p ( IOobject ( "p", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh ); Info << "Reading field U\n" << endl; volVectorField U ( IOobject ( "U", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh ); //adding from here Info<< "Reading field T\n" < turbulence ( incompressible::RASModel::New(U, phi, laminarTransport) So besides that I can add at the end the line you suggested and leave the option IOobject::AUTO_WRITE the same?

 June 1, 2011, 11:57 #11 Senior Member   Martin Join Date: Oct 2009 Location: Aachen, Germany Posts: 253 Rep Power: 16 The AUTO_WRITE option is fine, don't know why it doesn't work. You can add the T.write() additionally, for example in your runTime loop: Code: ``` while (runTime.loop()) { . . . . . . if (runTime.outputTime()) T.write(); }``` or at the very end of your solver: Code: ``` . . . } T.write(); Info<< "End\n" << endl;``` Martin

June 1, 2011, 14:35
#12
Member

Nickolas P
Join Date: Oct 2010
Location: Greece
Posts: 30
Rep Power: 10
Martin,

First of all thanks a lot for the useful information.
I tried the method you told me but the problem still remains the same. So I found a similar solver to see if things work out, the solver is the buoyantBoussinesqSimpleFoam. I modified my simpleFoam solver to match with the Boussinesq one. Actually at Boussinesq there is already the code on how to add the temperature but I think in my case I dont implement it correct.

I'm attaching some of the files of the solver to check if I have done anything wrong. Please, I m open to any thoughts, comments!

Kindly,

Nickolas
Attached Files
 createFields.H (1.2 KB, 279 views) my_simpleFoam.C (2.4 KB, 324 views) readTransportProperties.H (148 Bytes, 257 views) TEqn.H (309 Bytes, 407 views)

June 1, 2011, 17:54
#13
Senior Member

Martin
Join Date: Oct 2009
Location: Aachen, Germany
Posts: 253
Rep Power: 16
Hi Nickolas,

in the attachment you find the reviewed solver and a test case.

I made two minor changes to your solver in createFields.H and TEqn.H, have a look at comments with "@ Nickolas:".

To run the test case use:
blockMesh
my_simpleFoam

You can run it in parallel, too. It's configured for 4 cpu cores.

Have fun

Martin
Attached Images
 T.jpg (18.4 KB, 564 views)
Attached Files
 solver_and_case.tar.gz (16.7 KB, 741 views)

 June 2, 2011, 14:13 #14 Member   Nickolas P Join Date: Oct 2010 Location: Greece Posts: 30 Rep Power: 10 Hi Martin, With your suggestions I was able to perform the simulations and the temperature was calculated! Thank you very much. I am now able to understand the code better. Nontheless, I need to validate my results with the theory to check if everythhing works ok, but for the time being the temperature field is plotted. I have another question concerning the "relaxation factors" that I see in the "fvsolution" file. How these factors affect the results of the simulation and I would like to know if there any standard values. Does it have to do with the flow field (meaning Newtonian approximation, non - Newtonian approximation) or the mesh? Or is it just a short of numerical technique? I found OpenFOAM very interesting and I would like to learn as much as possible although I m not very strong at c++. Do you happen to know any books or internet sites for me to study regarding these matter? Again thanks a lot for your comments! Kindly, Nickolas

September 12, 2011, 12:21
#15
Member

andres
Join Date: Jul 2011
Posts: 30
Rep Power: 9
Quote:
 Originally Posted by MartinB Hi Nickolas, in the attachment you find the reviewed solver and a test case. I made two minor changes to your solver in createFields.H and TEqn.H, have a look at comments with "@ Nickolas:". To run the test case use: blockMesh my_simpleFoam You can run it in parallel, too. It's configured for 4 cpu cores. Have fun Martin
Hi
I have taken this file to add Temperature to the simpleFoam solver, I have followed the the instructions in the openfom wiki, but I'm having an error.
Cheers.

Quote:
 usuarioubuntu@SAN1496UBU:/opt/openfoam200/applications/solvers/incompressible/my_simpleFoam\$ wmake Making dependency list for source file my_simpleFoam.C /opt/openfoam200/wmake/scripts/addCompile: 53: cannot create my_simpleFoam.dep: Permission denied /opt/openfoam200/wmake/scripts/addCompile: 57: cannot create my_simpleFoam.dep: Permission denied /opt/openfoam200/wmake/scripts/addCompile: 59: cannot create my_simpleFoam.dep: Permission denied /opt/openfoam200/wmake/scripts/addCompile: 60: cannot create my_simpleFoam.dep: Permission denied /opt/openfoam200/wmake/scripts/addCompile: 61: cannot create my_simpleFoam.dep: Permission denied /opt/openfoam200/wmake/scripts/addCompile: 62: cannot create my_simpleFoam.dep: Permission denied make: *** [my_simpleFoam.dep] Error 2

 September 13, 2011, 03:22 #16 Senior Member     Anton Kidess Join Date: May 2009 Location: Germany Posts: 1,353 Rep Power: 24 Andres, /opt/ is a directory that can only be written to with administrator rights. If you compile the solver in your home directory all should be well.

September 13, 2011, 11:44
#17
Member

andres
Join Date: Jul 2011
Posts: 30
Rep Power: 9
Quote:
 Originally Posted by akidess Andres, /opt/ is a directory that can only be written to with administrator rights. If you compile the solver in your home directory all should be well.
Hi Anton, thanks for your answer. I have tried to compile the solver in home directory, but I get a new error. Sorry but I donīt have to much experience working with linux, so some instructions are dificult to follow.
Quote:
 usuarioubuntu@SAN1496UBU:~/myfoam\$ wmake SOURCE=my_simpleFoam.C ; g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-100 -I/opt/openfoam200/src/turbulenceModels -I/opt/openfoam200/src/turbulenceModels/incompressible/RAS/RASModel -I/opt/openfoam200/src/transportModels -I/opt/openfoam200/src/transportModels/incompressible/singlePhaseTransportModel -I/opt/openfoam200/src/finiteVolume/lnInclude -IlnInclude -I. -I/opt/openfoam200/src/OpenFOAM/lnInclude -I/opt/openfoam200/src/OSspecific/POSIX/lnInclude -fPIC -c \$SOURCE -o Make/linuxGccDPOpt/my_simpleFoam.o my_simpleFoam.C:54:40: fatal error: readSIMPLEControls.H: No such file or directory compilation terminated. make: *** [Make/linuxGccDPOpt/my_simpleFoam.o] Error 1

 September 13, 2011, 12:15 #18 Senior Member     Anton Kidess Join Date: May 2009 Location: Germany Posts: 1,353 Rep Power: 24 Did you execute wclean before you tried to wmake again?

September 13, 2011, 12:19
#19
Member

andres
Join Date: Jul 2011
Posts: 30
Rep Power: 9
Quote:
 Originally Posted by akidess Did you execute wclean before you tried to wmake again?
No, i havenīt executed wclean.

Quote:
 usuarioubuntu@SAN1496UBU:~/myfoam\$ wclean usuarioubuntu@SAN1496UBU:~/myfoam\$ wmake Making dependency list for source file my_simpleFoam.C could not open file readSIMPLEControls.H for source file my_simpleFoam.C SOURCE=my_simpleFoam.C ; g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-100 -I/opt/openfoam200/src/turbulenceModels -I/opt/openfoam200/src/turbulenceModels/incompressible/RAS/RASModel -I/opt/openfoam200/src/transportModels -I/opt/openfoam200/src/transportModels/incompressible/singlePhaseTransportModel -I/opt/openfoam200/src/finiteVolume/lnInclude -IlnInclude -I. -I/opt/openfoam200/src/OpenFOAM/lnInclude -I/opt/openfoam200/src/OSspecific/POSIX/lnInclude -fPIC -c \$SOURCE -o Make/linuxGccDPOpt/my_simpleFoam.o my_simpleFoam.C:54:40: fatal error: readSIMPLEControls.H: No such file or directory compilation terminated. make: *** [Make/linuxGccDPOpt/my_simpleFoam.o] Error 1
thanks!

 September 13, 2011, 12:24 #20 Senior Member     Anton Kidess Join Date: May 2009 Location: Germany Posts: 1,353 Rep Power: 24 Does readSIMPLEcontrols.H exist in "/opt/openfoam200/src/finiteVolume/lnInclude/"?

 Tags simplefoam, temperature