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

rasInterFoam Channel Flowlooking for working case

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 18, 2006, 18:08
Default Hello, I am having some pro
  #1
Member
 
nicolas
Join Date: Mar 2009
Location: Glasgow
Posts: 42
Rep Power: 17
nico765 is on a distinguished road
Hello,

I am having some problems (see http://www.cfd-online.com/OpenFOAM_D...tml?1144138075) imposing good boundary conditions to solve a 3D channel flow case. Could anyone post a case that worked fine so that i can check what i am doing wrong?

Cheers,

Nicolas
nico765 is offline   Reply With Quote

Old   March 4, 2009, 22:15
Default Hi Nicolas, I am a newbie f
  #2
Member
 
Su Xiaohui
Join Date: Mar 2009
Location: Singapore
Posts: 30
Rep Power: 17
sxhdhi is on a distinguished road
Send a message via Skype™ to sxhdhi
Hi Nicolas,

I am a newbie for OpenFOAM. I read the link you post above and I think I got the similar problem. I could not get correct results for simple Open Channel Flow case by using InterFoam solver. Maybe the problem is solved already but I could not find the solution in OpenFOAM discussion forum.

Therefore, please let me know whether the problem is solved in OpenFOAM, it would be great appreciated.

I also attached my case below. Please point out the wrong setup if possible. Thanks.

----------------------------------------------
mesh
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.5 |
| \ / A nd | Web: http://www.OpenFOAM.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1.0;

vertices
(

(0 0 0) //point0
(10 0 0) //point1
(0 0.2 0) //point2
(10 0.2 0) //point3
(0 0.5 0) //point4
(10 0.5 0) //point5
(0 0 0.1) //point6
(10 0 0.1) //point7
(0 0.2 0.1) //point8
(10 0.2 0.1) //point9
(0 0.5 0.1) //point10
(10 0.5 0.1) //point11

);

blocks
(

hex (0 1 3 2 6 7 9 8) (50 20 1) simpleGrading (1 1 1)
hex (2 3 5 4 8 9 11 10) (50 20 1) simpleGrading (1 1 1)
);

edges
(
);

patches
(
patch inletWater
(

(0 6 8 2)

)
patch inletAir
(

(2 8 10 4)

)

patch outletWater
(

(7 1 3 9)

)
patch outletAir
(

(9 3 5 11)

)

patch Atmosphere
(

(10 11 5 4)

)
patch Bottom
(

(7 6 0 1)

)
);

mergePatchPairs
(
);

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

-----------------------------------
setFields
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.5 |
| \ / A nd | Web: http://www.OpenFOAM.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object setFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

defaultFieldValues
(
volScalarFieldValue gamma 0
volVectorFieldValue U (0.0 0 0)
);

regions
(
boxToCell
{
box (0 0 0) (10 0.2 0.1);

fieldValues
(
volScalarFieldValue gamma 1
volVectorFieldValue U (0.1 0 0)
);
}
);

// ************************************************** *********************** //
---------------------------------------
ControlDIct

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.5 |
| \ / A nd | Web: http://www.OpenFOAM.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application interFoam;

//startFrom lastTime;
startFrom startTime;
startTime 0;

stopAt endTime;

endTime 50;

deltaT 0.001;

writeControl adjustableRunTime;

writeInterval 1;

purgeWrite 0;

writeFormat ascii;

writePrecision 6;

writeCompression uncompressed;

timeFormat general;

timePrecision 6;

runTimeModifiable yes;

adjustTimeStep yes;

maxCo 0.5;

maxDeltaT 1;

//libs ("libOpenFOAM.so" "libconvectiveOutlet.so");

// ************************************************** *********************** //
---------------------------------------
U
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.5 |
| \ / A nd | Web: http://www.OpenFOAM.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 -1 0 0 0 0];

internalField uniform ( 0 0 0);

boundaryField
{
inletWater
{
type fixedValue;
value uniform (0.1 0 0);
}
inletAir
{
type fixedValue;
value uniform (0 0 0);
}
outletWater
{
type zeroGradient;
}
outletAir
{
type zeroGradient;
}
Atmosphere
{
type pressureInletOutletVelocity;
phi phi;
value uniform (0 0 0);
}
Bottom
{
type zeroGradient;
}
defaultFaces
{
type empty;
}
}


// ************************************************** *********************** //
-------------------------------------
gamma
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.5 |
| \ / A nd | Web: http://www.OpenFOAM.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object gamma;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 0 0 0 0 0 0];

internalField uniform 0;

boundaryField
{
inletWater
{
type zeroGradient;
}
inletAir
{
type zeroGradient;
}
outletWater
{
type fixedValue;
value uniform 1;
}
outletAir
{
type fixedValue;
value uniform 0;
}
Atmosphere
{
type inletOutlet;
inletValue uniform 0;
value uniform 0;
}
Bottom
{
type zeroGradient;
}
defaultFaces
{
type empty;
}
}


// ************************************************** *********************** //
pd
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.5 |
| \ / A nd | Web: http://www.OpenFOAM.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object pd;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [1 -1 -2 0 0 0 0];

internalField uniform 0;

boundaryField
{
inletWater
{
type zeroGradient;
}
inletAir
{
type zeroGradient;
}
outletWater
{
type fixedValue;
value uniform 0;
}
outletAir
{
type fixedValue;
value uniform 0;
}
Atmosphere
{
type totalPressure;
U U;
phi phi;
rho none;
psi none;
gamma 1;
p0 uniform 0;
value uniform 0;
}
Bottom
{
type zeroGradient;
}
defaultFaces
{
type empty;
}
}


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

that is all. some one suggests to use inletOutlet to gamma, but I think it does not satisfy the fixed water depth in downstream condition. what do you think?

Anyone of FOAMers will be apprecaited for your comments.

Regards

Su Xiaohui
sxhdhi is offline   Reply With Quote

Old   March 6, 2009, 05:17
Default hi Su Xiaohui , i think you
  #3
Member
 
hamdi
Join Date: Mar 2009
Posts: 75
Rep Power: 17
hamcer is on a distinguished road
hi Su Xiaohui ,

i think your pb is in the setField and controldict files,

first in setfiels file, in order to show the motion of you flow you should'nt fill all your domain in water for example box (0 0 0) (1 0.2 0.1);

in file controlDict:
endtime= distance/velocity=10/0.1=100s; preferably we take endtime=endtime*2=200s
and deltaT=(C0*deltax)/U (see userguide or programm's guid), when deltax=10/50=0.2, thus deltaT=(0.5*0.2)/0.1=1s not 0.001,
also writeInterval means the number of folders which contains the results ,
writeInterval= means the steps of time to writing a folders of results, for exp if writeInterval = 5 impliques that at each 5 second you will have a folder of results;

hope it help you.

hamdi
hamcer is offline   Reply With Quote

Old   March 18, 2009, 02:32
Default
  #4
Member
 
Su Xiaohui
Join Date: Mar 2009
Location: Singapore
Posts: 30
Rep Power: 17
sxhdhi is on a distinguished road
Send a message via Skype™ to sxhdhi
Hi Hamdi,

Thanks for your information.
I have once tried the setup you mentioned before, but results are not good.
Have you even been got good resluts for such simple OpenChannel flow case? If So I would be greatly appreciated you can share them in this forum.

Thanks again for your reply.

Regards

Su Xiaohui
sxhdhi is offline   Reply With Quote

Old   March 24, 2009, 01:49
Cool where is source term rho*g in Ueqn.H of InterFOAM?
  #5
Member
 
Su Xiaohui
Join Date: Mar 2009
Location: Singapore
Posts: 30
Rep Power: 17
sxhdhi is on a distinguished road
Send a message via Skype™ to sxhdhi
Dear all,
I noted that a variable with ghf[ surfaceScalarField ghf("gh", g & mesh.Cf());] and this ghf is used in Ueqn.H for solving U (let LHS=RHS)

In order to say clearly, I copy the code below
************************************************** **************************************
surfaceScalarField muf = twoPhaseProperties.muf();

fvVectorMatrix UEqn
(
fvm::ddt(rho, U)
+ fvm::div(rhoPhi, U)
- fvm::laplacian(muf, U)
- (fvc::grad(U) & fvc::grad(muf))
//- fvc::div(muf*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf()))
);

if (momentumPredictor)
{
solve
(
UEqn
==
fvc::reconstruct
(
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(g amma)
- ghf*fvc::snGrad(rho)
- fvc::snGrad(pd)
) * mesh.magSf()
)
);
}

After derivation I knew ghf*fvc::snGrad(rho) plus fvc::snGrad(pd) is snGrad(p) based on p=pd+rho*gh. However, if my derivation is right, where the source term rho*g is in momentum equation?

I am really appreciated if anyone can give me a hand on it.

Best Regards

Su Xiaohui
sxhdhi is offline   Reply With Quote

Reply


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
Parallel rasInterFoam openfoam_user OpenFOAM Running, Solving & CFD 4 November 1, 2008 05:14
RasInterFoam or lesInterFoam hsieh OpenFOAM Running, Solving & CFD 2 March 31, 2006 15:42
RasInterFoam cavitation maritozzo OpenFOAM Running, Solving & CFD 2 December 6, 2005 15:09
Sample not working in my case sampaio OpenFOAM Post-Processing 1 October 26, 2005 14:41
Working with compressed case and data files Darrell Anthony Egarr FLUENT 0 December 15, 2002 08:05


All times are GMT -4. The time now is 18:49.