CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Programming & Development

adding temperature to simpleFoam

Register Blogs Community New Posts Updated Threads Search

Like Tree31Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 13, 2013, 03:57
Default
  #61
New Member
 
Bin Xu
Join Date: Apr 2012
Location: Singapore
Posts: 23
Rep Power: 14
norkistar is on a distinguished road
HI, Martin, how to realize that the transport properties like nu and DT is a function of temperature in the OpenFOAM? Best regards. Can you help to send a revised solver and simple case as you revised in this topic?
norkistar is offline   Reply With Quote

Old   July 18, 2013, 05:07
Default
  #62
Member
 
Amin
Join Date: May 2013
Posts: 76
Rep Power: 13
Mirage12 is on a distinguished road
I am using OpenFoam 2.2.0.

I downloaded the case and solver of Martin ( post 31) but i could not run the case.

Output:
Code:
abm5kor@BMH301562:~/Downloads/case_of2$ mySimpleFoam
mySimpleFoam: command not found
any idea ?
Mirage12 is offline   Reply With Quote

Old   July 18, 2013, 05:12
Default
  #63
Senior Member
 
Andrea Pasquali
Join Date: Sep 2009
Location: Germany
Posts: 142
Rep Power: 17
andrea.pasquali is on a distinguished road
You should first compile it.
enter in the mySimpleFoam directory and run wmake.

Best
Andrea
__________________
Andrea Pasquali
andrea.pasquali is offline   Reply With Quote

Old   July 18, 2013, 05:30
Default
  #64
Member
 
Amin
Join Date: May 2013
Posts: 76
Rep Power: 13
Mirage12 is on a distinguished road
As you could not the case, i copied the the simpleFoam-solver in my Home (i followed the tutorial How to add temperature to icoFoam ) and i copied the data content of mySimpleFoam.C in my my_simpleFoam.C.

The case is now working but i got same this warning for every timestep :

Code:
Time = 0.03
--> FOAM Warning : 
    From function gaussConvectionScheme
    in file finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H at line 123
    Reading "/home/abm5kor/Desktop/validation/my/phi90/simp/system/fvSchemes.divSchemes.div(phi,U)" at line 33
    Unbounded 'Gauss' div scheme used in steady-state solver, use 'bounded Gauss' to ensure boundedness.
    To remove this warning switch off 'boundedGauss' in "/opt/openfoam220/etc/controlDict"
smoothSolver:  Solving for Ux, Initial residual = 1, Final residual = 0.00563413, No Iterations 6
smoothSolver:  Solving for Uy, Initial residual = 1, Final residual = 0.00681572, No Iterations 6
GAMGPCG:  Solving for p, Initial residual = 1, Final residual = 0.0997764, No Iterations 17
time step continuity errors : sum local = 1.07194e-05, global = -1.74168e-07, cumulative = -1.74168e-07
ExecutionTime = 2.72 s  ClockTime = 3 s

Time = 0.06

--> FOAM Warning : 
    From function gaussConvectionScheme
    in file finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H at line 123
    Reading "/home/abm5kor/Desktop/validation/my/phi90/simp/system/fvSchemes.divSchemes.div(phi,U)" at line 33
    Unbounded 'Gauss' div scheme used in steady-state solver, use 'bounded Gauss' to ensure boundedness.
    To remove this warning switch off 'boundedGauss' in "/opt/openfoam220/etc/controlDict"
smoothSolver:  Solving for Ux, Initial residual = 0.282954, Final residual = 0.00049519, No Iterations 9
smoothSolver:  Solving for Uy, Initial residual = 0.500867, Final residual = 0.00099807, No Iterations 9
GAMGPCG:  Solving for p, Initial residual = 0.164892, Final residual = 0.0134685, No Iterations 8
time step continuity errors : sum local = 2.1845e-05, global = -1.18233e-07, cumulative = -2.92401e-07
ExecutionTime = 3.6 s  ClockTime = 4 s

how can fix the warning?


Thx
Mirage12 is offline   Reply With Quote

Old   July 18, 2013, 05:34
Default
  #65
Member
 
Amin
Join Date: May 2013
Posts: 76
Rep Power: 13
Mirage12 is on a distinguished road
Quote:
Originally Posted by andrea.pasquali View Post
You should first compile it.
enter in the mySimpleFoam directory and run wmake.

Best
Andrea
Thx for your answer

i cannot compil it :

Code:
abm5kor@BMH301562:~/OpenFOAM/abm5kor-2.2.0/applications/solvers/my_SimpleFoam$ wmake
make: *** No rule to make target `my_SimpleFoam.dep', needed by `Make/linux64GccDPOpt/dependencies'.  Stop.
Mirage12 is offline   Reply With Quote

Old   July 18, 2013, 05:34
Default
  #66
Senior Member
 
Andrea Pasquali
Join Date: Sep 2009
Location: Germany
Posts: 142
Rep Power: 17
andrea.pasquali is on a distinguished road
I guess you should update the fvSchemes and fvSolutions files to the latest version you are using.
You can find these files into one of the tutorial case in your openfoam installation.
Best
Andrea
__________________
Andrea Pasquali
andrea.pasquali is offline   Reply With Quote

Old   July 18, 2013, 05:44
Default
  #67
Member
 
Amin
Join Date: May 2013
Posts: 76
Rep Power: 13
Mirage12 is on a distinguished road
Do you think, that i could not compile the new solver, because i did not used the latest version of fvSchemes and fvSolutions?
Mirage12 is offline   Reply With Quote

Old   July 19, 2013, 00:34
Default
  #68
Member
 
Amin
Join Date: May 2013
Posts: 76
Rep Power: 13
Mirage12 is on a distinguished road
i understood , what i mean Andrea
i need the latest version of fvSchemes and fvSolutions, only for running the case
Mirage12 is offline   Reply With Quote

Old   August 7, 2013, 00:27
Default
  #69
Senior Member
 
Join Date: Jul 2011
Posts: 120
Rep Power: 15
haze_1986 is on a distinguished road
Quote:
Originally Posted by libia87 View Post
Hi!
I'm trying to add concentration following the tutorial "how to add temperature to icoFoam", but I'm using buoyantboussinesqPimpleFoam and it doesn't work, anyone knows why??
when I do the WMAKE appears that error:

Making dependency list for source file my_buoyantBoussinesqPimpleFoam.C
could not open file readTransportProperties.H for source file my_buoyantBoussinesqPimpleFoam.C
SOURCE=my_buoyantBoussinesqPimpleFoam.C ; g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-100 -I../buoyantBoussinesqSimpleFoam -I/opt/openfoam210/src/finiteVolume/lnInclude -I/opt/openfoam210/src/turbulenceModels -I/opt/openfoam210/src/turbulenceModels/incompressible/RAS/lnInclude -I/opt/openfoam210/src/transportModels -I/opt/openfoam210/src/transportModels/incompressible/singlePhaseTransportModel -IlnInclude -I. -I/opt/openfoam210/src/OpenFOAM/lnInclude -I/opt/openfoam210/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/my_buoyantBoussinesqPimpleFoam.o
In file included from my_buoyantBoussinesqPimpleFoam.C:61:
createFields.H:47:41: error: readTransportProperties.H: No existe el fichero o el directorio
In file included from my_buoyantBoussinesqPimpleFoam.C:61:
createFields.H: In function ‘int main(int, char**)’:
createFields.H:52: error: ‘laminarTransport’ was not declared in this scope
createFields.H:64: error: ‘beta’ was not declared in this scope
createFields.H:64: error: ‘TRef’ was not declared in this scope
In file included from my_buoyantBoussinesqPimpleFoam.C:86:
TEqn.H:2: error: ‘Prt’ was not declared in this scope
TEqn.H:5: error: ‘Pr’ was not declared in this scope
/opt/openfoam210/src/finiteVolume/lnInclude/readTimeControls.H:38: warning: unused variable ‘maxDeltaT’
make: *** [Make/linux64GccDPOpt/my_buoyantBoussinesqPimpleFoam.o] Error 1
add in #include readTransportProperties.H
haze_1986 is offline   Reply With Quote

Old   September 24, 2013, 17:43
Default rasInterFoam problem
  #70
New Member
 
S. Javad Saharkhiz
Join Date: Sep 2013
Location: Iran
Posts: 21
Rep Power: 13
jvd.mechanic is on a distinguished road
hi every one
i have a problem with solution "damBreak" tutorial in OpenFoam with rasInterFoam solver.when i type " rasInterFoam " in terminal , it seid " rasInterFoam: command not found " !! do every one how can i solve my problem ?
version of my OpenFoam is 2.2.1 ; it hasn't rasInterFoam but in folder of interFoam ( or many of other solvers) it has "ras" and "les" folder . and my damBreak folder has " RASProperties " .
jvd.mechanic is offline   Reply With Quote

Old   September 25, 2013, 04:50
Default
  #71
New Member
 
Andreas Groß
Join Date: Sep 2013
Posts: 8
Rep Power: 13
AndreasG is on a distinguished road
Hey jvd.mechanic,

there is no rasInterFoam in 2.2.1. Just use interFoam as it is supports generic turbulence modeling like RAS, LES or laminar. Just set the constant/transportProperties and RAS/LESProperties according to the model you want to use.
See here:
$FOAM_SOLVERS/multiphase/interFoam line 34:
Quote:
Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected.
AndreasG is offline   Reply With Quote

Old   April 21, 2014, 08:48
Default Regarding adding the equation in simpleFoam solver
  #72
Member
 
sonu
Join Date: Jul 2013
Location: delhi
Posts: 92
Rep Power: 13
yash.aesi is on a distinguished road
Greeting Martin and all ,
i am using OF-2.2 and i need to find scaler dissipation rate (chi) of the cold flow for that i have to add mixture fraction variance (Zvar) equation into the existing solver, as
chi= Cx * epsilon/k * Zvar
so now i had made separate my_simpleFoam solver but not getting idea how to proceed further. so can somebody guide me through this problem

Thank You,
Regards,
Sonu
yash.aesi is offline   Reply With Quote

Old   October 21, 2014, 16:34
Default
  #73
New Member
 
Ali Kadar
Join Date: Oct 2014
Location: Delft
Posts: 25
Rep Power: 12
flowAlways is on a distinguished road
Hello,
Can someone please explain me.
What does adding temperature to simpleFoam solver essentially means?

Does it mean

1. That we want to obtain both the flow field and the temperature(not coupled) distribution
and if so why not use scalarTransportFoam after obtaining the flow field using simpleFoam ?

or

2. If we want to consider a strong coupling of the flow field with the temperature distribution(which effects the density and viscosity) why not use rhoSimpleFoam ?

or.

3. we consider small variations in temperature and thus density in which case we can use buoyantBoussinesqSimpleFoam.

Please if someone could illustrate. I am confused.
I want to model a burner with turbulent reacting flows and I started with laminar flow, isothermal turbulent flow and next I want to learn non-isothermal turbulent flow. But I dont understand which model will be the best suited for the last case?
__________________
A good solution is one which does justice to the inner nature of the problem- Cornelius Lanczos in a letter to Albert Einstein on March 9, 1947
flowAlways is offline   Reply With Quote

Old   March 16, 2015, 11:37
Default
  #74
New Member
 
Panagiotis Giannatselis
Join Date: Jan 2015
Location: Athens, Greece
Posts: 5
Rep Power: 11
pgiannatselis is on a distinguished road
Quote:
Originally Posted by flowAlways View Post
Hello,
Can someone please explain me.
What does adding temperature to simpleFoam solver essentially means?

Does it mean

1. That we want to obtain both the flow field and the temperature(not coupled) distribution
and if so why not use scalarTransportFoam after obtaining the flow field using simpleFoam ?

or

2. If we want to consider a strong coupling of the flow field with the temperature distribution(which effects the density and viscosity) why not use rhoSimpleFoam ?

or.

3. we consider small variations in temperature and thus density in which case we can use buoyantBoussinesqSimpleFoam.

Please if someone could illustrate. I am confused.
I want to model a burner with turbulent reacting flows and I started with laminar flow, isothermal turbulent flow and next I want to learn non-isothermal turbulent flow. But I dont understand which model will be the best suited for the last case?
I am having trouble finding a way to modify simpleFOAM to solve for T because both DT and viscosity change with Temperature. I think that I am answering your question.

The reason why in a non-Newtonian (non-Newtonian means that viscosity changes) incompressible flow we must add T is that, like in my case, the viscosity depends to the T field. Not solving for T we do not know the viscosity and therefore we solve fore a fluid that has different properties.

I would be very thankful if somebody shared with me his experience solving a problem as complex as mine. I feel I am in a bucket with glue.
pgiannatselis is offline   Reply With Quote

Old   March 19, 2015, 04:41
Default
  #75
New Member
 
Ali Kadar
Join Date: Oct 2014
Location: Delft
Posts: 25
Rep Power: 12
flowAlways is on a distinguished road
Both effective diffusivity(DTEff) and viscosity can be updated at each step of the simulation by reading the previous temperature field and re-calculating these quantities.

I myself have done for DTEff but not for viscosity. for DTEff follow
https://openfoamwiki.net/index.php/C...mpleScalarFoam

For viscosity you can refer to
http://www.tfd.chalmers.se/~hani/kur...nFoam%20v2.pdf

Note that what you are looking for is a very basic functionality and is available in all complex OpenFOAM solvers for instance reactingFoam calculates laminar viscosity using Sutherlands Law. However its difficult to understand these complex solvers at the first place.

Quote:
Originally Posted by pgiannatselis View Post
I am having trouble finding a way to modify simpleFOAM to solve for T because both DT and viscosity change with Temperature. I think that I am answering your question.

The reason why in a non-Newtonian (non-Newtonian means that viscosity changes) incompressible flow we must add T is that, like in my case, the viscosity depends to the T field. Not solving for T we do not know the viscosity and therefore we solve fore a fluid that has different properties.

I would be very thankful if somebody shared with me his experience solving a problem as complex as mine. I feel I am in a bucket with glue.
__________________
A good solution is one which does justice to the inner nature of the problem- Cornelius Lanczos in a letter to Albert Einstein on March 9, 1947
flowAlways is offline   Reply With Quote

Old   December 3, 2015, 02:58
Default
  #76
New Member
 
Join Date: Sep 2014
Posts: 8
Rep Power: 12
slashss4 is on a distinguished road
Hello everyone,

Does anybody know how the wall heat flux is used with mySimpleFoam?

Best,
slashss4 is offline   Reply With Quote

Old   December 3, 2015, 06:28
Default
  #77
Senior Member
 
Agustín Villa
Join Date: Apr 2013
Location: Alcorcón
Posts: 314
Rep Power: 15
agustinvo is on a distinguished road
Quote:
Originally Posted by slashss4 View Post
Hello everyone,

Does anybody know how the wall heat flux is used with mySimpleFoam?

Best,
Hello

there are two ways to specify it:
- with turbulentHeatFluxTemperature as a BC (you can check the code, it is easy to read)
- with groovyBC, you give the definition of the gradient of temperature as a function of the heat flux
- you give a fixedGradient (if the thermal conductivity dos not change, you will have the same heat flux along the wall)
agustinvo is offline   Reply With Quote

Old   December 4, 2015, 03:00
Default
  #78
New Member
 
Join Date: Sep 2014
Posts: 8
Rep Power: 12
slashss4 is on a distinguished road
Dear Agustin,

Thank you for your answer. When I use turbulentHeatFluxTemperature BC, I am getting

request for volScalarField kappaEff from objectRegistry region0 failed
available objects of type volScalarField are

8
(
nut
pPrevIter
TPrevIter
k
nu
p
T
epsilon
)
error

Also, I tried to use fixedGradient BC, and heat flux value is 400 W/m^2 however, when I compared the results between Fluent and OF, walls heated the system just 1 Kelvin in OF and roughly 50 K in Fluent. I dont know what the problem is.

Best,
slashss4 is offline   Reply With Quote

Old   December 4, 2015, 05:56
Default
  #79
Senior Member
 
Agustín Villa
Join Date: Apr 2013
Location: Alcorcón
Posts: 314
Rep Power: 15
agustinvo is on a distinguished road
Quote:
Originally Posted by slashss4 View Post
Dear Agustin,

Thank you for your answer. When I use turbulentHeatFluxTemperature BC, I am getting

request for volScalarField kappaEff from objectRegistry region0 failed
available objects of type volScalarField are

8
(
nut
pPrevIter
TPrevIter
k
nu
p
T
epsilon
)
error

Also, I tried to use fixedGradient BC, and heat flux value is 400 W/m^2 however, when I compared the results between Fluent and OF, walls heated the system just 1 Kelvin in OF and roughly 50 K in Fluent. I dont know what the problem is.

Best,
Hello

the BC works like this:
  • the heat flux is defined as
    Quote:
    q=k\nabla T={\kappa_{eff}}{\rho C_p}\nabla T
    so the BC is looking for that variable, kappaEff
  • you have to tell to the BC how it is called your kappaEff. In your solver you should have this term in your temperature equation, defined as
    Quote:
    \kappa_{eff}=\kappa+\kappa_t=\frac{k}{\rho Cp}+\frac{\nu_t}{Pr_t}=\frac{\nu}{Pr}+\frac{\nu_t}{Pr_t}
  • in your transportProperties you have to provide your rhoCp value
In case of the fixedGradient, you should give the value
Quote:
\nabla T=\frac{q}{k}=\frac{q}{{\kappa_{eff}}{\rho C_p}}
agustinvo is offline   Reply With Quote

Old   May 30, 2017, 18:28
Default scalar transport not working
  #80
Member
 
Sugajen
Join Date: Jan 2012
Location: Tempe, USA
Posts: 52
Rep Power: 14
Sugajen is on a distinguished road
Hi all,

I am relatively new to OpenFOAM. I am using OpenFOAM 4. I tried to add concentration, a scalar field, in the ways mentioned in the previous posts but unable to find it implemented in my test case. When I run the case file the entire region is filled with initial conditions of the concentrations that I specified. I have attached the codes below.
Any directions will be very helpful.
Thank you!

createfields.h
Code:
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
);

// Initializing c

Info<< "Reading field c\n" << endl;
volScalarField c
(
    IOobject
    (
        "c",
        runTime.timeName(),
        mesh,
        IOobject::MUST_READ,
        IOobject::AUTO_WRITE
    ),
    mesh
);

#include "createPhi.H"


label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, simple.dict(), pRefCell, pRefValue);
mesh.setFluxRequired(p.name());


singlePhaseTransportModel laminarTransport(U, phi);

// reading transport properties

Info<< "Reading transportProperties\n" << endl;
IOdictionary transportProperties
(
 IOobject
 (
 "transportProperties",
 runTime.constant(),
 mesh,
 IOobject::MUST_READ,
 IOobject::NO_WRITE
 )
);

dimensionedScalar Ds
(
 transportProperties.lookup("Ds")
);


autoPtr<incompressible::turbulenceModel> turbulence
(
    incompressible::turbulenceModel::New(U, phi, laminarTransport)
);

#include "createMRF.H"
solver
Code:
#include "fvCFD.H"
#include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H"
#include "simpleControl.H"
#include "fvOptions.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

int main(int argc, char *argv[])
{
    #include "postProcess.H"

    #include "setRootCase.H"
    #include "createTime.H"
    #include "createMesh.H"
    #include "createControl.H"
    #include "createFields.H"
    #include "createFvOptions.H"
    #include "initContinuityErrs.H"

    turbulence->validate();

    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

    Info<< "\nStarting time loop\n" << endl;

    while (simple.loop())
    {
        Info<< "Time = " << runTime.timeName() << nl << endl;

        // --- Pressure-velocity SIMPLE corrector
        {
            #include "UEqn.H"
	    #include "cEqn.H"
            #include "pEqn.H"

        }

        laminarTransport.correct();
        turbulence->correct();



        runTime.write();

        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
            << nl << endl;
    }

    Info<< "End\n" << endl;

    return 0;
}


// ************************************************************************* //
cEqn:
Code:

fvScalarMatrix cEqn
(
 //  fvm::ddt(c)
   fvm::div(phi, c)
 - fvm::laplacian(Ds, c)
);

cEqn.relax();
cEqn.solve().initialResidual();
Sugajen is offline   Reply With Quote

Reply

Tags
simplefoam, temperature


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Calculation of the Governing Equations Mihail CFX 7 September 7, 2014 07:27
Adding a new temperature dependent viscositymodel? dgadensg OpenFOAM Programming & Development 10 May 22, 2010 06:47
Adding temperature equation in settlingFoam sachin OpenFOAM Running, Solving & CFD 2 March 31, 2010 04:21
Adding temperature field to InterFoam yapalparvi OpenFOAM Running, Solving & CFD 8 October 14, 2009 21:18
Adding coriolis forces in simplefoam Xabi OpenFOAM Running, Solving & CFD 1 April 24, 2009 05:43


All times are GMT -4. The time now is 08:43.