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

transmissive BC / numerical beach

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By colinB

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 16, 2010, 04:59
Default transmissive BC / numerical beach
  #1
Senior Member
 
Join Date: Aug 2010
Location: Groningen, The Netherlands
Posts: 216
Rep Power: 19
colinB is on a distinguished road
Hi guys,

I have a problem with my BC.
I want to have a simple two phase simulation of water flowing around a ship.
Therfore I use interFoam with the k-Omega-SST turbulence model. As BC I use a seperate water-inlet beside an airinlet, for the water domain I have defined BC called freestream and for the air domain I have defined an atmosphere. Actually freestream and atmosphere should be transmissve, but for some reason (I think) I get waves reflecting from the 'outlet' or somthing is wrong with the inlet.
The BC are as follows:

U
freestream: inletOutlet
uniform ( X Y Z)
uniform ( X Y Z)
waterInlet fixedValue
uniform ( X Y Z)

p_rgh
freestream: zeroGradient

waterInlet: zeroGradient

However I discussed that problem with some people and finally got the hint to use a numerical beach instead of transmissive BC and related to that I found some slides from Eric Paterson with an added damping term for the solver but I don't know how to include this into my problem and how to tell the solver that it just shall add this term for x< a certain value.
The slides I read you find here:
http://powerlab.fsb.hr/ped/kturbo/op...nNuTTS2009.pdf
jump to slide 17

I hope somebody can help me
If more information is required let me know I will provide it.

best regards
Colin
ahparvin likes this.

Last edited by colinB; November 24, 2010 at 06:32.
colinB is offline   Reply With Quote

Old   November 24, 2010, 06:05
Default
  #2
Senior Member
 
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18
Arnoldinho is on a distinguished road
Hey Colin,

I think we are working on a similar task - and might have the same problem! I'm not simulating flow around a ship, but around an offshore structure, using interFoam and (later) k-omega-sst as well.
For the inlet, I'm using groovyBC to define U and alpha1, which works quite well for waves and currents. The problem with the outlet BC still remains, as zeroGradient for U and alpha do not work because of reflections. See also my post http://www.cfd-online.com/Forums/ope...am-solver.html. Unfortunately, no answer until now...
What kind of outlet conditions have you yet tried?

For waves, an extended grid (in x-direction) to the outlet works for some time/waves. For long-term simulations it's also not working in my case, as some reflections still occur and result in simulation crashes.

I also had a closer look at Eric Patersons slides on his groovyWaveTank. Some paper on 'absorbing beaches' might explain the idea behind the numerical beach, see e.g.
- A. Clément: Coupling of Two Absorbing Boundary Conditions for 2D Time-Domain Simulations of Free Surface Gravity Waves
- Stéphan T. Grilli and Juan Horrillo: Numerical generation and absorption of fully nonlinear periodic waves
which look quite similar to what has been done for the groovyWaveTank.

I'd say it might be a good idea working together on this topic?

Temporarily I'm using the 'workaround' with the extended mesh until finding/implementing a better solution...

Arne
Arnoldinho is offline   Reply With Quote

Old   November 24, 2010, 06:30
Default
  #3
Senior Member
 
Join Date: Aug 2010
Location: Groningen, The Netherlands
Posts: 216
Rep Power: 19
colinB is on a distinguished road
Hi Arne,

well I tried several things to get rid of the reflections.

My first try were the 'special' outlet BC:

p_rgh for outlet:

type buoyantPressure
gradient uniform 0
rho rho
value uniform 0

U for outlet

type zeroGradient

alpha1 at the outlet:

type zeroGradient

Then later I changed to the freestream BC also for the outlet hoping that they are transmissive. They are not

So my current try is the same like yours. Make the domain that big that the reflections do not matter within the given time span.

Yesterday I read about waveTransmissive BC in the documentation. But they are just mentioned in an example code and not in the official listing of the original and derived patch types.
Thats anoying as well.

So this is where I'm now. Im'm still awaiting some answers from some people and I hope they can help me.
As soon as I have something I will let you know.
best regards
Colin

PS: thanks for the hint with the papers I will have a look at them.
colinB is offline   Reply With Quote

Old   November 24, 2010, 06:42
Default
  #4
Senior Member
 
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18
Arnoldinho is on a distinguished road
Ok. Btw: Do you have steady current or waves? In the first case, setting inlet and outlet to a fixed value e.g. using groovyBC works - at least if the reflections coming from your ship are not too large.

I also had a look at waveTransmissive, but this might not have been coded for multiphase flow...
Arnoldinho is offline   Reply With Quote

Old   November 24, 2010, 07:13
Default
  #5
Senior Member
 
Join Date: Aug 2010
Location: Groningen, The Netherlands
Posts: 216
Rep Power: 19
colinB is on a distinguished road
yes I have an unifrom velocity field in the whole domain so I suppose this is a steady current.
However I haven't used groovyBC. But defining the velocity uniform for the complete inlet patch works out fine so far (if this is not the reason for the reflections).
Waves are just generated from the ship hull and not at the inlet, for I try to get the calm water resistance of the vessel and the generated wave pattern.

Large in what terms you mean (long wave length or big amplitudes ?)
colinB is offline   Reply With Quote

Old   November 25, 2010, 04:47
Default
  #6
Senior Member
 
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18
Arnoldinho is on a distinguished road
Hey. By 'large' I mean not in terms of wavelength or height (did not calculate it), just small enough that they are not influencing your boundary conditions themselves, so that the simulation could crash.

Btw: Are you setting the initial velocity in the whole water domain using setFields for time 0?
2nd: For your mesh extension, what factor (in terms of increasing cell size/edge length) are you using?
3rd: A bit 'off-topic'. How do you look at your wave heights/time at certain probe locations (eg. for comparison with analytic solutions)? I have started using the sample tool and pyFoam, but can't get really familiar with it...
Arnoldinho is offline   Reply With Quote

Old   November 25, 2010, 05:28
Default
  #7
Senior Member
 
Join Date: Aug 2010
Location: Groningen, The Netherlands
Posts: 216
Rep Power: 19
colinB is on a distinguished road
Hi Arne,

1) yes I use setFields to get a certain velocity in the whole domain.
currently it is about 7.1 m/s in x-direction like at the inlet.

2) this part I don't get. Actually I don't know much about my mesh.
I'm working with a simple graded blockMesh which is fairly coarse
(1 cell is several cubic meter big the whole domain is 3510000 m³ big)
And finally I'm refining the mesh in the parts I'm interested in eg free
surface and close to the hull so my final mesh has about 1.9 M cells.
I hope the information you are looking for is mentioned above,
otherwise just ask again.

3) That is actually very easy. I don't use pyFoam but paraFoam to get the
x y z coordinates of the plane where alpha1 equals 0.5 and this data I
can export to excell and calculate the wave hight, with the other
information I have from my domain / ship.
This I especialy use for the wave elevation along the hull for example.


Edit: The simulation up to now never crashedeverything looks very stable
and nothing is exceeding.
colinB is offline   Reply With Quote

Old   November 25, 2010, 05:41
Default
  #8
Senior Member
 
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18
Arnoldinho is on a distinguished road
Thanks Colin.

2: I did not mean your overall mesh size, but was only interested in the area of the 'extended mesh' size near to the outlet, in order to numerically damp the waves. But now I see, you are using a constant (and sometimes refined) mesh size, also near the outlet, right? So forget about my question...
3: Ok, will have a try with ParaView again. But I think its not (at least easily) possible to write about wave heights in an xy plot only for certain probe locations over time. Or am I wrong?
Arnoldinho is offline   Reply With Quote

Old   November 25, 2010, 06:16
Default
  #9
Senior Member
 
Join Date: Aug 2010
Location: Groningen, The Netherlands
Posts: 216
Rep Power: 19
colinB is on a distinguished road
2) now I understand. Well since I'm not using the beach yet I don't have
such a part now. But as soon as I figure out how to use it I will let you
know.

3) Over time I'm not sure. I would guess it is possible. I describe a
procedure and hope that is what you want:
You create a wave pattern. (contur of alpha1 = 0.5 maybe elevation on
that filter as well)
You cut out a slice where you want to observe the wave hight.
You switch of the elevation filter and should have now a line with the
wave elevation.
Then you can either export this data for each time step and do
something with excell or you create an animation and see what
happens. Or you simply flip around between the time steps in paraview
to get a movie

Attached you find a pdf which clearify what I mean. Focus on the green
line. This is the wave hight with the x axis as still water level and the y
axis giving the wave hight in meters (actually the z values). This are the
exported data from
paraview and they als can be shown there also as a 'movie' (which I think
you mean with over time)
Attached Files
File Type: pdf wave_elevation.pdf (76.1 KB, 195 views)
colinB is offline   Reply With Quote

Old   July 30, 2011, 12:49
Default
  #10
Member
 
Ben Vernieres
Join Date: Jul 2011
Location: Valencia, Spain
Posts: 42
Rep Power: 15
bouclette is on a distinguished road
Send a message via Skype™ to bouclette
Hi Colin,

I was wondering if you have found a solution to get rid of those reflection waves coming from the hull?

I'm playing around with LTSInterFoam and still get those doggy little waves...

Thanks,

Ben
bouclette 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
Summer School on Numerical Modelling and OpenFOAM hjasak OpenFOAM 5 October 12, 2008 14:14
Numerical dissipation/difusion in LES Ray FLUENT 2 June 10, 2002 06:15
numerical scheme ado Main CFD Forum 3 October 12, 2000 09:20
Standard for checking and testing numerical schemes? X. Ye Main CFD Forum 7 August 31, 1999 18:05
New Books and Numerical Software Eleuterio TORO Main CFD Forum 0 December 18, 1998 13:41


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