sandbox/lopez/src/ehd_2phase.h
EHD of two-phase systems
This files serves to setup more easily EHD problems with interfaces.
The interface is tracked with a Volume-Of-Fluid method we assume that the fluid 1 is of permittivity epsilon1 and conductivity cond1 and the fluid 2 is a fluid of permittivity epsilon2 and conductivity cond2.
#include "two-phase.h"
#include "implicit.h"
#include "stress.h"
#ifdef FRACFACE
#include "fracface.h"
#endif
double epsilon1 = 1, epsilon2 = 1, cond1 = 0, cond2 = 0.;
#ifndef perm
# define perm(f) (clamp(f,0.,1.)*(epsilon1 - epsilon2) + epsilon2)
#endif
#ifndef cond
# define cond(f) (clamp(f,0.,1.)*(cond1 - cond2) + cond2)
#endif
face vector epsilonv[];
scalar * tracers = {rhoe};
event defaults (i=0) {
epsilon = epsilonv;
if (cond1 || cond2)
K = new face vector;
f.tracers = f.tracers ? list_concat (f.tracers, tracers) : tracers;
}
event properties (i++) {
#ifdef FRACFACE
face vector cf[];
face_fraction (f, cf);
foreach_face(){
double ff = (f[] + f[-1])/2.;
epsilon.x[] = perm(ff)*fm.x[];
if (cond1 || cond2)
K.x[] = cond(cf.x[])*fm.x[];
}
#else
foreach_face(){
double ff = (f[] + f[-1])/2.;
epsilon.x[] = perm(ff)*fm.x[];
if (cond1 || cond2)
K.x[] = cond(ff)*fm.x[];
}
#endif
}