# GfsBoundary

### From Gerris

Revision as of 06:17, 16 April 2009GeordieMcBain (Talk | contribs) (started page with bare list of <examples/>) ← Previous diff |
Revision as of 10:22, 9 October 2010Popinet (Talk | contribs) (Added description) Next diff → |
||

Line 1: |
Line 1: | ||

+ | [[GfsBoundary]] (and its descendants) is used to define boundary conditions on the boundaries of a [[GfsBox]]. | ||

+ | |||

+ | The syntax in parameter files is: | ||

+ | |||

+ | [[GfsBoundary|Boundary]] { | ||

+ | [ [[GfsBc]] ] | ||

+ | [ [[GfsBc]] ] | ||

+ | ... | ||

+ | } | ||

+ | |||

+ | where the parameter block is optional. If the boundary conditions for individual variables are not overridden in the parameter block, the default is to impose ''symmetry conditions'' i.e. zero normal derivative for scalar fields and for the tangential component of vector fields, and zero normal component of vector fields. For Navier-Stokes for example, this is equivalent to a free-slip, impermeable boundary. | ||

+ | |||

<examples/> | <examples/> |

## Revision as of 10:22, 9 October 2010

**GfsBoundary** (and its descendants) is used to define boundary conditions on the boundaries of a GfsBox.

The syntax in parameter files is:

Boundary{ [ GfsBc ] [ GfsBc ] ... }

where the parameter block is optional. If the boundary conditions for individual variables are not overridden in the parameter block, the default is to impose *symmetry conditions* i.e. zero normal derivative for scalar fields and for the tangential component of vector fields, and zero normal component of vector fields. For Navier-Stokes for example, this is equivalent to a free-slip, impermeable boundary.

### Examples

left = Boundary { BcDirichlet U 1 BcDirichlet T { return y < 0. ? 1. : 0.; } }

`
`

`
`

left = Boundary { BcDirichlet U 1 }

`
`

`
`

left = Boundary { BcDirichlet U 1 BcDirichlet T { return y < 0. ? 1. : 0.; } }

`
`

`
`

top = Boundary { # shift the reference pressure by the hydrostatic pressure of # the light phase, i.e. P = 0 at the bottom boundary in the # light phase. I am not sure whether this makes a real # difference. BcDirichlet P -RHOF*LDOMAIN BcNeumann V 0 }

`
`

`
`

bottom = Boundary { # no-slip at the bottom BcDirichlet U 0 }

`
`

`
`

right = Boundary { BcDirichlet V 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 0 }

`
`

`
`

left = Boundary { BcDirichlet U velocity_bc(y, t) }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 }

`
`

`
`

left = Boundary { BcDirichlet U 1 }

`
`

`
`

right = Boundary { BcNeumann U 0 BcDirichlet P 0 }

`
`

`
`

left = Boundary { # Pulsed jet on inflow BcDirichlet U T0*(1. + 0.05*sin (10.*2.*M_PI*t)) BcDirichlet T T0 BcDirichlet V 0 BcDirichlet W 0 }

`
`

`
`

left = Boundary { BcDirichlet P 0 BcDirichlet V 0 BcDirichlet W 0 BcNeumann U 0 BcNeumann T 0 }

`
`

`
`

right = Boundary { BcDirichlet P 0 BcDirichlet V 0 BcDirichlet W 0 BcNeumann U 0 BcNeumann T 0 }

`
`

`
`

left = Boundary { BcFlather U 0 H P M2(t) }

`
`

`
`

right = Boundary { BcFlather U 0 H P M2(t) }

`
`

`
`

top = Boundary { BcFlather V 0 H P M2(t) }

`
`

`
`

bottom = Boundary { BcFlather V 0 H P M2(t) }

`
`

`
`

left = Boundary { BcNeumann U 0 }

`
`

`
`

top = Boundary { BcNeumann V 0 }

`
`

`
`

bottom = Boundary { BcNeumann V 0 }

`
`

`
`

right = Boundary { BcNeumann U 0 }

`
`

`
`

top = Boundary { BcNeumann V 0 }

`
`

`
`

bottom = Boundary { BcNeumann V 0 }

`
`

`
`

left = Boundary { BcDirichlet P 3.505271526 BcDirichlet U 22.049341608 }

`
`

`
`

top = Boundary

`
`

`
`

left = Boundary { BcSubcritical U (input - Zb) }

`
`

`
`

top = Boundary { BcSubcritical V -Zb }

`
`

`
`

bottom = Boundary { BcSubcritical V -Zb }

`
`

`
`

right = Boundary { BcSubcritical U -Zb }

`
`

`
`

left = Boundary { BcSubcritical U -Zb }

`
`

`
`

left = Boundary { BcDirichlet P (sin (M_PI*3.*x)*sin (M_PI*3.*y)) }

`
`

`
`

right = Boundary { BcDirichlet P (sin (M_PI*3.*x)*sin (M_PI*3.*y)) }

`
`

`
`

top = Boundary { BcDirichlet P (sin (M_PI*3.*x)*sin (M_PI*3.*y)) }

`
`

`
`

bottom = Boundary { BcDirichlet P (sin (M_PI*3.*x)*sin (M_PI*3.*y)) }

`
`

`
`

left = Boundary { BcNeumann P (- 3.*M_PI*cos(M_PI*3.*x)*sin (M_PI*3.*y)) }

`
`

`
`

right = Boundary { BcNeumann P ( 3.*M_PI*cos(M_PI*3.*x)*sin (M_PI*3.*y)) }

`
`

`
`

top = Boundary { BcNeumann P ( 3.*M_PI*cos(M_PI*3.*y)*sin (M_PI*3.*x)) }

`
`

`
`

bottom = Boundary { BcNeumann P (- 3.*M_PI*cos(M_PI*3.*y)*sin (M_PI*3.*x)) }

`
`

`
`

left = Boundary { BcDirichlet U y BcAngle T (90. + atan2(1.,t)*180./M_PI) }

`
`

`
`

right = Boundary { BcDirichlet U y BcAngle T (90. - atan2(1.,t)*180./M_PI) }

`
`

`
`

top = Boundary { BcDirichlet U y BcAngle T (180. - atan2(1.,t)*180./M_PI) }

`
`

`
`

bottom = Boundary { BcDirichlet U y BcAngle T atan2(1.,t)*180./M_PI }

`
`

`
`

left = Boundary { BcDirichlet U U0 }

`
`

`
`

right = Boundary { BcDirichlet U U0 }

`
`

`
`

left = Boundary { BcDirichlet U U0 }

`
`

`
`

left = Boundary { BcDirichlet U 1 BcDirichlet V 0 }

`
`

`
`

left = Boundary { BcDirichlet U 1 BcDirichlet V 0 }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 BcDirichlet W y }

`
`

`
`

right = Boundary { BcNeumann U 0 BcNeumann V 0 BcNeumann W 0 BcDirichlet P 0. }

`
`

`
`

bottom = Boundary { BcDirichlet W 0 }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 BcDirichlet W y }

`
`

`
`

right = Boundary { BcNeumann U 0 BcNeumann V 0 BcNeumann W 0 BcDirichlet P 0. }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 BcDirichlet W y }

`
`

`
`

right = Boundary { BcNeumann U 0 BcNeumann V 0 BcNeumann W 0 BcDirichlet P 0. }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 BcDirichlet W y }

`
`

`
`

right = Boundary { BcNeumann U 0 BcNeumann V 0 BcNeumann W 0 BcDirichlet P 0. }

`
`

`
`

top = Boundary { BcNeumann U 0 BcNeumann V 0 BcNeumann W 0 }

`
`

`
`

top = Boundary { BcDirichlet U 1 BcDirichlet V 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

top = Boundary { BcDirichlet U 1 BcDirichlet V 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

top = Boundary { BcDirichlet U 1 BcDirichlet V 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

top = Boundary { BcDirichlet U 1 BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

left = Boundary { BcDirichlet U 0 BcDirichlet V 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 }

`
`

`
`

top = Boundary { BcDirichlet U 0 }

`
`

`
`

top = Boundary { BcNeumann V 0 BcDirichlet P 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 }

`
`

`
`

top = Boundary { BcDirichlet U 0 }

`
`

`
`

top = Boundary { BcNeumann U 1. }

`
`

`
`

bottom = Boundary { BcDirichlet U 0 }

`
`

`
`

left = Boundary { BcDirichlet U 1 }

`
`

`
`

right = Boundary { BcDirichlet U 1 }

`
`

`
`

GfsBox { left = Boundary { BcDirichlet U 1 } }

`
`

`
`

left = Boundary { BcDirichlet U 1 }

`
`

`
`

left = Boundary { BcDirichlet U 1 BcDirichlet T 1 }

`
`

`
`

bottom = Boundary { BcAngle T ANGLE }

`
`

`
`

left = Boundary # axis of symmetry

`
`

`
`

right = Boundary { BcDirichlet P 0.33 BcNeumann U 0 }

`
`

`
`

left = Boundary { BcDirichlet U 0.18 }

`
`

`
`

right = Boundary { # set water depth at outlet BcDirichlet P HE BcNeumann U 0 }

`
`

`
`

left = Boundary { # set flow rate at inlet, evenly distributed over all layers BcDirichlet U Q/NL }

`
`

`
`

right = Boundary { BcNeumann U 0 }

`
`

`
`

left = Boundary { BcNeumann U 0 }

`
`

`
`

top = Boundary { BcNeumann V 0 }

`
`

`
`

bottom = Boundary { BcNeumann V 0 }

`
`

`
`

right = Boundary { BcNeumann U 0 }

`
`

`
`

left = Boundary { BcNeumann U 0 }

`
`

`
`

top = Boundary { BcNeumann V 0 }

`
`

`
`

bottom = Boundary { BcNeumann V 0 }

`
`

`
`

left = Boundary { BcDirichlet V 0.25 BcDirichlet T 0.25 }

`
`

`
`

right = Boundary { BcDirichlet V 0. BcDirichlet T 0 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 1 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 1 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 1 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 1 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 1 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 1 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 1 }

`
`

`
`

left = Boundary { BcDirichlet V 0 }

`
`

`
`

right = Boundary { BcDirichlet V 1 }

`
`

`
`

top = Boundary { BcDirichlet Phi 1 BcDirichlet P 0 }

`
`

`
`

bottom = Boundary { BcDirichlet Phi 0. }

`
`

`
`

top = Boundary { BcDirichlet Phi 1 BcDirichlet P 0 }

`
`

`
`

bottom = Boundary { BcDirichlet Phi 0. }

`
`

`
`

left = Boundary { BcDirichlet Phi 0 }

`
`

`
`

right = Boundary { BcDirichlet Phi 0 }

`
`

`
`

top = Boundary { BcDirichlet Phi 0 }

`
`

`
`

bottom = Boundary { BcDirichlet Phi 0 }

`
`

`
`

top = Boundary { BcDirichlet Phi 0 }

`
`

`
`

top = Boundary { BcDirichlet Phi 0 }

`
`

`
`

bottom = Boundary { BcDirichlet Phi 0 }

`
`

`
`

left = Boundary { BcDirichlet Phi 0 }

`
`

`
`

right = Boundary { BcDirichlet Phi 0 }

`
`

`
`

right = Boundary { BcDirichlet Phi Ef*x }

`
`

`
`

left = Boundary { BcDirichlet Phi Ef*x }

`
`

`
`

top = Boundary { BcDirichlet Phi Ef*x }

`
`

`
`

top = Boundary

`
`

`
`

left = Boundary { BcDirichlet Phi Volt BcDirichlet Cpos exp(-Volt) BcDirichlet Cneg exp(Volt) }

`
`

`
`

top = Boundary

`
`

`
`

top = Boundary

`
`

`
`

top = Boundary

`
`

`
`

top = Boundary

`
`

`
`

right = Boundary { BcDirichlet Phi 0. BcDirichlet Cpos 1. BcDirichlet Cneg 1. }

`
`

`
`

top = Boundary { BcDirichlet P 0 BcDirichlet U 0 BcNeumann V 0 }

`
`

`
`

left = Boundary { BcDirichlet P -M_PI/2 BcNeumann U 0 BcDirichlet V 0 }

`
`

`
`

top = Boundary { BcDirichlet P 0 BcDirichlet U 0 BcNeumann V 0 }

`
`

`
`

left = Boundary { BcDirichlet P -2*M_PI/3 BcNeumann U 0 BcDirichlet V 0 }

`
`