sandbox/maes/General_tests/embed_stefanflow.c

    #include "embed.h"
    #include "navier-stokes/centered.h"
    #include "view.h"
    
    #define r0 6e-5
    double tmax=5e-5;
    double dtuser=1e-6;
    
    
    // u.n[right]  = dirichlet(0.0);
    // p[right]    = neumann(0.);
    // pf[right]   = neumann(0.);
    
    u.n[left]  = neumann(0.0);
    p[left]    = dirichlet(0.);
    pf[left]   = dirichlet(0.);
    
    u.n[right] = neumann(0.);
    p[right]   = dirichlet(0.);
    pf[right]  = dirichlet(0.);
    
    u.n[top] = neumann(0.);
    p[top]   = dirichlet(0.);
    pf[top]  = dirichlet(0.);
    
    
    u.n[bottom] = neumann(0.);
    p[bottom]   = dirichlet(0.);
    pf[bottom]  = dirichlet(0.);
    
    
    u.n[embed] = dirichlet( x > 0 ? 1e-6 : -1e-6 );
    u.t[embed] = dirichlet( y > 0 ? -1e-6 : 1e-6 );
    //u.n[embed] = dirichlet(x/r0*1e-6);
    
    
    face vector muv[];
    scalar rhog[];
    
    
    int main(void){
      L0 = 15.*r0; //m
      origin(-L0/2.,-L0/2.);
      DT=dtuser;
      mu = muv;
      rho = rhog;
      run();
    }
    
    event init(i=0){
      init_grid(64);
      solid(cs,fs,sq(x)+sq(y)-sq(r0)); 
      fractions_cleanup(cs,fs,1e-4);
    }
    
    event properties(i++){
      foreach(){
        rhog[] = (cs[] > 0 ? 1. : nodata);
      }
      foreach_face(){
        muv.x[]=0.2*fm.x[];
      }
    }
    
    
    event view(t=0; t<tmax; t+=2*dt){
      clear();
      scalar U[];
      foreach(){
        U[] = sqrt(sq(u.x[])+sq(u.y[]));
      }
      view (fov = 25, tx = -0.2, width = 1100, height = 800);
      squares ("U", spread = -1,
         cbar = true, border = true, pos = {0.5,  0.0},
         label = "U", mid = true, format = "%9.5f", levels = 10);
      squares("U", linear=false, map=jet);
      draw_vof ("cs",filled=0, fc = {0.,0.8,0.8}, lw = 2);
      box();
      vectors("u",scale = 0.1);
      save ("u.mp4");
    
    }
    
    event end(t=tmax);

    Results