GfsBoundary
From Gerris
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
- Vortex street around a "heated" cylinder
- Parallel simulation on four processors
- Collapse of a column of grains
- Viscous folding of a fluid interface
- Turbulent air flow around RV Tangaroa
- Atomisation of a pulsed liquid jet
- Air-water flow around a Series 60 cargo ship
- Lunar tides in Cook Strait, New Zealand
- Small amplitude solitary wave interacting with a parabolic hump
- Shock reflection by a circular cylinder
- Tsunami runup onto a complex three-dimensional beach
- The 2004 Indian Ocean tsunami
- Convergence of the Poisson solver
- Convergence with a refined circle
- Rotation of a straight interface
- Potential flow around a sphere
- Viscous flow past a sphere
- Mass conservation
- Mass conservation with solid boundary
- Boundary layer on a rotating disk
- Lid-driven cavity at Re=1000
- Lid-driven cavity at Re=1000 (explicit scheme)
- Lid-driven cavity with a non-uniform metric
- Lid-driven cavity on an anisotropic mesh
- Poiseuille flow
- Bagnold flow of a granular material
- Poiseuille flow with metric
- Wind-driven lake
- Convergence of a potential flow solution
- Flow through a divergent channel
- Potential flow around a thin plate
- Translation of an hexagon in a uniform flow
- Sessile drop
- Transcritical flow over a bump
- Transcritical flow with multiple layers
- Circular dam break on a sphere
- Circular dam break on a rotating sphere
- Creeping Couette flow between cylinders
- Flow between eccentric cylinders using bipolar coordinates
- Dielectric-dieletric planar balance
- Balance with solid boundaries
- Relaxation of a charge bump
- Charge relaxation in an axisymmetric insulated conducting column
- Charge relaxation in a planar cross-section
- Equilibrium of a droplet suspended in an electric field
- Gouy-Chapman Debye layer
- Simple example of groundwater flow following Darcy's law
- Groundwater flow with piecewise constant permeability
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
}