45# define rho(f) (clamp(f,0,1)*(rho1 - rho2) + rho2)
48# define mu(f) (clamp(f,0,1)*(mu1 - mu2) + mu2)
56 double ff = (
f[] +
f[-1])/2.;
89 q2.x.gradient =
q1.x.gradient;
121 for (
int _s = 0;
_s < 1;
_s++) {
scalar * tracers
Here we set the gradient functions for each tracer (as defined in the user-provided tracers list).
vector q[]
The primitive variables are the momentum , pressure , density , (face) specific volume ,...
scalar * list_concat(scalar *l1, scalar *l2)
static scalar * interfaces1
We overload the vof() event to transport consistently the volume fraction and the momentum of each ph...
#define rho(f)
The density and viscosity are defined using arithmetic averages by default.
void event_vof(void)
Event: vof (i++)
scalar * interfaces
The height functions are stored in the vector field associated with each VOF tracer.
void event_defaults(void)
Event: defaults (i = 0)
void event_properties(void)
Event: properties (i++)
void event_tracer_advection(void)
We set the list of interfaces back to its default value.
vector alphav[]
Auxilliary fields are necessary to define the (variable) specific volume and average viscosity (on ...
void set_prolongation(scalar s, void(*prolongation)(Point, scalar))
double theta
This is the generalised minmod limiter.
double minmod2(double s0, double s1, double s2)
void vof_advection(scalar *interfaces, int i)