/* 
   Здесь содержатся установки монотонного начального поля. 
   Этот тест я использовал для того, чтобы проверить, что метод не
   разваливается на самом очевидном случае: когда поле постоянно во
   всём канале.
*/

#include "grid-init.h"

void
set_initial_field(Grid1D& grid)
{
  double phi = 0.999999; 
  double P = 100000; // [Pa]
  double Ug = 25; // [m/s]
  double Ul = 25; // [m/s]

  ConservVars lv = primitive2conserv((PrimitiveVars){phi,kappa/(sos*sos)*P,Ug,Ul});
  ConservVars rv = lv;

  grid.lbc.vars = lv;
  grid.rbc.vars = rv;
  
  ConservVars gradient = (rv - lv)/(grid.N);

  for (unsigned int i=0; i<grid.N; i++)
    grid.cells[i].vars = lv + i*gradient;
  
}