sandbox/ecipriano/run/embedfalldrop.c
Drop impact on a curved surface.
I made this simulation for testing the vof+embed+reduced system.
#include "embed.h"
#include "navier-stokes/centered.h"
#include "two-phase.h"
#include "reduced.h"
#include "tension.h"
#include "view.h"
We initialize the vorticity field and the maximum and minimum levels of refinement.
int maxlevel = 8;
int minlevel = 5;
We define the radius of the solid obstable, and the total simulation time.
double R0 = 0.4e-2;
double tEnd = 1.e-1;
We set no-slip conditions on the solid obstacle (In theory more realistic boundary conditions than symmetry everywhere should be set for the other boundaries).
u.n[embed] = dirichlet (0.);
u.t[embed] = dirichlet (0.);
p[embed] = neumann (0.);
int main (void) {
We initialize the physical properties of the two-phase system and the gravity value.
rho1 = 800.; rho2 = 5.;
mu1 = 1.e-3; mu2 = 1.e-5;
f.sigma = 0.073;
G.y = -9.81;
L0 = 1.e-2;
origin (0., 0.);
init_grid (1 << maxlevel);
run();
}
event init (i = 0) {
We initialize the field cs which defines the region where the fluid dynamics is resolved: cs > 0.
solid (cs, fs, -(sq(R0) - sq(x) - sq(y)));
We initialize a liquid droplet at coordinates (x_c,y_c) = (0.2L_0, 0.7L_0) and radius R = 0.1L_0.
fraction (f, -(sq(x - 0.2*L0) + sq(y - 0.7*L0) - sq(0.1*L0)));
}
We refine the region around the interface of the droplet.
The following events are for post-processing purposes: compure the vorticity field, write a video with the evolution of the interface and the vorticity field, stop the simulation.
event movie (t += 0.001; t <= tEnd) {
scalar omega[];
vorticity (u, omega);
clear();
box();
view (tx = -0.5, ty = -0.5);
draw_vof ("cs", "fs", filled = -1, fc = {0.3,0.3,0.3});
draw_vof ("f", lw = 1.5);
squares ("omega", linear = false,
min = -1000., max = 1000.,
map = blue_white_red);
save ("movie.mp4");
}