# Mean Age of Air

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

July 20, 2012, 16:20
#21
Super Moderator

Tobias Holzmann
Join Date: Oct 2010
Location: Leoben (Austria)
Posts: 1,875
Blog Entries: 6
Rep Power: 32
Hi,

same solutions with simple and pimple.
Attachements
Attached Images
 TimePimpleFoam.jpg (13.3 KB, 65 views) TimeSimpleFoam.jpg (13.4 KB, 56 views)

July 23, 2012, 05:55
#22
Member

Tibor Nyers
Join Date: Jul 2010
Location: Hungary
Posts: 91
Rep Power: 10
Hi,

unfortunately I have mixed up the correct solver with an old one with errors. A thunder storm killed the hard disk with the new, correct version and I posted my obsolete one - always back up, and correct old stuff as well ...

So the correct scalar equation with sources:
Code:
```tmp<fvScalarMatrix> TEqn
(
fvm::ddt(T) + fvm::div(phi, T) - fvm::laplacian(DTEff, T) == sources(T)
);```
One have to add one more line to the solver:
Code:
`sources.constrain(TEqn());`
This function can be applied to set values in given cells - it has no effect on our setup, though, I added it for completeness.

Code:
```age
{
type            scalarExplicitSource;
active          on;
timeStart       0.0;
duration        1.0;
selectionMode   all;

scalarExplicitSourceCoeffs
{
volumeMode        specific;
injectionRate
{
T            1;
}
}
}```

I double-checked this solution, and it gives the exact values of the solver that Andrew King has attached a while back. Andrew, thanks for your solution, quite useful!

About the term in the laplacian, I "borrowed" the idea from Daniel C, here's what he said about the issue. I set DT to zero since I don't want additional diffusion.

I don't know if this method can be used in a steady-state case since there's no explicit time stepping. But if the solution matches the transient version more or less than it can be valid.

WARNING: I don't validated any result to real world tests. Feel free to correct the solver, add your thoughts, thank you!

if the flow is laminar, incompressible and you now the inlet properties (velocity / flow rate), I think it's just some basic calculations and it depends on the geometry of the diffusor. When the flow is turbulent I don't know how to calculate it, maybe there's some good approximations out there.
Attached Files
 ageScalarFoam.tar.gz (2.5 KB, 43 views) pitzDailyPimpleAge.tar.gz (3.6 KB, 24 views)

 April 23, 2013, 13:07 #23 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 Hi also it seems a dead thread.but I hope not and propound my question! I have a inflow patch and need a lot to know if the inflowing fluid has reached to outflow patch or not. preferably by rhoPimpleFoam. both the fluid that rest in the channel at first(internalField) and the fluid is entering are the same (air) but entering air has more pressure and temperature. is it possible to track entering air particles through the unsteady case I have? to give more information if is important to answer the case is a rectangular tube with one inflow and one outflow patch. how to modify the files in this thread in my case? __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked.

April 23, 2013, 13:36
#24
Super Moderator

Tobias Holzmann
Join Date: Oct 2010
Location: Leoben (Austria)
Posts: 1,875
Blog Entries: 6
Rep Power: 32
Quote:
 Originally Posted by immortality Hi also it seems a dead thread.but I hope not and propound my question! I have a inflow patch and need a lot to know if the inflowing fluid has reached to outflow patch or not. preferably by rhoPimpleFoam. both the fluid that rest in the channel at first(internalField) and the fluid is entering are the same (air) but entering air has more pressure and temperature. is it possible to track entering air particles through the unsteady case I have? to give more information if is important to answer the case is a rectangular tube with one inflow and one outflow patch. how to modify the files in this thread in my case?
Hi,

you can use implement a conserved scalar transport equation for that!
At the beginning your scalar is 1 at the inlet and the rest is zero.

While simulating your scalar is transported through the domain. In your case you should only use the transport due to convection and so you can have a look when the scalar reaches the outlet!

Tobi

 April 23, 2013, 13:44 #25 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 Hi Tobias thanks for rapid reply! I haven't modified a solver to solve for a new equation. then could you please guide me. I've added this in createFields: Code: ```volScalarField age ( IOobject ( "age", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh );``` is this the only change should I do in createFiels.H or some other lines? in the folder of solver I have to add this: Code: ```// --- Scalar Transport volScalarField DTEff = DT+turbulence->muEff()/0.7; tmp AgeEqn ( fvm::ddt(rho,Age) + fvm::div(phi, Age) == dimensionedScalar("AgeSource", Age.dimensions()*dimensionSet(1,-3,-1,0,0), 1) //- fvm::laplacian(DTEff, Age) ); AgeEqn().relax(); sources.constrain(AgeEqn()); AgeEqn().solve();``` I changed all T's to Age.and as you said to me should delete the laplacian term also,correct? and what should be assign for DT?and also change nut to mut(since my case is compressible,unsteady) correct? (does it work if I switch to a turbulent case too?) __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked. Last edited by immortality; April 23, 2013 at 14:47.

 April 23, 2013, 16:40 #26 Super Moderator     Tobias Holzmann Join Date: Oct 2010 Location: Leoben (Austria) Posts: 1,875 Blog Entries: 6 Rep Power: 32 Hi, have a look at my solver: https://github.com/shor-ty/scalarRhoSimpleFoam Then use the scalarEqn.H and the entry in the createFields.H for your own pimple solver! If there are any problems ask me! Have a nice evening, Tobi

 April 24, 2013, 07:23 #27 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 thanks. 1)I can't download.this error occurs: Code: ```https://github.com/shor-ty/scalarRhoSimpleFoam.git bash: https://github.com/shor-ty/scalarRhoSimpleFoam.git: No such file or directory``` 2)and also why ddt isn't there in equation? Code: ``` // --- Scalar transport tmp SEqn ( ( fvm::div(phi, S) - fvm::Sp(fvc::div(phi), S) - fvm::laplacian(turbulence->muEff(), S) ) ); SEqn().relax(); SEqn().solve(mesh.solver("S"));``` 3)how should I modify it to my unsteady compressible problem you know? should I delete laplacian term totally?why you have not done this to delete laplacian term?then how can account for turbulence? 4)what does this term is added?what does do? Code: `- fvm::Sp(fvc::div(phi), S)` __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked. Last edited by immortality; April 24, 2013 at 09:17.

 April 24, 2013, 13:47 #28 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 hi could you please help me with questions? __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked.

April 24, 2013, 14:22
#29
Super Moderator

Tobias Holzmann
Join Date: Oct 2010
Location: Leoben (Austria)
Posts: 1,875
Blog Entries: 6
Rep Power: 32
Quote:
Hi,

i was at work till now.

1. on my computer the github link is working!
2. you have to set ddt into that equation; in my case I used the SIMPLE algo (steady-state; ddt = 0)
3. let the diffusion term in your case
4. thats a numerical trick for stabilisation

 April 24, 2013, 14:26 #30 Super Moderator     Tobias Holzmann Join Date: Oct 2010 Location: Leoben (Austria) Posts: 1,875 Blog Entries: 6 Rep Power: 32

 April 24, 2013, 17:30 #31 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 thanks.then can you please give me a more description (or there is a source and internet link for that) about the term you has added for more stability.because may it be necessary to give some description in my thesis about each of terms in equations. __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked.

April 25, 2013, 00:42
#32
Super Moderator

Tobias Holzmann
Join Date: Oct 2010
Location: Leoben (Austria)
Posts: 1,875
Blog Entries: 6
Rep Power: 32
Quote:
 Originally Posted by immortality thanks.then can you please give me a more description (or there is a source and internet link for that) about the term you has added for more stability.because may it be necessary to give some description in my thesis about each of terms in equations.
I wrote a PDF and posted it here ... but no time for searching at the moment.

 April 25, 2013, 02:01 #33 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 ok.thank you.that would be nice.then i wait untill you come back. and what does that expression argument in parenthesis in solve() function mean?is that for cases we have moving mesh? Code: `SEqn().solve(mesh.solver("S"));` __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked. Last edited by immortality; April 25, 2013 at 07:27.

 April 25, 2013, 07:43 #34 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 and also in rhoPimpleFoam solver below is the position of gasEquation.H suitable(several times it solves) or it is better to be after pimple.loop() to solve one time each time step? Code: ```int main(int argc, char *argv[]) { #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" pimpleControl pimple(mesh); #include "createFields.H" #include "createFvOptions.H" #include "initContinuityErrs.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; while (runTime.run()) { #include "readTimeControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" runTime++; Info<< "Time = " << runTime.timeName() << nl << endl; if (pimple.nCorrPIMPLE() <= 1) { #include "rhoEqn.H" } // --- Pressure-velocity PIMPLE corrector loop while (pimple.loop()) { #include "UEqn.H" #include "EEqn.H" // --- Pressure corrector loop while (pimple.correct()) { #include "pEqn.H" } if (pimple.turbCorr()) { turbulence->correct(); } #include "gasEqn.H" } //Cp.write(); runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; } Info<< "End\n" << endl; return 0; }``` thanks. __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked.

April 25, 2013, 10:12
#35
Senior Member

Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,210
Rep Power: 19
hello again
excuse me for questions.
I run the case but gas(scalar value) is not between 0 and 1 as the snapshot.
how to resolve?
thanks.
Attached Images
 gas_value.jpg (12.7 KB, 40 views)
__________________
Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King.
To Be or Not To Be,Thats the Question!
The Only Stupid Question Is the One that Goes Unasked.

April 25, 2013, 11:17
#36
Super Moderator

Tobias Holzmann
Join Date: Oct 2010
Location: Leoben (Austria)
Posts: 1,875
Blog Entries: 6
Rep Power: 32
Quote:
 Originally Posted by immortality hello again excuse me for questions. I run the case but gas(scalar value) is not between 0 and 1 as the snapshot. how to resolve? thanks.
i dont know what you mean with gas. Is that your new scalar?

http://www.cfd-online.com/Forums/ope...tml#post407482

 April 25, 2013, 11:57 #37 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 yes.at last i put the name gas in return of S.because air flowing in has a higher pressure and temperature than air in domain.shouln't it be between 0 and 1 __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked.

 April 25, 2013, 12:24 #38 Super Moderator     Tobias Holzmann Join Date: Oct 2010 Location: Leoben (Austria) Posts: 1,875 Blog Entries: 6 Rep Power: 32 The value of your scalar depend on yuor BC settings!

 April 25, 2013, 12:32 #39 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,210 Rep Power: 19 i have set it 1 for inflow and 0 for initial condition as you told. Maybe because my case is compressible a change should be done. The dimension is zero[0 0 0 0 0 0].is it correct? __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked.

 April 25, 2013, 13:41 #40 Super Moderator     Tobias Holzmann Join Date: Oct 2010 Location: Leoben (Austria) Posts: 1,875 Blog Entries: 6 Rep Power: 32 I am a bit confused couse the tutorial added in my git repo is not the one i build for that. Its the CO/H2/N2 mesh well maybe I have time to resolve that mesh but first I reset my computer for Arch Linux

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post xujjun CFX 9 June 9, 2009 07:59 Mike23 Siemens 3 September 20, 2008 11:16 Young CFX 6 April 28, 2008 23:14 teddy Siemens 3 February 9, 2007 10:41 Ted Crilly Siemens 1 February 19, 2005 20:50

All times are GMT -4. The time now is 17:33.