# GfsBoundary

(Difference between revisions)
 Revision as of 10:22, 9 October 2010Popinet (Talk | contribs) (Added description)← Previous diff Current revisionPopinet (Talk | contribs) Line 3: Line 3: The syntax in parameter files is: The syntax in parameter files is: - [[GfsBoundary|Boundary]] { + [[GfsBoundary]] { [ [[GfsBc]] ] [ [[GfsBc]] ] [ [[GfsBc]] ] [ [[GfsBc]] ]

## Current revision

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

The syntax in parameter files is:

```GfsBoundary {
[ 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

• B\'enard--von K\'arm\'an Vortex Street for flow around a cylinder at Re=160
• ```  left = Boundary {
BcDirichlet U 1
BcDirichlet T { return y < 0. ? 1. : 0.; }
}
```

• Vortex street around a "heated" cylinder
• ```  left = Boundary {
BcDirichlet U 1
}
```

• Parallel simulation on four processors
• ```  left = Boundary {
BcDirichlet U 1
BcDirichlet T { return y < 0. ? 1. : 0.; }
}
```

• Collapse of a column of grains
• ```    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
}
```

• Viscous folding of a fluid interface
• ```    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
}
```

• Turbulent air flow around RV Tangaroa
• ```    left = Boundary {
BcDirichlet U 1
}
```

```    right = Boundary {
BcNeumann U 0
BcDirichlet P 0
}
```

• Atomisation of a pulsed liquid jet
• ```    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
}
```

• Air-water flow around a Series 60 cargo ship
• ```    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
}
```

• Lunar tides in Cook Strait, New Zealand
• ```    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)
}
```

• Small amplitude solitary wave interacting with a parabolic hump
• ```    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 }
```

• Shock reflection by a circular cylinder
• ```    left = Boundary {
BcDirichlet P 3.505271526
BcDirichlet U 22.049341608
}
```

```    top = Boundary
```

• Tsunami runup onto a complex three-dimensional beach
• ```    left = Boundary { BcSubcritical U (input - Zb) }
```

• The 2004 Indian Ocean tsunami
• ```    top = Boundary {
BcSubcritical V -Zb
}
```

```    bottom = Boundary {
BcSubcritical V -Zb
}
```

```    right = Boundary {
BcSubcritical U -Zb
}
```

```    left = Boundary {
BcSubcritical U -Zb
}
```

• Convergence of the Poisson solver
• ```  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)) }
```

• Convergence with a refined circle
• ```   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)) }
```

• Rotation of a straight interface
• ```    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
}
```

• Potential flow around a sphere
• ```    left = Boundary { BcDirichlet U U0 }
```

```    right = Boundary { BcDirichlet U U0 }
```

• Viscous flow past a sphere
• ```    left = Boundary { BcDirichlet U U0 }
```

• Mass conservation
• ```    left = Boundary {
BcDirichlet U 1
BcDirichlet V 0
}
```

• Mass conservation with solid boundary
• ```    left = Boundary {
BcDirichlet U 1
BcDirichlet V 0
}
```

• Boundary layer on a rotating disk
• ```    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
}
```

• Lid-driven cavity at Re=1000
• ```  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
}
```

• Lid-driven cavity at Re=1000 (explicit scheme)
• ```  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
}
```

• Lid-driven cavity with a non-uniform metric
• ```  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
}
```

• Lid-driven cavity on an anisotropic mesh
• ```  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
}
```

• Poiseuille flow
• ```    bottom = Boundary {
BcDirichlet U 0
}
```

```    top = Boundary {
BcDirichlet U 0
}
```

• Bagnold flow of a granular material
• ```    top = Boundary {
BcNeumann V 0
BcDirichlet P 0
}
```

```    bottom = Boundary {
BcDirichlet U 0
}
```

• Poiseuille flow with metric
• ```    bottom = Boundary {
BcDirichlet U 0
}
```

```    top = Boundary {
BcDirichlet U 0
}
```

• Wind-driven lake
• ```    top = Boundary {
BcNeumann U 1.
}
```

```    bottom = Boundary {
BcDirichlet U 0
}
```

• Convergence of a potential flow solution
• ```    left = Boundary { BcDirichlet U 1 }
```

```    right = Boundary { BcDirichlet U 1 }
```

• Flow through a divergent channel
• ```GfsBox { left = Boundary { BcDirichlet U 1 } }
```

• Potential flow around a thin plate
• ```  left = Boundary { BcDirichlet U 1 }
```

• Translation of an hexagon in a uniform flow
• ```    left = Boundary {
BcDirichlet U 1
BcDirichlet T 1
}
```

• Sessile drop
• ```    bottom = Boundary {
BcAngle T ANGLE
}
```

```    left = Boundary # axis of symmetry
```

• Transcritical flow over a bump
• ```    right = Boundary {
BcDirichlet P 0.33
BcNeumann U 0
}
```

```    left = Boundary {
BcDirichlet U 0.18
}
```

• Transcritical flow with multiple layers
• ```    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
}
```

• Circular dam break on a sphere
• ```    right = Boundary { BcNeumann U 0 }
```

```    left = Boundary { BcNeumann U 0 }
```

```    top = Boundary { BcNeumann V 0 }
```

```    bottom = Boundary { BcNeumann V 0 }
```

• Circular dam break on a rotating sphere
• ```    right = Boundary { BcNeumann U 0 }
```

```    left = Boundary { BcNeumann U 0 }
```

```    top = Boundary { BcNeumann V 0 }
```

```    bottom = Boundary { BcNeumann V 0 }
```

• Creeping Couette flow between cylinders
• ```    left  = Boundary {
BcDirichlet V 0.25
BcDirichlet T 0.25
}
```

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

• Flow between eccentric cylinders using bipolar coordinates
• ```    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 }
```

• Dielectric-dieletric planar balance
• ```   top   = Boundary {
BcDirichlet Phi  1
BcDirichlet P 0
}
```

```   bottom = Boundary {
BcDirichlet Phi 0.
}
```

• Balance with solid boundaries
• ```    top   = Boundary {
BcDirichlet Phi  1
BcDirichlet P 0
}
```

```    bottom = Boundary {
BcDirichlet Phi 0.
}
```

• Relaxation of a charge bump
• ```    left   = Boundary { BcDirichlet Phi 0 }
```

```    right  = Boundary { BcDirichlet Phi 0 }
```

```    top    = Boundary { BcDirichlet Phi 0 }
```

```    bottom = Boundary { BcDirichlet Phi 0 }
```

• Charge relaxation in an axisymmetric insulated conducting column
• ```    top = Boundary { BcDirichlet Phi 0 }
```

• Charge relaxation in a planar cross-section
• ```    top = Boundary { BcDirichlet Phi 0 }
```

```    bottom = Boundary { BcDirichlet Phi 0 }
```

```    left = Boundary { BcDirichlet Phi 0 }
```

```    right = Boundary { BcDirichlet Phi 0 }
```

• Equilibrium of a droplet suspended in an electric field
• ```    right = Boundary {
BcDirichlet Phi Ef*x
}
```

```    left = Boundary {
BcDirichlet Phi Ef*x
}
```

```    top = Boundary {
BcDirichlet Phi Ef*x
}
```

• Gouy-Chapman Debye layer
• ```    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.
}
```

• Simple example of groundwater flow following Darcy's law
• ```    top = Boundary {
BcDirichlet P 0
BcDirichlet U 0
BcNeumann V 0
}
```

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

• Groundwater flow with piecewise constant permeability
• ```    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
}
```