26 #include "grins_config.h" 
   28 #ifdef GRINS_HAVE_ANTIOCH 
   43 #include "libmesh/getpot.h" 
   45 int test_generic( 
const libMesh::Real value, 
const libMesh::Real value_reg, 
const std::string& name )
 
   49   const double tol = std::numeric_limits<double>::epsilon()*10;
 
   51   const double rel_error = std::fabs( (value - value_reg)/value_reg );
 
   56       std::cout << 
"Mismatch in "+name  << std::endl
 
   57                 << name+
" = " << value << std::endl
 
   58                 << name+
"_reg = " << value_reg << std::endl
 
   59                 << 
"rel_error = " << rel_error << std::endl;
 
   66 template<
typename Viscosity>
 
   67 int test_mu( 
const libMesh::Real mu );
 
   69 template<
typename Thermo, 
typename Conductivity>
 
   70 int test_k( 
const libMesh::Real k );
 
   72 template<
typename Thermo, 
typename Viscosity, 
typename Conductivity, 
typename Diffusivity>
 
   73 int test_D( 
const std::vector<libMesh::Real>& D );
 
   76 int test_mu<Antioch::BlottnerViscosity<libMesh::Real> >( 
const libMesh::Real mu )
 
   78   double mu_reg = 4.5123309407810213e-05;
 
   84 int test_k<Antioch::StatMechThermodynamics<libMesh::Real>,
 
   85            Antioch::EuckenThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real> > >( 
const libMesh::Real k )
 
   87   double k_reg = 8.0102737519532258e-02;
 
   93 int test_D<Antioch::StatMechThermodynamics<libMesh::Real>,
 
   94            Antioch::BlottnerViscosity<libMesh::Real>,
 
   95            Antioch::EuckenThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real> >,
 
   96            Antioch::ConstantLewisDiffusivity<libMesh::Real> >( 
const std::vector<libMesh::Real>& D )
 
   98   std::vector<libMesh::Real> D_reg(5);
 
   99   D_reg[0] = 4.6482311273552429e-02;
 
  105   int return_flag_tmp = 0;
 
  107   for( 
unsigned int s = 0; s < 5; s++ )
 
  110       if( return_flag_tmp != 0 ) return_flag = 1;
 
  116 template<
typename Thermo, 
typename Viscosity, 
typename Conductivity, 
typename Diffusivity>
 
  123   const libMesh::Real T = 1000;
 
  125   const libMesh::Real rho = 1.0e-3;
 
  127   const unsigned int n_species = 5;
 
  129   std::vector<libMesh::Real> Y(n_species,0.2);
 
  131   libMesh::Real p0 = rho*T*evaluator.
R_mix(Y);
 
  132   libMesh::Real mu = 0.0;
 
  133   libMesh::Real k = 0.0;
 
  134   std::vector<libMesh::Real> D(n_species,0.0);
 
  138   std::cout << std::scientific << std::setprecision(16)
 
  139             << 
"mu = " << mu << std::endl;
 
  141   std::cout << std::scientific << std::setprecision(16)
 
  142             << 
"k = " << k << std::endl;
 
  144   for( 
unsigned int i = 0; i < n_species; i++ )
 
  146       std::cout << std::scientific << std::setprecision(16)
 
  147                 << 
"D(" << mixture.
species_name(i) << 
") = " << D [i] << std::endl;
 
  152   int return_flag_temp = 0;
 
  154   return_flag_temp = test_mu<Viscosity>( mu );
 
  155   if( return_flag_temp != 0 ) return_flag = 1;
 
  157   return_flag_temp = test_k<Thermo,Conductivity>( k );
 
  158   if( return_flag_temp != 0 ) return_flag = 1;
 
  160   return_flag_temp = test_D<Thermo,Viscosity,Conductivity,Diffusivity>( D );
 
  161   if( return_flag_temp != 0 ) return_flag = 1;
 
  167 int main( 
int argc, 
char* argv[] )
 
  173       std::cerr << 
"Error: Must specify input file." << std::endl;
 
  177   GetPot input( argv[1] );
 
  181   std::cout << std::endl <<  
"Running StatMesh, Blottner, Eucken, Constant Lewis regression test." << std::endl;
 
  182   return_flag = test_evaluator<Antioch::StatMechThermodynamics<libMesh::Real>,
 
  183     Antioch::BlottnerViscosity<libMesh::Real>,
 
  184     Antioch::EuckenThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real> >,
 
  185     Antioch::ConstantLewisDiffusivity<libMesh::Real> >(input);
 
  190 #else //GRINS_HAVE_ANTIOCH 
libMesh::Real cp(const libMesh::Real &T, const libMesh::Real P, const std::vector< libMesh::Real > &Y)
 
int test_mu(const libMesh::Real mu)
 
int main(int argc, char *argv[])
 
Wrapper class for storing state for computing Wilke transport properties using Antioch. 
 
Wrapper class for evaluating Wilke transport properties using Antioch. 
 
int test_evaluator(const GetPot &input)
 
libMesh::Real R_mix(const std::vector< libMesh::Real > &mass_fractions) const 
 
int test_k(const libMesh::Real k)
 
std::string species_name(unsigned int species_index) const 
 
int test_D(const std::vector< libMesh::Real > &D)
 
int test_generic(const libMesh::Real value, const libMesh::Real value_reg, const std::string &name)
 
void mu_and_k_and_D(const libMesh::Real T, const libMesh::Real rho, const libMesh::Real cp, const std::vector< libMesh::Real > &Y, libMesh::Real &mu, libMesh::Real &k, std::vector< libMesh::Real > &D)