CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   TimeVaryingUniformFixedValueFvPathField (http://www.cfd-online.com/Forums/openfoam-solving/59357-timevaryinguniformfixedvaluefvpathfield.html)

skabilan October 23, 2007 04:43

Hi All, I am using the time
 
Hi All,

I am using the timeVaryingUniformFixedValue class to vary the inlet pressure with respect to time. The data file is

(
0 1.547987616
0.1 1.716125532
0.2 1.880123578
0.3 1.9
0.4 1.98
)

I am using a timestep of 0.1 (this is just a test case, so not worried about the co number!) I have print statements in the interpolateXY.C to check for the values of lo and hi that is computed. Does anyone have an ideas as to why for the time 0.3 it goes to " if (lo<n && hi<n && lo != hi)" loop in the interpolateXY.c though the data table does have a value for time = 0.3? At every other time t it goes to the right loop with is "else if (lo == hi)". Is this a bug?

[skabilan@brahma openFoam_Radau]$ icoFoam . weibel_icofoam_trans_modified
/*---------------------------------------------------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.4.1 |
| \ / A nd | Web: http://www.openfoam.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/

Exec : icoFoam . weibel_icofoam_trans_modified
Date : Oct 23 2007
Time : 01:33:42
Host : brahma
PID : 16382
Root : /home/skabilan/workdir/openfoam/openFoam_Radau
Case : weibel_icofoam_trans_modified
Nprocs : 1
Create time

Create mesh for time = 0

Reading transportProperties

Reading field p

Loop: else if (lo == hi) hi =0 lo=0 Reading field U

Reading/calculating face flux field phi


Starting time loop

Time = 0.1

Courant Number mean: 0 max: 0
DILUPBiCG: Solving for Ux, Initial residual = 0.999504, Final residual = 0.00809314, No Iterations 6
DILUPBiCG: Solving for Uy, Initial residual = 0.999507, Final residual = 0.00820286, No Iterations 6
DILUPBiCG: Solving for Uz, Initial residual = 0.999504, Final residual = 0.00845304, No Iterations 6
Loop: else if (lo == hi) hi =1 lo=1 GAMG: Solving for p, Initial residual = 1, Final residual = 0.0350794, No Iterations 2
time step continuity errors : sum local = 0.0324785, global = -0.00358765, cumulative = -0.00358765
Loop: else if (lo == hi) hi =1 lo=1 GAMG: Solving for p, Initial residual = 0.260792, Final residual = 0.00856939, No Iterations 2
time step continuity errors : sum local = 0.0138521, global = -0.000358116, cumulative = -0.00394577
ExecutionTime = 30.04 s ClockTime = 33 s

Time = 0.2

Courant Number mean: 0.315566 max: 49.5862
DILUPBiCG: Solving for Ux, Initial residual = 0.561483, Final residual = 0.00506271, No Iterations 10
DILUPBiCG: Solving for Uy, Initial residual = 0.763739, Final residual = 0.00641278, No Iterations 10
DILUPBiCG: Solving for Uz, Initial residual = 0.480907, Final residual = 0.00450018, No Iterations 10
Loop: else if (lo == hi) hi =2 lo=2 GAMG: Solving for p, Initial residual = 0.573999, Final residual = 0.0499719, No Iterations 3
time step continuity errors : sum local = 0.113697, global = -0.000186662, cumulative = -0.00413243
Loop: else if (lo == hi) hi =2 lo=2 GAMG: Solving for p, Initial residual = 0.249277, Final residual = 0.017112, No Iterations 2
time step continuity errors : sum local = 0.175116, global = -0.000150884, cumulative = -0.00428331
ExecutionTime = 56.6 s ClockTime = 63 s

Time = 0.3

Courant Number mean: 6.81871 max: 178.491
DILUPBiCG: Solving for Ux, Initial residual = 0.571084, Final residual = 2.95901, No Iterations 11
DILUPBiCG: Solving for Uy, Initial residual = 0.499858, Final residual = 0.179136, No Iterations 11
DILUPBiCG: Solving for Uz, Initial residual = 0.562771, Final residual = 0.0983058, No Iterations 11
Loop: if (lo<n && hi<n && lo != hi) hi =4 lo=3 GAMG: Solving for p, Initial residual = 0.6104, Final residual = 0.0294098, No Iterations 5
time step continuity errors : sum local = 0.278484, global = -0.000241645, cumulative = -0.00452496
Loop: if (lo<n && hi<n && lo != hi) hi =4 lo=3 GAMG: Solving for p, Initial residual = 0.229443, Final residual = 0.0170605, No Iterations 2
time step continuity errors : sum local = 2.55355, global = 0.00089873, cumulative = -0.00362623
ExecutionTime = 86.89 s ClockTime = 97 s

Time = 0.4

Courant Number mean: 28.7215 max: 536.595
DILUPBiCG: Solving for Ux, Initial residual = 0.687021, Final residual = 0.0960124, No Iterations 11
DILUPBiCG: Solving for Uy, Initial residual = 0.638056, Final residual = 1.99633, No Iterations 11
DILUPBiCG: Solving for Uz, Initial residual = 0.676249, Final residual = 0.573936, No Iterations 11
Loop: else if (lo == hi) hi =4 lo=4 GAMG: Solving for p, Initial residual = 0.731519, Final residual = 0.0346012, No Iterations 4
time step continuity errors : sum local = 3.55919, global = 0.0101174, cumulative = 0.00649117
Loop: else if (lo == hi) hi =4 lo=4 GAMG: Solving for p, Initial residual = 0.236202, Final residual = 0.0173779, No Iterations 2
time step continuity errors : sum local = 16.2332, global = -0.0699737, cumulative = -0.0634826
ExecutionTime = 118.38 s ClockTime = 132 s

msrinath80 October 24, 2007 12:27

I hope 'hi' and 'lo' are integ
 
I hope 'hi' and 'lo' are integers. If they are floating point, then even if 'hi' is equal to 'lo' the C/C++ will not accept it, as 'hi' could be stored as 3.9999999 and 'lo' could be stored as 4.000001 and therefore according to the code, hi != lo. I faced this problem a while ago. See [1].

[1] http://gcc.gnu.org/ml/gcc-help/2005-03/msg00292.html

skabilan October 24, 2007 14:03

Thanks for the explanation!
 
Thanks for the explanation!

Senthil

mattijs October 24, 2007 14:26

hi and lo are integers (labels
 
hi and lo are integers (labels).

Is there a problem? Does the interpolateXY routine return the wrong answer?

skabilan October 24, 2007 14:59

Hi Mattijs, I guess there i
 
Hi Mattijs,

I guess there is a bit of a problem with the interpolateXY. Though there is an entry (pressure) for the time 0.3 in the data table. The interpolateXY.C is interpolating the values of pressure i.e, goes to "if (lo<n && hi<n && lo != hi) " instead of " else if (lo == hi)" loop because hi and lo are different as can been seen in the output that i have posted.

Thanks
Senthil

skabilan October 26, 2007 15:19

Hi, Good day to all! I have
 
Hi,

Good day to all! I have a mesh with eight outlets and every outlet is specified with a timeVaryingUniformFixedValue boundary condition. There are eight data files from which the outlets get their pressure values for every timestep. My question is... in case this problem is solved in parallel, does a single processor read from all the eight datafiles and send the p value to other processors to which the outlet has been alloted by the decomposePar or does the individual processors read the data file directly corresponding to the outlets they handle? I am working on a new boundary condition or patch in OpenFOAM that would allow a 1D system to supply the boundary condition to the 3D system. The answer to the aforementioned question would tremendously help me with my research.

Thanks in advance!
Senthil


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