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

#include "grid-init.h"

void
set_initial_field(Grid1D& grid)
{
  double phi_L = 0.999999;
  double rho_L = 1; // [kg/m^3]
  double Ug_L = 400; // [m/s]
  double Ul_L = 400; // [m/s]
  
  double phi_R = phi_L;
  double Ug_R = sos*sos/(kappa*Ug_L);
  double Ul_R = sos*sos/(kappa*Ul_L);
  double rho_R = rho_L * Ug_L/Ug_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;
}