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)