/*
  Здесь содержатся установки начального поля для того, чтобы
  исследовать устойчивость метода на СУ. 
  Для сравнения с Власенко: test-2a
*/

#include "grid-init.h"

void
set_initial_field(Grid1D& grid)
{
  double phi_L = 0.9;
  double rho_L = 1; // [kg/m^3]
  double Ug_L = 1000; // [m/s]
  double Ul_L = 1000; // [m/s]
  
  double Ug_R = Ug_L;
  double Ul_R = (rho_L*R0*T + (1-phi_L)*u3def*Ug_L*Ug_L )/(u3def*Ug_L);
  double phi_R = 1 - (1-phi_L)*Ul_L/Ul_R;
  double rho_R = rho_L * phi_L/phi_R;
  
  ConservVars lv = primitive2conserv((PrimitiveVars){phi_L,rho_L,Ug_L,Ul_L});
  ConservVars rv = primitive2conserv((PrimitiveVars){phi_R,rho_R,Ug_R,Ul_R});
  
  grid.lbc.vars = lv;
  grid.rbc.vars = rv;
  
  for (unsigned int i=0; i<grid.N; i++)
    if (i<grid.N/2)
      grid.cells[i].vars = lv;
    else
      grid.cells[i].vars = rv;
}