Пример #1
0
void VlasovAux::solve(std::string equation_type, Fields *fields, CComplex *f_in, CComplex *f_out, double dt, int rk_step, const double rk[3]) 
{

  // do I need both, we can stick to e-m ? Speed penality ?
  
  if(equation_type == "ES")

      Vlasov_ES   ((A6zz) f_in, (A6zz) f_out     , (A6zz) f0, (A6zz) f, 
                   (A6zz) ft , (A6zz) Coll, (A6zz) fields->Field, 
                   (A3zz) nonLinearTerm, X, V, M, dt, rk_step, rk);

  else if(equation_type == "EM")

      Vlasov_EM   ((A6zz) f_in, (A6zz) f_out, (A6zz) f0, (A6zz) f,
                   (A6zz) ft, (A6zz) Coll, (A6zz) fields->Field, (A3zz) nonLinearTerm,
                   (A4zz) Xi, (A4zz) G, dt, rk_step, rk);

  else if(equation_type == "Landau_Damping")
    
      Landau_Damping((A6zz) f_in, (A6zz) f_out, (A6zz) f0, (A6zz) f, 
                     (A6zz) ft , (A6zz) fields->Field, 
                      X, V, M, dt, rk_step, rk);
  
  else   check(-1, DMESG("No Such Equation"));

  return;
}
Пример #2
0
void VlasovCilk::solve(std::string equation_type, Fields *fields, CComplex *f_in, CComplex *f_out, 
                       double dt, int rk_step, const double rk[3]) 
{

  if(0);
  else if(equation_type == "EM") Vlasov_EM((A6zz) f_in, (A6zz) f_out, (A6zz) f0, (A6zz) f, (A6zz) ft, (A6zz) Coll, 
                                           (A6zz) fields->Field, (A4zz) Xi, (A4zz) G, (A3zz) nonLinearTerm,
                                           (A2rr) geo->Kx, (A2rr) geo->Ky, (A2rr) geo->dB_dz,
                                           dt, rk_step, rk);
  else   check(-1, DMESG("No Such Equation"));

}