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

Convective outlet boundary condition for Unsteady flows

Register Blogs Community New Posts Updated Threads Search

Like Tree14Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 22, 2009, 23:43
Default
  #81
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Perpendicular? of coarse not, it's O-mesh.
Thank you, Takuya, btw, do you know FIRMFLOW corporation, they seem to come to shanghai next week.
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   September 22, 2009, 23:51
Default
  #82
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Btw, what's the difference between advective BC and convective BC?
I know they use different formula, but which one make sense better? Which one is able to let vortices past BC smoothly? Any references?
I always feel there are some kind of "secret operations" in these theories.
I can use advective BC now, and I will check it, but why advective BC is not listed in the UsersGuide? Is it bcoz the developers do not favor it?
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   September 23, 2009, 01:03
Default
  #83
Super Moderator
 
Takuya OSHIMA
Join Date: Mar 2009
Location: Niigata City, Japan
Posts: 518
Blog Entries: 1
Rep Power: 20
7islands is on a distinguished road
Quote:
Originally Posted by lakeat View Post
Perpendicular? of coarse not, it's O-mesh.
Haha. At least that will cause the problem. My somewhat rude guess is that there may not be that much difference in this point regarding the advective BC. But I would appreciate your results as I have never tested by myself.

Quote:
Originally Posted by lakeat View Post
Btw, what's the difference between advective BC and convective BC?
I know they use different formula, but which one make sense better? Which one is able to let vortices past BC smoothly? Any references?
As far as I can see by reading the source code of the advective BC, aside from differences in discretizations, the main difference is that advective uses local flux values as advection speed whereas convectiveOutlet uses prescribed constant velocity (which is crucial for my own non-CFD application). I have some literature that states prescribed constant velocity works slightly better at least in relatively low-Re flows, but too bad they are all in Japanese

p.s. I don't have contact with but know Firmflow - they offer OpenFOAM training here in Japan.

Takuya
7islands is offline   Reply With Quote

Old   September 23, 2009, 01:42
Default
  #84
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Quote:
My somewhat rude guess is that there may not be that much difference in this point regarding the advective BC. But I would appreciate your results as I have never tested by myself.
Sure, I will test it.
Quote:
the main difference is that advective uses local flux values as advection speed whereas convectiveOutlet uses prescribed constant velocity
Who is the inventor of these BCs, it seems they are favored among some Germany circles.
Quote:
they offer OpenFOAM training here in Japan
Don't know the trade relations between Firmflow and OpenCFD.
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   March 31, 2010, 13:43
Default
  #85
Senior Member
 
Jiang
Join Date: Oct 2009
Location: Japan
Posts: 186
Rep Power: 17
panda60 is on a distinguished road
Dear Takuya OSHIMA,
convectiveOutlet200906 can't be uesd in OpenFOAM-1.6, do you have new version ?
Thank you.

panda60 is offline   Reply With Quote

Old   March 31, 2010, 21:38
Default
  #86
Super Moderator
 
Takuya OSHIMA
Join Date: Mar 2009
Location: Niigata City, Japan
Posts: 518
Blog Entries: 1
Rep Power: 20
7islands is on a distinguished road
Hi Jiang,
The 200906 version is not mine but askjak's. You can ask askjak, perhaps with more details about your problem.

Takuya
7islands is offline   Reply With Quote

Old   April 1, 2010, 02:32
Default
  #87
Senior Member
 
Jiang
Join Date: Oct 2009
Location: Japan
Posts: 186
Rep Power: 17
panda60 is on a distinguished road
Dear Takuya ,

Thank you!
panda60 is offline   Reply With Quote

Old   April 1, 2010, 02:34
Default
  #88
Senior Member
 
Jiang
Join Date: Oct 2009
Location: Japan
Posts: 186
Rep Power: 17
panda60 is on a distinguished road
Quote:
Originally Posted by askjak View Post
I figured out how to solve the above problem.

I have made a convective outlet BC based on the generalized advective bc included in OF 1.5. I have not done thorough testing and have assumed that the generalized advective BC has been implemented correctly. I have only tested with the LES solver oodles.

Attached is the code for the boundary condition and a simple example.

Attachment 458

Attachment 459

Let me know if there is any problems.

/Ask

Dear Askjak,
convectiveOutlet20090612.tar.gz is an old version, which seems only can be use in OpenFOAM-1.5, do you have new vertion whick can be used in OpenFOAM-1.6 ?
Thank you.
panda60 is offline   Reply With Quote

Old   May 29, 2010, 12:02
Default advective boundary condition with interFoam
  #89
Senior Member
 
Suresh kumar Kannan
Join Date: Mar 2009
Location: Luxembourg, Luxembourg, Luxembourg
Posts: 129
Rep Power: 17
kumar is on a distinguished road
Hello Lakeat,
I felt that you are the appropriate person for my doubts.
I am working on atomization of a circular jet. I have managed to generate the mesh. I want to know if i can use the advective outlet boundary condition with interFoam solvers. I am using LES model and the one eq eddy model.

If i can use the advective boundary condition with interFoam solvers then could you please give me some idea on what should i specify in the p,u and k files of the 0 timestep for the advectiveoutlet patch.

thanks
bye
with regrds
K.Suresh kumar
kumar is offline   Reply With Quote

Old   July 14, 2010, 13:58
Default
  #90
Member
 
Pascal
Join Date: Jun 2009
Location: Montreal
Posts: 65
Rep Power: 17
Pascal_doran is on a distinguished road
Hi all,

First I would like to thank M. Takuya OSHIMA for his convectiveOutlet boundary condition! I read the code and I learned a lot (I'm starting to learn C++ and to study the source code in OF).
I would like to know if somebody was able to compile and run it with OpenFOAM 1.6.x. I had the following error when compiling it with the wmake libso command

Error message :
Code:
ag74290@mec036470:~/OpenFOAM/ag74290-1.6.x/src/finiteVolume/fields/fvPatchFields/derived/convectiveOutlet$ wmake libso
SOURCE=convectiveOutletFvPatchFields.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-40 -I/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude -IlnInclude -I. -I/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/OpenFOAM/lnInclude -I/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linux64GccDPOpt/convectiveOutletFvPatchFields.o
convectiveOutletFvPatchField.C: In constructor ‘Foam::convectiveOutletFvPatchField<Type>::convectiveOutletFvPatchField(const Foam::fvPatch&, const Foam::Field<Type>&) [with Type = double]’:
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fvPatchField.H:117:   instantiated from ‘static Foam::tmp<Foam::fvPatchField<Type> > Foam::fvPatchField<Type>::addpatchConstructorToTable<fvPatchFieldType>::New(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&) [with fvPatchFieldType = Foam::convectiveOutletFvPatchField<double>, Type = double]’
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fvPatchField.H:127:   instantiated from ‘Foam::fvPatchField<Type>::addpatchConstructorToTable<fvPatchFieldType>::addpatchConstructorToTable(const Foam::word&) [with fvPatchFieldType = Foam::convectiveOutletFvPatchField<double>, Type = double]’
convectiveOutletFvPatchFields.C:41:   instantiated from here
convectiveOutletFvPatchField.C:64: error: no matching function for call to ‘Foam::fixedGradientFvPatchField<double>::fixedGradientFvPatchField(const Foam::fvPatch&, const Foam::Field<double>&)’
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:94: note: candidates are: Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fixedGradientFvPatchField<Type>&, const Foam::DimensionedField<Type, Foam::volMesh>&) [with Type = double]
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:82: note:                 Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fixedGradientFvPatchField<Type>&) [with Type = double]
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:56: note:                 Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fixedGradientFvPatchField<Type>&, const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&, const Foam::fvPatchFieldMapper&) [with Type = double]
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:69: note:                 Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&, const Foam::dictionary&) [with Type = double]
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:42: note:                 Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&) [with Type = double]
convectiveOutletFvPatchField.C: In constructor ‘Foam::convectiveOutletFvPatchField<Type>::convectiveOutletFvPatchField(const Foam::convectiveOutletFvPatchField<Type>&, const Foam::fvPatch&, const Foam::Field<Type>&, const Foam::fvPatchFieldMapper&) [with Type = double]’:
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fvPatchField.H:129:   instantiated from ‘static Foam::tmp<Foam::fvPatchField<Type> > Foam::fvPatchField<Type>::addpatchMapperConstructorToTable<fvPatchFieldType>::New(const Foam::fvPatchField<Type>&, const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&, const Foam::fvPatchFieldMapper&) [with fvPatchFieldType = Foam::convectiveOutletFvPatchField<double>, Type = double]’
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fvPatchField.H:141:   instantiated from ‘Foam::fvPatchField<Type>::addpatchMapperConstructorToTable<fvPatchFieldType>::addpatchMapperConstructorToTable(const Foam::word&) [with fvPatchFieldType = Foam::convectiveOutletFvPatchField<double>, Type = double]’
convectiveOutletFvPatchFields.C:41:   instantiated from here
convectiveOutletFvPatchField.C:89: error: no matching function for call to ‘Foam::fixedGradientFvPatchField<double>::fixedGradientFvPatchField(const Foam::convectiveOutletFvPatchField<double>&, const Foam::fvPatch&, const Foam::Field<double>&, const Foam::fvPatchFieldMapper&)’
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:94: note: candidates are: Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fixedGradientFvPatchField<Type>&, const Foam::DimensionedField<Type, Foam::volMesh>&) [with Type = double]
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:82: note:                 Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fixedGradientFvPatchField<Type>&) [with Type = double]
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:56: note:                 Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fixedGradientFvPatchField<Type>&, const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&, const Foam::fvPatchFieldMapper&) [with Type = double]
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:69: note:                 Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&, const Foam::dictionary&) [with Type = double]
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fixedGradientFvPatchField.C:42: note:                 Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&) [with Type = double]
convectiveOutletFvPatchField.C: In constructor ‘Foam::convectiveOutletFvPatchField<Type>::convectiveOutletFvPatchField(const Foam::fvPatch&, const Foam::Field<Type>&, const Foam::dictionary&) [with Type = double]’:
/home/ag74290/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fvPatchField.H:143:   instantiated from ‘static Foam::tmp<Foam::fvPatchField<Type> 
...
I don't understand the error message. If somebody know what I did wrong or what I need to change in order to compile/run it on newest version (1.6.x) please let me know. Thank you for your help.

Regards,

Pascal
Pascal_doran is offline   Reply With Quote

Old   July 16, 2010, 07:30
Default
  #91
Super Moderator
 
Takuya OSHIMA
Join Date: Mar 2009
Location: Niigata City, Japan
Posts: 518
Blog Entries: 1
Rep Power: 20
7islands is on a distinguished road
Hi Pascal,
I can point you to where you can download a version that compiles with 1.6.x (or even 1.7), but as you state that you are learning C++, I'd leave the fix to you as it'll be a good exercise

Nevertheless if you are looking for a prompt solution, search OFWiki for convectiveOutlet.

Takuya
7islands is offline   Reply With Quote

Old   August 23, 2010, 12:15
Default
  #92
EHo
New Member
 
Join Date: Jul 2010
Posts: 6
Rep Power: 16
EHo is on a distinguished road
Hi all,

could anyone please post a link to the newest convectiveOutlet that compiles with 1.7? I've tried to work it out by using waveTransmissive and the old version of convectiveOutlet. Unfortunately it seems that I will fail with it.

Thanks a lot in advance
E.Ho.



I've got it - wmake libso instead of wmake was the simple clue.

E.Ho.

Last edited by EHo; August 25, 2010 at 05:04.
EHo is offline   Reply With Quote

Old   September 13, 2010, 16:02
Default
  #93
Senior Member
 
John Deas
Join Date: Mar 2009
Posts: 160
Rep Power: 17
johndeas is on a distinguished road
Hi. I tried to understand the inner workings of the advective boundary condition, derived from the mixed boundary condition. I am stuck with a problem of dimensions which I would like to submit to you. Considering that this boundary condition has been part of OpenFOAM since version 1.5, my bet is on a misunderstanding from me I hope you could help clarify.

I typed it into a pdf for the ease of equations formatting.
Attached Files
File Type: pdf main.pdf (76.9 KB, 185 views)
johndeas is offline   Reply With Quote

Old   September 13, 2010, 16:24
Default
  #94
Member
 
Pascal
Join Date: Jun 2009
Location: Montreal
Posts: 65
Rep Power: 17
Pascal_doran is on a distinguished road
Hi Johndeas,

If you look at :
Code:
template<class Type>
tmp<Field<Type> > mixedFvPatchField<Type>::valueBoundaryCoeffs
(
    const tmp<scalarField>&
) const
{
    return
         valueFraction_*refValue_
       + (1.0 - valueFraction_)*refGrad_/this->patch().deltaCoeffs();
}
notice the part where it is written :
Code:
/this->patch().deltaCoeffs()
My understanding is you divide by this->patch().deltaCoeffs() which is 1/(0.5*dx)
dx = distance cell center to cell center, but since it is the boundary condition you want to know the value of U (or p) at the face of the cell.

Hope this help,

Pascal
Pascal_doran is offline   Reply With Quote

Old   September 30, 2010, 05:24
Default
  #95
Senior Member
 
Join Date: Sep 2010
Posts: 226
Rep Power: 17
T.D. is on a distinguished road
hi guys
how are you?
you are the Masters, i am just a new openfoam user and i have seen your posts and
i thought you might be able to help me, if you please of course

My problem is that i need to set a BC on a patch of a field "c" , but that BC is a function of another field "J" calculated before going to solve the Eqn of "c".

Example inside the solver:
.
.
J=pow(c,-2)+2*c+...etc.......
.
.
solve
( ddt(c) + div(phi,c) == div(A*div(J)) )
.
.
so now if i go to apply a BC on a patch of the field "c", but this BC is [J=0].
how to do that? Any idea?
if with groovyBC, how?

help please

thanks alot
T.D. is offline   Reply With Quote

Old   November 7, 2011, 22:39
Default
  #96
Member
 
Join Date: Nov 2009
Posts: 65
Rep Power: 17
waku2005 is on a distinguished road
Dear all

Does anyone use convectiveOutlet BC in OF1.6-ext?
I've downloaded and build the askjak's convectiveOutlet20090612.tar.gz posted at June 12, 2009, 22:17(>./wmake libso),
but I failed to run the pitzDaily_convectiveOutlet tutorial using pisofoam.

Error massages are as below and some advises are welcomed.
Why
"inletOutlet" was seen here .....

[snip]
Reading field p

--> FOAM FATAL IO ERROR:
keyword inletOutlet is undefined in dictionary "/home/waku/OpenFOAM/waku-1.6-ext/pitzDaily_convectiveOutlet/0/p::boundaryField:utlet"

file: /home/waku/OpenFOAM/waku-1.6-ext/pitzDaily_convectiveOutlet/0/p::boundaryField:utlet from line 30 to line 33.

From function dictionary::lookupEntry(const word&, bool, bool) const
in file db/dictionary/dictionary.C at line 396.

FOAM exiting

Thanks in advance,
waku2005
waku2005 is offline   Reply With Quote

Old   February 12, 2012, 09:01
Default convectiveOutlet
  #97
New Member
 
Thomas Lloyd
Join Date: May 2011
Posts: 7
Rep Power: 15
Thomas_Lloyd is on a distinguished road
Hello,

I have the same problem as waku2005, does anybody know why this occurs?

I have tried to decompose the convectiveOutlet BC but it still requires inletOutlet and correctSupercritical to be specified. This is despite the fact that these keywords are from the advective BC and I cannot see them in the code for convectiveOutlet.

In addition, when decomposing, the convectiveVelocity is not written to each processor. I get:''convectiveVelocity nonuniform 0 ();'' when I would expect ''convectiveVelocity uniform 10;''

Thanks in advance,

Thomas
Thomas_Lloyd is offline   Reply With Quote

Old   February 14, 2012, 08:01
Default
  #98
New Member
 
Thomas Lloyd
Join Date: May 2011
Posts: 7
Rep Power: 15
Thomas_Lloyd is on a distinguished road
Following my earlier post:

I seems the convectiveOutlet boundary condition (askjak's convectiveOutlet20090612.tar.gz) does decompose fine in OF-2.1.0. but not in OF-1.6-ext. Has anyone compiled and used it on OF-1.5.-dev?
The keywords 'inletOutlet' and 'correctSupercritical' are from the advective boundary condition and should not be used at all in convectiveOutlet (I think ;p).

waku2005: recommend switching versions of OF for now until can work out why the error is occuring with 1.6-ext.

Thomas
Thomas_Lloyd is offline   Reply With Quote

Old   June 21, 2012, 11:35
Default
  #99
Senior Member
 
Jian Zhong
Join Date: Feb 2012
Location: Birmingham
Posts: 109
Rep Power: 14
zxj160 is on a distinguished road
Quote:
Originally Posted by 7islands View Post
Hi pUl|,
OK this time I tried implementation of a ddtScheme which is supposed to be an equivalent discretization to Crank Nicholson.

boundaryField
{
outlet
{
type convectiveOutlet;
// convectiveVelocity: the boundary-normal component of convective velocity
convectiveVelocity uniform 343.704;
ddtScheme CrankNicholson;
}
}

To be honest, however, it's quite difficult to assure it to work in CFD (although it is giving the best results in linear acoustics - thanks to your suggestion) because in my CFD test I experienced some odd oscillations. Anyway I'd be grateful if you have patience to test the code.

convectiveOutlet-20070209.tar.gz

Takuya
Hi,

I try to wmake your convectiveOutlet. But there is one error:

convectiveOutletFvPatchField.C:195:22: error: no matching function for call to â Foam::fixedGradientFvPatchField<Foam::Vector<doubl e> >::fixedGradientFvPatchFiel d(const Foam::convectiveOutletFvPatchField<Foam::Vector<do uble> >&, const Foam:: Field<Foam::Vector<double> >&)â

The line 195 in the file is "pb00_(coptf.pb00_)". Do you know how to solve the problem?
zxj160 is offline   Reply With Quote

Old   August 16, 2012, 21:32
Default
  #100
Senior Member
 
Awais Ali
Join Date: Feb 2010
Location: Germany
Posts: 128
Rep Power: 17
owayz is on a distinguished road
Send a message via MSN to owayz
Hi
Has anyone used advective BC as a non reflecting BC in an external flow simulation. My simulation is over a cylinder with one inlet, outlet, and a cylinder wall. I am doing a compressible simulation and I am desperately looking for some boundary condition that would help me run an LES simulation for my problem.
My questions is that, would advective BC suite my purpose?
Regards,
Awais
owayz 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
convective boundary condition Mani CFX 8 March 21, 2017 10:59
Convective boundary condition andrea_barbera OpenFOAM Running, Solving & CFD 4 March 4, 2010 05:36
Convective Boundary Condition garni FLUENT 0 September 25, 2005 14:00
Convective boundary condition STN Main CFD Forum 5 May 29, 2002 09:47
convective boundary condition frederic felten Main CFD Forum 1 April 25, 2001 02:20


All times are GMT -4. The time now is 21:25.