GfsSolid
From Gerris
GfsSolid is used to define solid boundaries. By default the boundary conditions are no-slip for velocity and zero normal gradient for tracers (use GfsSurfaceBc to change this).
The syntax in parameter files is:
[ GfsEvent ] [ GfsSurface ]
If GfsSurface is defined implicitly, by convention the fluid domain is the locus of points for which the implicit function takes positive values.
Note that in order to use a full C function (in contrast to a C expression) as surface definition, the function definition must be "protected" with straight brackets for example this:
Solid { double r = 0.0625; return x*x + y*y - r*r; }
will not work but this will:
Solid ({ double r = 0.0625; return x*x + y*y - r*r; })
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
- Boussinesq flow generated by a heated cylinder
- Starting vortex of a NACA 2414 aerofoil
- Viscous folding of a fluid interface
- Turbulent air flow around RV Tangaroa
- Air-water flow around a Series 60 cargo ship
- Wingtip vortices behind a rectangular NACA 2414 wing
- Lunar tides in Cook Strait, New Zealand
- Shock reflection by a circular cylinder
- Dirichlet boundary condition
- Convergence of the Poisson solver with solid boundaries
- Star-shaped solid boundary with refinement
- Star-shaped solid boundary
- Poisson solution in a dumbbell-shaped domain
- Comparison between the explicit and implicit diffusion schemes
- Potential flow around a sphere
- Viscous flow past a sphere
- Mass conservation with solid boundary
- Creeping Couette flow of Generalised Newtonian fluids
- Hydrostatic balance with solid boundaries and viscosity
- Hydrostatic balance with quadratic pressure profile
- Convergence of a potential flow solution
- Flow through a divergent channel
- Potential flow around a thin plate
- Geostrophic adjustment
- Geostrophic adjustment on a beta-plane
- Coastally-trapped waves
- Coastally-trapped waves with adaptive refinement
- Gravity waves in a realistic ocean basin
- Parabolic container with embedded solid
- Tsunami runup onto a plane beach
- Lake-at-rest balance in an inclined domain with cut cells
- Creeping Couette flow between eccentric cylinders
- Flow between eccentric cylinders on a stretched grid
- Balance with solid boundaries
- Simple example of groundwater flow following Darcy's law
- Groundwater flow with piecewise constant permeability
Solid (x*x + y*y - 0.0625*0.0625)
Solid (x*x + y*y - 0.0625*0.0625)
Solid (x*x + y*y - 0.0625*0.0625)
Solid (ellipse(0.,-0.15,1./16.,1./16.))
Solid AEROFOIL.gts { rz = -INCIDENCE }
Solid ({
return y - (floor_depth - cavity_depth);
})
Solid tangaroa.gts
Solid S60-scaled.gts { ty = 0.5 }
Solid AEROFOIL.gts { rz = -INCIDENCE }
Solid bath.gts
Solid (sphere(-0.5,0.,0.,0.5))
Solid ({
double theta = atan2 (y, x);
double radius = 0.30 + 0.15*cos (6.*theta);
return radius*radius - x*x - y*y;
})
Solid (ellipse (0, 0, 0.25, 0.25))
Solid ({
double dr = 0.1;
double theta = atan2 (y, x);
double radius = 0.79*(0.45 - dr + dr*cos (6.*theta));
return x*x + y*y - radius*radius;
})
Solid ({
double dr = 0.1;
double theta = atan2 (y, x);
double radius = 0.79*(0.45 - dr + dr*cos (6.*theta));
return x*x + y*y - radius*radius;
})
Solid dumbell.gts
Solid (-sphere(0,0,0,0.4))
Solid (ellipse (0., 0., A0, A0))
Solid (ellipse (0., 0., A0, A0))
Solid (ellipse (0., 0., 0.05, 0.05))
Solid (ellipse (0,0,0.25,0.25)) { flip = 1 scale = 1.9999 }
Solid (ellipse (0,0,0.25,0.25))
Solid (ellipse(0.,0.,0.24,0.24))
Solid (ellipse(0.,0.,0.24,0.24))
Solid (ellipse (0.25, 0.25, 0.1, 0.1))
Solid (ellipse (-0.25, 0.125, 0.15, 0.1))
Solid (ellipse (0., -0.25, 0.2, 0.1))
Solid (0.125 - channel (x) - y) { scale = 4 tx = 1.5 }
Solid (y + 0.125 - channel (x)) { scale = 4 tx = 1.5 }
Solid (cube(0,0,0,0.5)) { sy = 0.06251 tx = 0.031249 ty = -0.015 }
Solid (z + H0)
Solid (z + 1.)
Solid (union (- ellipse (0, 0, 0.49975, 0.49975), z + 1.))
Solid (union (- ellipse (0, 0, 0.49975, 0.49975), z + 1.))
Solid bath.gts
Solid ({
double line1 = SLOPE*x - y + 28000./pow(2.,LEVEL);
double line2 = - SLOPE*x + y + 28000./pow(2.,LEVEL);
return union (line1, line2);
})
Solid (y - 60000.*(0.5 - 0.99/pow(2,LEVEL)))
Solid (sphere(5.,0.,0.,2.0))
Solid (- ellipse (0.,ECC,R2,R2))
Solid (ellipse (0.,0.,R1,R1))
Solid (- ellipse (0.,ECC,R2,R2))
Solid (ellipse (0.,0.,R1,R1))
Solid (-y + 0.3)
Solid ( y + 0.2)
Solid (-difference(ellipse(0,0,0.7,0.7), ellipse(0,0,0.3,0.3)))
Solid (-difference(ellipse(0,0,0.7,0.7), ellipse(0,0,0.3,0.3)))