GfsBoundary

From Gerris

Revision as of 10:50, 9 October 2010; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

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
        }
    

Personal tools
communication