GfsAdaptFunction
From Gerris
GfsAdaptFunction uses a "cell cost" defined by a GfsFunction.
The syntax in parameter files is:
[ GfsAdapt ] [ GfsFunction ]
For example, the following will result in a fine mesh being used only along the interface defined by variable T:
VariableTracerVOF T
...
AdaptFunction { istep = 1 } { cmax = 0 minlevel = 5 maxlevel = 8 } (T > 0 && T < 1)
Examples
- Collapse of a column of grains
 - Viscous folding of a fluid interface
 - Savart--Plateau--Rayleigh instability of a water column
 - Atomisation of a pulsed liquid jet
 - Air-water flow around a Series 60 cargo ship
 - Time-reversed advection with curvature-based refinement
 - Viscous flow past a sphere
 - Shape oscillation of an inviscid droplet
 - Scalings for Plateau--Rayleigh pinchoff
 - Sessile drop
 
    AdaptFunction { istep = 1 } {
	cmax = 0
	maxlevel = LEVEL
    } T
    AdaptFunction { istep = 1 } {
	cmax = 0
	minlevel = min_level
	maxlevel = max_level 
    } (T > 0 && T < 1)
    AdaptFunction { istart = 5 istep = 10 } {
	cmax = 0.2
	maxlevel = 10
	cfactor = 2
    } (T > 0 && T < 1 ? dL*Kmax : 0)
    AdaptFunction { istep = 1 } {
	minlevel = 0
	maxlevel = level 
    } (T > 0 && T < 1)
    AdaptFunction { istep = 1 } {
        cmax = 1e-2
        # Faster coarsening than with the default cfactor of 4 reduces
        # the size of the simulation
#        cfactor = 2
        # Coarse 'sponge' for x >= 1.5
        maxlevel = (x < 1.5 ? LEVEL : 4)
        minlevel = 4
    } {
        return (T > 0.)*fabs (Vorticity)*ftt_cell_size (cell)/FROUDE;
    }
    AdaptFunction { istep = 1 } {
    	cmax = 0.1 maxlevel = 8
    	cfactor = 2. 
    } (T > 0. && T < 1.)*dL*fabs(K)
    AdaptFunction { istep = 1 } { cmax = 1e-2 maxlevel = LEVEL } {
	return (fabs(dx("U"))+fabs(dy("U")))/fabs(U)*ftt_cell_size (cell);
    }
    AdaptFunction { istep = 1 } {
        cmax = 0.01
        maxlevel = LEVEL
    } (T > 0 && T < 1 ? 1. : fabs (Vorticity)*dL)
   AdaptFunction { istep = 1 } { 
       # adapt down to 14 levels to capture breakup asymptotics and
       # only 10 levels after breakup
       maxlevel = (t < 0.7455 ? 14 : 10)
       cmax = 0.2 
   } (T > 0 && T < 1)*Kmax*dL
    AdaptFunction { istep = 1 } { cmax = 0 maxlevel = LEVEL } (T > 0 && T < 1)
