37   template<
typename ImplType>
 
   38   SharedPtr<NeumannBCAbstract>
 
   42                                                                            const std::string& section )
 
   44     std::string reaction = this->parse_reaction(input,section);
 
   47     SharedPtr<CatalycityBase> gamma_ptr = this->build_catalycity( input, section,
 
   48                                                                   this->reactant_for_catalycity(reaction) );
 
   51     this->extract_material( fe_var, material );
 
   55     libMesh::Real p0 = this->parse_thermo_pressure(input,material);
 
   57     std::string thermochem_lib = this->parse_thermochem_model(input);
 
   59     return this->build_catalytic_wall_common(input,fe_var,material,reaction,gamma_ptr,p0,thermochem_lib);
 
   62   template<
typename ImplType>
 
   64                                                                                    const std::string& section )
 const 
   68     std::string bc_id_string = StringUtilities::T_to_string<BoundaryID>( *(_bc_ids->begin()) );
 
   70     std::string prefix_str = this->catalytic_wall_prefix_str();
 
   72     std::string reaction_input_str = section+
"/"+prefix_str+
"_"+bc_id_string;
 
   75     if(!input.have_variable(reaction_input_str))
 
   76       libmesh_error_msg(
"ERROR: Could not find input for "+reaction_input_str+
" !\n");
 
   79     if( input.vector_variable_size(reaction_input_str) != 1 )
 
   80       libmesh_error_msg(
"ERROR: Can only specify one catalytic_reaction!\n");
 
   82     return input( reaction_input_str, std::string(
"DIE!") );
 
   85   template<
typename ImplType>
 
   87                                                                                             const std::string& material )
 const 
   89     std::string thermo_press_input_str =
 
   90       "Materials/"+material+
"/ThermodynamicPressure/value";
 
   92     std::string thermo_press_input_str_old_style =
 
   95     if( input.have_variable(thermo_press_input_str) && input.have_variable(thermo_press_input_str_old_style) )
 
   96       libmesh_error_msg(
"ERROR: Cannot specify both "+thermo_press_input_str+
" and "+thermo_press_input_str_old_style);
 
   98     libMesh::Real invalid_real =  std::numeric_limits<libMesh::Real>::max();
 
   99     libMesh::Real p0 = invalid_real;
 
  101     if( input.have_variable(thermo_press_input_str) )
 
  102       p0 = input(thermo_press_input_str,invalid_real);
 
  104     else if( input.have_variable(thermo_press_input_str_old_style) )
 
  105       p0 = input(thermo_press_input_str_old_style,invalid_real);
 
  108       libmesh_error_msg(
"ERROR: Could not valid input for thermodynamic pressure!");
 
  113   template<
typename ImplType>
 
  116     std::string thermochem_lib;
 
  121     return thermochem_lib;
 
  124   template<
typename ImplType>
 
  125   SharedPtr<CatalycityBase>
 
  127                                                                          const std::string& section,
 
  128                                                                          const std::string& reactant )
 const 
  131     std::string bc_id_str = StringUtilities::T_to_string<BoundaryID>( *(_bc_ids->begin()) );
 
  138     std::string catalycity_input_str = section+
"/gamma_"+reactant+
"_"+bc_id_str+
"_type";
 
  139     if( !input.have_variable(catalycity_input_str) )
 
  140       libmesh_error_msg(
"ERROR: Could not find input variable "+catalycity_input_str+
" !\n");
 
  142     std::string catalycity_type = input(catalycity_input_str, 
"none");
 
  143     catalycity_type += 
"_old_style";
 
  145     libMesh::UniquePtr<CatalycityBase> catalycity_ptr = CatalycityFactoryOldStyleBase::build(catalycity_type);
 
  148     return SharedPtr<CatalycityBase>( catalycity_ptr.release() );
 
libMesh::Real parse_thermo_pressure(const GetPot &input, const std::string &material) const 
 
static void parse_thermochemistry_model(const GetPot &input, const std::string &physics, std::string &model)
Determine thermochemistry model type. 
 
static void set_reactant(const std::string &reactant)
 
static PhysicsName reacting_low_mach_navier_stokes()
 
static void set_bc_id(const std::string &bc_id)
 
virtual SharedPtr< NeumannBCAbstract > build_neumann_func(const GetPot &input, MultiphysicsSystem &system, const FEVariablesBase &fe_var, const std::string §ion)
Builds the NeumannBCAbstract object for Neumann boundary conditions. 
 
static void set_getpot(const GetPot &input)
 
static void set_section(const std::string §ion)
 
static const std::set< BoundaryID > * _bc_ids
BoundaryID for constructing a particular boundary condition. 
 
SharedPtr< CatalycityBase > build_catalycity(const GetPot &input, const std::string §ion, const std::string &reactant) const 
 
std::string parse_reaction(const GetPot &input, const std::string §ion) const 
Parse the reaction. 
 
std::string parse_thermochem_model(const GetPot &input) const 
 
Interface with libMesh for solving Multiphysics problems.