#include #include "common.h" void var_input(struct VAR_STRUCT* user) { //petsc variables // they do not need initialization //equation coefficients PetscScalar interface= 240e-3; PetscScalar dH= 10e3/0.027*2370;//dh=10kJ/mol; molar mass=0.027 kg/mol; density@Tm: 2730 kg/m3 PetscScalar m= 1.6; PetscScalar c0=4.0; user->k= 0.15 ; user->cl0=c0; PetscScalar Tm= 933.6; user->nu=0.57e-6; //viscosity 5 mPa.s and nu is kinematic viscosity 5e-3/4110 user->GAMMA= interface*Tm/dH; //PetscPrintf(PETSC_COMM_WORLD,"GAMMA=%.12f[ Kmicrometer]!\n",user->GAMMA*1000000); user->mcinf= m*user->cl0 ; user->Density_var=0.01; user->d0= user->GAMMA/(user->mcinf*(1.0-user->k)/user->k) ; // //PetscPrintf(PETSC_COMM_WORLD,"d0=%.12f[micrometer]!\n",user->d0*1000000); user->W=1.0e-6 ; //W=0.01524e-6 user->ep= user->W/user->d0 ; //PetscPrintf(PETSC_COMM_WORLD,"W=%.12f [micrometer]!\n",user->W*1000000); //user->ep= user->W/user->d0 ; user->D=3e-9; user->h=2.757; user->Vp=40e-6; //only assume user->G= 1.0e5 ; user->a_p=0.3536 ; user->a1= 0.8839 ; user->a2= 0.6265;//(1-1.2*user->Vp/user->DF/(1+user->Vp/user->DF)); ////PetscPrintf(PETSC_COMM_WORLD,"a2=%.3f!\n",user->a2); user->lambda= user->a1*user->ep ; //PetscPrintf(PETSC_COMM_WORLD,"lambda=%.12f!\n",user->lambda); PetscScalar kap1=user->a1*user->a2*user->W/user->D; PetscScalar kap2=user->lambda*user->W/user->a1; //PetscPrintf(PETSC_COMM_WORLD,"kap1=%.12f!\n",kap1); //PetscPrintf(PETSC_COMM_WORLD,"kap2=%.12f(x 10^8)!\n",kap2*100000000); user->beta=0.0; user->epsilon_beta=0.0; user->epsilon= 0.03; user->tau_0= (user->beta+kap1)*kap2; user->V_nd=user->W/user->tau_0; user->nu_nd=user->nu*user->tau_0/(user->W*user->W); //non dimensional nu=nu*tau_0/W^2 PetscPrintf(PETSC_COMM_WORLD,"nu_nd=%.3f !\n",user->nu_nd); user->epsilon_tau= 2.0*user->epsilon;//(user->epsilon+(user->beta*user->epsilon_beta)/(user->beta)); //1.429e-7 PetscPrintf(PETSC_COMM_WORLD,"tau/w=%.3f!\n",user->tau_0/user->W); //write output user->time=-1.0; user->t_write=0.0; user->t_write_freq=100;//2000; user->t_n_freq =20; // domain decomposition in time and space user->Nx= 50 ;user->Ny=50 ; user->hx= 0.8 ;user->hy=0.8; user->lx= user->hx*user->Nx;user->ly=user->hy*user->Ny; //PetscPrintf(PETSC_COMM_WORLD,"lx=%f!\n",user->lx); user->lT= user->mcinf*(1-user->k)/(user->G)/user->k ; // //PetscPrintf(PETSC_COMM_WORLD,"lT=%.12f[micrometer]!\n",user->lT/(user->hx*user->W)); user->lD= 2.0*user->D/(user->Vp) ; // //PetscPrintf(PETSC_COMM_WORLD,"lD=%.12f[micrometer]!\n",user->lD/(user->hx*user->W)); user->ht=0.001; user->tw=0.0; user->Nt=100000; user->t_tot=user->lx*user->W/(user->Vp*user->tau_0)*100000; //user->Nt=(user->Ny*user->hy*user->W)/(user->Vp*user->tau_0); //PetscPrintf(PETSC_COMM_WORLD,"ND simulation time=%.5f!\n",user->Nt); user->n=150; //initial condition and initial nucleation positopn user->U_s=-1.0 ;user->U_l=-1.0 ; user->p_s= 1.0;user->p_l= -1.0; user->U_I=0.5*(user->U_s+user->U_l); user->p_I=0.5*(user->p_s+user->p_l); // Interface order parameter and concentration //user->Nx_Ir= (int) (user->Nx/2 +2 ) ;user->Nx_Il= (int) (user->Nx/2 -2) ; //run user->accelerate=-9.8; //validation //user->delta=13; user->lambda_f=56; user->j_max=0; user->Nx_Ir= (int) (0.5*user->Nx +6) ;user->Nx_Il=(int) (0.5*user->Nx- 6); //varidation //user->Nx_Ir= user->Nx-1;user->Nx_Il=0; //PetscPrintf(PETSC_COMM_WORLD,"Nx_Ir=%d!\n",user->Nx_Ir); //PetscPrintf(PETSC_COMM_WORLD,"Nx_Il=%d!\n",user->Nx_Il); user->Ny_It=(int) (6);user->Ny_Ib=(int) (0) ; user->vy_b=0.0; user->vx_b=0.0;//0.000005/user->V_nd; user->pp_b=0.0;//10e-3/(2730*user->W/user->tau_0); user->U_s=-1.0 ;user->U_l=-1.0 ; user->p_s= 1.0;user->p_l= -1.0; //solution vector //it will be initialized in program }