GRINS-0.6.0
Public Member Functions | Protected Types | Protected Attributes | Static Protected Attributes | Private Types | Private Member Functions | List of all members
GRINS::LowMachNavierStokesBCHandling Class Reference

Base class for reading and handling boundary conditions for physics classes. More...

#include <low_mach_navier_stokes_bc_handling.h>

Inheritance diagram for GRINS::LowMachNavierStokesBCHandling:
Inheritance graph
[legend]
Collaboration diagram for GRINS::LowMachNavierStokesBCHandling:
Collaboration graph
[legend]

Public Member Functions

 LowMachNavierStokesBCHandling (const std::string &physics_name, const GetPot &input)
 
virtual ~LowMachNavierStokesBCHandling ()
 
virtual int string_to_int (const std::string &bc_type_in) const
 
virtual void init_bc_data (const libMesh::FEMSystem &system)
 Override this method to initialize any system-dependent data. More...
 
virtual void init_bc_types (const GRINS::BoundaryID bc_id, const std::string &bc_id_string, const int bc_type, const std::string &bc_vars, const std::string &bc_value, const GetPot &input)
 
virtual void user_init_dirichlet_bcs (libMesh::FEMSystem *system, libMesh::DofMap &dof_map, GRINS::BoundaryID bc_id, GRINS::BCType bc_type) const
 
void set_temp_bc_type (GRINS::BoundaryID bc_id, int bc_type)
 
void set_temp_bc_value (GRINS::BoundaryID bc_id, libMesh::Real value)
 
libMesh::Real get_temp_bc_value (GRINS::BoundaryID bc_id) const
 
virtual void init_dirichlet_bcs (libMesh::FEMSystem *system) const
 
void attach_neumann_bound_func (GRINS::NBCContainer &neumann_bcs)
 
void attach_dirichlet_bound_func (const GRINS::DBCContainer &dirichlet_bc)
 
virtual void read_bc_data (const GetPot &input, const std::string &id_str, const std::string &bc_str, const std::string &var_str, const std::string &val_str)
 
virtual void apply_neumann_bcs (AssemblyContext &context, const GRINS::CachedValues &cache, const bool request_jacobian, const GRINS::BoundaryID bc_id) const
 
virtual void user_apply_neumann_bcs (AssemblyContext &context, const GRINS::CachedValues &cache, const bool request_jacobian, const GRINS::BoundaryID bc_id, const GRINS::BCType bc_type) const
 
virtual void init_dirichlet_bc_func_objs (libMesh::FEMSystem *system) const
 
virtual void init_periodic_bcs (libMesh::FEMSystem *system) const
 
void set_dirichlet_bc_type (GRINS::BoundaryID bc_id, int bc_type)
 
void set_neumann_bc_type (GRINS::BoundaryID bc_id, int bc_type)
 
void set_dirichlet_bc_value (GRINS::BoundaryID bc_id, libMesh::Real value, int component=0)
 
void set_neumann_bc_value (GRINS::BoundaryID bc_id, const libMesh::Point &q_in)
 
libMesh::Real get_dirichlet_bc_value (GRINS::BoundaryID bc_id, int component=0) const
 
const libMesh::Point & get_neumann_bc_value (GRINS::BoundaryID bc_id) const
 
std::tr1::shared_ptr< GRINS::NeumannFuncObjget_neumann_bound_func (GRINS::BoundaryID bc_id, GRINS::VariableIndex var_id) const
 
std::tr1::shared_ptr< GRINS::NeumannFuncObjget_neumann_bound_func (GRINS::BoundaryID bc_id, GRINS::VariableIndex var_id)
 
GRINS::BCType get_dirichlet_bc_type (const GRINS::BoundaryID bc_id) const
 
bool is_axisymmetric () const
 

Protected Types

enum  BC_BASE {
  PERIODIC = -5, CONSTANT_DIRICHLET, PARSED_DIRICHLET, PARSED_FEM_DIRICHLET,
  AXISYMMETRIC
}
 

Protected Attributes

std::string _u_var_name
 
std::string _v_var_name
 
std::string _w_var_name
 
std::string _T_var_name
 
GRINS::VariableIndex _T_var
 
std::map< GRINS::BoundaryID, libMesh::Real > _T_values
 
std::vector< std::pair< BoundaryID, BCType > > _temp_bc_map
 
std::vector< std::pair< BoundaryID, BCType > > _dirichlet_bc_map
 Map between boundary id and Dirichlet boundary condition type. More...
 
std::map< GRINS::BoundaryID, GRINS::BCType_neumann_bc_map
 Map between boundary id and Neumann boundary condition type. More...
 
std::map< GRINS::BoundaryID, libMesh::Point > _dirichlet_values
 Stash prescribed Dirichlet boundary values. More...
 
std::map< GRINS::BoundaryID, libMesh::Point > _q_values
 Stash prescribed boundary fluxes. More...
 
std::map< GRINS::BoundaryID, GRINS::NBCContainer_neumann_bound_funcs
 
std::vector< GRINS::DBCContainer_dirichlet_bound_funcs
 
GRINS::BoundaryConditions _bound_conds
 Object that stashes generic boundary condition types. More...
 
std::vector< GRINS::PBCContainer_periodic_bcs
 
unsigned int _num_periodic_bcs
 
std::string _physics_name
 

Static Protected Attributes

static bool _axisymmetric = false
 Flag to cache whether or not there is an axisymmetric boundary present. More...
 

Private Types

enum  LMNS_BC_TYPES {
  NO_SLIP =0, ZERO_X_VELOCITY, ZERO_Y_VELOCITY, PRESCRIBED_VELOCITY,
  GENERAL_VELOCITY, PARABOLIC_PROFILE, ISOTHERMAL_WALL, GENERAL_ISOTHERMAL_WALL,
  ADIABATIC_WALL, PRESCRIBED_HEAT_FLUX, GENERAL_HEAT_FLUX
}
 

Private Member Functions

 LowMachNavierStokesBCHandling ()
 

Detailed Description

Base class for reading and handling boundary conditions for physics classes.

Definition at line 35 of file low_mach_navier_stokes_bc_handling.h.

Member Enumeration Documentation

enum GRINS::BCHandlingBase::BC_BASE
protectedinherited
Enumerator
NO_SLIP 
ZERO_X_VELOCITY 
ZERO_Y_VELOCITY 
PRESCRIBED_VELOCITY 
GENERAL_VELOCITY 
PARABOLIC_PROFILE 
ISOTHERMAL_WALL 
GENERAL_ISOTHERMAL_WALL 
ADIABATIC_WALL 
PRESCRIBED_HEAT_FLUX 
GENERAL_HEAT_FLUX 

Definition at line 79 of file low_mach_navier_stokes_bc_handling.h.

Constructor & Destructor Documentation

GRINS::LowMachNavierStokesBCHandling::LowMachNavierStokesBCHandling ( const std::string &  physics_name,
const GetPot &  input 
)

Definition at line 38 of file low_mach_navier_stokes_bc_handling.C.

References GRINS::BCHandlingBase::_physics_name, and GRINS::BCHandlingBase::read_bc_data().

40  : BCHandlingBase(physics_name),
41  _u_var_name( input("Physics/VariableNames/u_velocity", u_var_name_default ) ),
42  _v_var_name( input("Physics/VariableNames/v_velocity", v_var_name_default ) ),
43  _w_var_name( input("Physics/VariableNames/w_velocity", w_var_name_default ) ),
44  _T_var_name( input("Physics/VariableNames/Temperature", T_var_name_default ) )
45  {
46  std::string id_str = "Physics/"+_physics_name+"/vel_bc_ids";
47  std::string bc_str = "Physics/"+_physics_name+"/vel_bc_types";
48  std::string var_str = "Physics/"+_physics_name+"/vel_bc_variables";
49  std::string val_str = "Physics/"+_physics_name+"/vel_bc_values";
50 
51  this->read_bc_data( input, id_str, bc_str, var_str, val_str );
52 
53  id_str = "Physics/"+_physics_name+"/temp_bc_ids";
54  bc_str = "Physics/"+_physics_name+"/temp_bc_types";
55  var_str = "Physics/"+_physics_name+"/temp_bc_variables";
56  val_str = "Physics/"+_physics_name+"/temp_bc_values";
57 
58  this->read_bc_data( input, id_str, bc_str, var_str, val_str );
59 
60  return;
61  }
virtual void read_bc_data(const GetPot &input, const std::string &id_str, const std::string &bc_str, const std::string &var_str, const std::string &val_str)
const std::string v_var_name_default
y-velocity
const std::string T_var_name_default
temperature
const std::string u_var_name_default
Default physics variable names.
const std::string w_var_name_default
z-velocity
GRINS::LowMachNavierStokesBCHandling::~LowMachNavierStokesBCHandling ( )
virtual

Definition at line 63 of file low_mach_navier_stokes_bc_handling.C.

64  {
65  return;
66  }
GRINS::LowMachNavierStokesBCHandling::LowMachNavierStokesBCHandling ( )
private

Member Function Documentation

void GRINS::BCHandlingBase::apply_neumann_bcs ( AssemblyContext context,
const GRINS::CachedValues cache,
const bool  request_jacobian,
const GRINS::BoundaryID  bc_id 
) const
virtualinherited

Definition at line 234 of file bc_handling_base.C.

References GRINS::BCHandlingBase::_neumann_bc_map, and GRINS::BCHandlingBase::user_apply_neumann_bcs().

238  {
239  std::map< BoundaryID, BCType>::const_iterator
240  bc_map_it = _neumann_bc_map.find( bc_id );
241 
242  /* We assume that if you didn't put a boundary id in, then you didn't want to
243  set a boundary condition on that boundary. */
244  if( bc_map_it != _neumann_bc_map.end() )
245  {
246  this->user_apply_neumann_bcs( context, cache, request_jacobian,
247  bc_id, bc_map_it->second );
248  }
249  return;
250  }
std::map< GRINS::BoundaryID, GRINS::BCType > _neumann_bc_map
Map between boundary id and Neumann boundary condition type.
virtual void user_apply_neumann_bcs(AssemblyContext &context, const GRINS::CachedValues &cache, const bool request_jacobian, const GRINS::BoundaryID bc_id, const GRINS::BCType bc_type) const
void GRINS::BCHandlingBase::attach_dirichlet_bound_func ( const GRINS::DBCContainer dirichlet_bc)
inherited
void GRINS::BCHandlingBase::attach_neumann_bound_func ( GRINS::NBCContainer neumann_bcs)
inherited

Definition at line 61 of file bc_handling_base.C.

References GRINS::BCHandlingBase::_neumann_bound_funcs, and GRINS::NBCContainer::get_bc_id().

Referenced by GRINS::Physics::attach_neumann_bound_func().

62  {
63  _neumann_bound_funcs.insert( std::make_pair( neumann_bcs.get_bc_id(), neumann_bcs ) );
64  return;
65  }
BoundaryID get_bc_id() const
Definition: nbc_container.C:46
std::map< GRINS::BoundaryID, GRINS::NBCContainer > _neumann_bound_funcs
GRINS::BCType GRINS::BCHandlingBase::get_dirichlet_bc_type ( const GRINS::BoundaryID  bc_id) const
inlineinherited

Definition at line 207 of file bc_handling_base.h.

References GRINS::BCHandlingBase::_dirichlet_bc_map.

208  {
209  BCType bc_type_out = -100;
210 
211  for( std::vector<std::pair<BoundaryID,BCType> >::const_iterator it = _dirichlet_bc_map.begin();
212  it != _dirichlet_bc_map.end(); it++ )
213  {
214  if( it->first == bc_id ) bc_type_out = it->second;
215  }
216 
217  libmesh_assert_not_equal_to( bc_type_out, -100 );
218 
219  return bc_type_out;
220  }
std::vector< std::pair< BoundaryID, BCType > > _dirichlet_bc_map
Map between boundary id and Dirichlet boundary condition type.
int BCType
Definition: bc_types.h:32
libMesh::Real GRINS::BCHandlingBase::get_dirichlet_bc_value ( GRINS::BoundaryID  bc_id,
int  component = 0 
) const
inherited
const libMesh::Point & GRINS::BCHandlingBase::get_neumann_bc_value ( GRINS::BoundaryID  bc_id) const
inlineinherited

Definition at line 185 of file bc_handling_base.h.

References GRINS::BCHandlingBase::_q_values.

Referenced by GRINS::AxisymmetricHeatTransferBCHandling::user_apply_neumann_bcs(), GRINS::HeatTransferBCHandling::user_apply_neumann_bcs(), and GRINS::SolidMechanicsBCHandling::user_apply_neumann_bcs().

186  {
187  return (_q_values.find(bc_id))->second;
188  }
std::map< GRINS::BoundaryID, libMesh::Point > _q_values
Stash prescribed boundary fluxes.
std::tr1::shared_ptr< GRINS::NeumannFuncObj > GRINS::BCHandlingBase::get_neumann_bound_func ( GRINS::BoundaryID  bc_id,
GRINS::VariableIndex  var_id 
) const
inlineinherited

Definition at line 192 of file bc_handling_base.h.

References GRINS::BCHandlingBase::_neumann_bound_funcs.

Referenced by GRINS::AxisymmetricHeatTransferBCHandling::user_apply_neumann_bcs(), and GRINS::HeatTransferBCHandling::user_apply_neumann_bcs().

194  {
195  return ((_neumann_bound_funcs.find(bc_id))->second).get_func(var_id);
196  }
std::map< GRINS::BoundaryID, GRINS::NBCContainer > _neumann_bound_funcs
std::tr1::shared_ptr< GRINS::NeumannFuncObj > GRINS::BCHandlingBase::get_neumann_bound_func ( GRINS::BoundaryID  bc_id,
GRINS::VariableIndex  var_id 
)
inlineinherited

Definition at line 200 of file bc_handling_base.h.

References GRINS::BCHandlingBase::_neumann_bound_funcs.

202  {
203  return ((_neumann_bound_funcs.find(bc_id))->second).get_func(var_id);
204  }
std::map< GRINS::BoundaryID, GRINS::NBCContainer > _neumann_bound_funcs
libMesh::Real GRINS::LowMachNavierStokesBCHandling::get_temp_bc_value ( GRINS::BoundaryID  bc_id) const

Definition at line 489 of file low_mach_navier_stokes_bc_handling.C.

References _T_values.

Referenced by user_init_dirichlet_bcs().

490  {
491  return _T_values.find(bc_id)->second;
492  }
std::map< GRINS::BoundaryID, libMesh::Real > _T_values
void GRINS::LowMachNavierStokesBCHandling::init_bc_data ( const libMesh::FEMSystem &  system)
virtual

Override this method to initialize any system-dependent data.

Override this method to, for example, cache a System variable number. This is called before any of the other init methods in this class. By default, does nothing.

Reimplemented from GRINS::BCHandlingBase.

Reimplemented in GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >.

Definition at line 114 of file low_mach_navier_stokes_bc_handling.C.

References _T_var, and _T_var_name.

Referenced by GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >::init_bc_data().

115  {
116  _T_var = system.variable_number( _T_var_name );
117 
118  return;
119  }
void GRINS::LowMachNavierStokesBCHandling::init_bc_types ( const GRINS::BoundaryID  bc_id,
const std::string &  bc_id_string,
const int  bc_type,
const std::string &  bc_vars,
const std::string &  bc_value,
const GetPot &  input 
)
virtual

Reimplemented from GRINS::BCHandlingBase.

Reimplemented in GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >.

Definition at line 121 of file low_mach_navier_stokes_bc_handling.C.

References GRINS::BCHandlingBase::_physics_name, GRINS::DBCContainer::add_bc_id(), GRINS::DBCContainer::add_var_name(), ADIABATIC_WALL, GRINS::BCHandlingBase::attach_dirichlet_bound_func(), GRINS::BCHandlingBase::AXISYMMETRIC, GENERAL_HEAT_FLUX, GENERAL_ISOTHERMAL_WALL, GENERAL_VELOCITY, GRINS::BCHandlingBase::init_bc_types(), ISOTHERMAL_WALL, NO_SLIP, PARABOLIC_PROFILE, PRESCRIBED_HEAT_FLUX, PRESCRIBED_VELOCITY, GRINS::BCHandlingBase::set_dirichlet_bc_type(), GRINS::BCHandlingBase::set_dirichlet_bc_value(), GRINS::DBCContainer::set_func(), GRINS::BCHandlingBase::set_neumann_bc_type(), GRINS::BCHandlingBase::set_neumann_bc_value(), set_temp_bc_type(), set_temp_bc_value(), ZERO_X_VELOCITY, and ZERO_Y_VELOCITY.

Referenced by GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >::init_bc_types().

127  {
128  switch(bc_type)
129  {
130  case(NO_SLIP):
131  {
132  this->set_dirichlet_bc_type( bc_id, bc_type );
133  }
134  break;
135  case(ZERO_X_VELOCITY):
136  {
137  this->set_dirichlet_bc_type( bc_id, bc_type );
138  }
139  break;
140  case(ZERO_Y_VELOCITY):
141  {
142  this->set_dirichlet_bc_type( bc_id, bc_type );
143  }
144  break;
145  case(PRESCRIBED_VELOCITY):
146  {
147  this->set_dirichlet_bc_type( bc_id, bc_type );
148 
149  /* Force the user to specify 3 velocity components regardless of dimension.
150  This should make it easier to keep things correct if we want to have
151  2D flow not be in the x-y plane. */
152  int n_vel_comps = input.vector_variable_size("Physics/"+_physics_name+"/bound_vel_"+bc_id_string);
153  if( n_vel_comps != 3 )
154  {
155  std::cerr << "Error: Must specify 3 velocity components when inputting"
156  << std::endl
157  << " prescribed velocities. Found " << n_vel_comps
158  << " velocity components."
159  << std::endl;
160  libmesh_error();
161  }
162 
163  this->set_dirichlet_bc_value( bc_id,
164  input("Physics/"+_physics_name+"/bound_vel_"+bc_id_string, 0.0, 0 ),
165  0 );
166 
167  this->set_dirichlet_bc_value( bc_id,
168  input("Physics/"+_physics_name+"/bound_vel_"+bc_id_string, 0.0, 1 ),
169  1 );
170 
171  this->set_dirichlet_bc_value( bc_id,
172  input("Physics/"+_physics_name+"/bound_vel_"+bc_id_string, 0.0, 2 ),
173  2 );
174  }
175  break;
176  case(PARABOLIC_PROFILE):
177  {
178  this->set_dirichlet_bc_type( bc_id, bc_type );
179 
180  // Make sure all 6 components are there
181  if( input.vector_variable_size("Physics/"+_physics_name+"/parabolic_profile_coeffs_"+bc_id_string) != 6 )
182  {
183  std::cerr << "Error: Must specify 6 components when inputting"
184  << std::endl
185  << " coefficients for a parabolic profile. Found "
186  << input.vector_variable_size("Physics/"+_physics_name+"/parabolic_profile_"+bc_id_string)
187  << " components."
188  << std::endl;
189  libmesh_error();
190  }
191 
192  libMesh::Real a = input( "Physics/"+_physics_name+"/parabolic_profile_coeffs_"+bc_id_string, 0.0, 0 );
193  libMesh::Real b = input( "Physics/"+_physics_name+"/parabolic_profile_coeffs_"+bc_id_string, 0.0, 1 );
194  libMesh::Real c = input( "Physics/"+_physics_name+"/parabolic_profile_coeffs_"+bc_id_string, 0.0, 2 );
195  libMesh::Real d = input( "Physics/"+_physics_name+"/parabolic_profile_coeffs_"+bc_id_string, 0.0, 3 );
196  libMesh::Real e = input( "Physics/"+_physics_name+"/parabolic_profile_coeffs_"+bc_id_string, 0.0, 4 );
197  libMesh::Real f = input( "Physics/"+_physics_name+"/parabolic_profile_coeffs_"+bc_id_string, 0.0, 5 );
198 
199  std::string var = input( "Physics/"+_physics_name+"/parabolic_profile_var_"+bc_id_string, "DIE!" );
200 
201  GRINS::DBCContainer cont;
202  cont.add_var_name( var );
203  cont.add_bc_id( bc_id );
204 
205  std::tr1::shared_ptr<libMesh::FunctionBase<libMesh::Number> >
206  func( new GRINS::ParabolicProfile(a,b,c,d,e,f) );
207  cont.set_func( func );
208  this->attach_dirichlet_bound_func( cont );
209 
210  // Set specified components of Dirichlet data to zero
211  std::string fix_var = input( "Physics/"+_physics_name+"/parabolic_profile_fix_"+bc_id_string, "DIE!" );
212 
213  GRINS::DBCContainer cont_fix;
214  cont_fix.add_var_name( fix_var );
215  cont_fix.add_bc_id( bc_id );
216 
217  std::tr1::shared_ptr<libMesh::FunctionBase<libMesh::Number> >
218  func_fix( new libMesh::ZeroFunction<libMesh::Number>() );
219  cont_fix.set_func( func_fix );
220  this->attach_dirichlet_bound_func( cont_fix );
221  }
222  break;
223 
224  case(GENERAL_VELOCITY):
225  {
226  this->set_dirichlet_bc_type( bc_id, bc_type );
227 
228  // Set specified components of Dirichlet data to zero.
229  // Other component is handled in user BC factory.
230  std::string fix_var = input( "Physics/"+_physics_name+"/general_velocity_fix_"+bc_id_string, "DIE!" );
231 
232  GRINS::DBCContainer cont_fix;
233  cont_fix.add_var_name( fix_var );
234  cont_fix.add_bc_id( bc_id );
235 
236  std::tr1::shared_ptr<libMesh::FunctionBase<libMesh::Number> >
237  func_fix( new libMesh::ZeroFunction<libMesh::Number>() );
238  cont_fix.set_func( func_fix );
239  this->attach_dirichlet_bound_func( cont_fix );
240  }
241  break;
242  case(ISOTHERMAL_WALL):
243  {
244  this->set_temp_bc_type( bc_id, bc_type );
245 
246  this->set_temp_bc_value( bc_id, input("Physics/"+_physics_name+"/T_wall_"+bc_id_string, 0.0 ) );
247  }
248  break;
249 
251  {
252  this->set_temp_bc_type( bc_id, bc_type );
253  }
254  break;
255 
256  case(ADIABATIC_WALL):
257  {
258  this->set_neumann_bc_type( bc_id, bc_type );
259  }
260  break;
261  case(PRESCRIBED_HEAT_FLUX):
262  {
263  this->set_neumann_bc_type( bc_id, bc_type );
264 
265  libMesh::RealGradient q_in;
266 
267  int num_q_components = input.vector_variable_size("Physics/"+_physics_name+"/q_wall_"+bc_id_string);
268 
269  for( int i = 0; i < num_q_components; i++ )
270  {
271  q_in(i) = input("Physics/"+_physics_name+"/q_wall_"+bc_id_string, 0.0, i );
272  }
273 
274  this->set_neumann_bc_value( bc_id, q_in );
275  }
276  break;
277  case(GENERAL_HEAT_FLUX):
278  {
279  this->set_neumann_bc_type( bc_id, bc_type );
280  }
281  break;
282 
283  case(AXISYMMETRIC):
284  {
285  this->set_dirichlet_bc_type( bc_id, bc_type );
286  }
287  break;
288 
289  default:
290  {
291  // Call base class to detect any physics-common boundary conditions
292  BCHandlingBase::init_bc_types( bc_id, bc_id_string, bc_type,
293  bc_vars, bc_value, input );
294  }
295  } // End switch(bc_type)
296 
297  return;
298  }
Simple helper class to setup general Dirichlet boundary conditions.
Definition: dbc_container.h:49
void attach_dirichlet_bound_func(const GRINS::DBCContainer &dirichlet_bc)
Parabolic profile.
void set_dirichlet_bc_value(GRINS::BoundaryID bc_id, libMesh::Real value, int component=0)
void set_neumann_bc_value(GRINS::BoundaryID bc_id, const libMesh::Point &q_in)
void add_var_name(const GRINS::VariableName &var)
Add variables that are constrained by the Dirichlet bc.
Definition: dbc_container.C:46
virtual void init_bc_types(const GRINS::BoundaryID bc_id, const std::string &bc_id_string, const int bc_type, const std::string &bc_vars, const std::string &bc_value, const GetPot &input)
void set_temp_bc_value(GRINS::BoundaryID bc_id, libMesh::Real value)
void set_temp_bc_type(GRINS::BoundaryID bc_id, int bc_type)
void add_bc_id(const GRINS::BoundaryID bc_id)
Add boundary id's for which this Dirichlet bc is to be applied.
Definition: dbc_container.C:52
void set_func(std::tr1::shared_ptr< libMesh::FunctionBase< libMesh::Number > > func)
Add the Dirichlet bc functor.
Definition: dbc_container.C:58
void set_neumann_bc_type(GRINS::BoundaryID bc_id, int bc_type)
void set_dirichlet_bc_type(GRINS::BoundaryID bc_id, int bc_type)
void GRINS::BCHandlingBase::init_dirichlet_bc_func_objs ( libMesh::FEMSystem *  system) const
virtualinherited

Definition at line 116 of file bc_handling_base.C.

References GRINS::BCHandlingBase::_dirichlet_bound_funcs.

Referenced by GRINS::Physics::init_bcs().

117  {
118  libMesh::DofMap& dof_map = system->get_dof_map();
119 
120  for( std::vector< DBCContainer >::const_iterator
121  it = _dirichlet_bound_funcs.begin();
122  it != _dirichlet_bound_funcs.end();
123  it++ )
124  {
125  // First, get variable names. We convert them to variable ids,
126  // both to tell the DirichletBoundary what variables to
127  // project and to tell the CompositeFunction what remapping to
128  // do.
129  std::vector<VariableName> var_names = (*it).get_var_names();
130 
131  std::vector<VariableIndex> dbc_vars;
132 
133  for( std::vector<VariableName>::const_iterator name = var_names.begin();
134  name != var_names.end();
135  name++ )
136  {
137  dbc_vars.push_back( system->variable_number( *name ) );
138  }
139 
140  // Get bc_id's
141  std::set<BoundaryID> bc_ids = (*it).get_bc_ids();
142 
143  // Get Dirichlet bc functor
144  std::tr1::shared_ptr<libMesh::FunctionBase<libMesh::Number> >
145  func = (*it).get_func();
146 
147  // Remap indices as necessary
148  if (func.get())
149  {
151  remapped_func.attach_subfunction(*func, dbc_vars);
152 
153  // Now create DirichletBoundary object and give it to libMesh
154  // libMesh makes it own copy of the DirichletBoundary so we can
155  // let this one die.
156  libMesh::DirichletBoundary dbc( bc_ids, dbc_vars,
157  remapped_func );
158 
159  dof_map.add_dirichlet_boundary( dbc );
160  }
161  else
162  {
163  // Get Dirichlet bc functor
164  const std::string& func_string = (*it).get_fem_func_string();
165 
166  libmesh_assert_not_equal_to(func_string, "");
167 
168  // Need to belatedly create Dirichlet functor since we
169  // didn't have a System object handy until now.
170  libMesh::ParsedFEMFunction<libMesh::Number>
171  func(*system, func_string);
172 
173  libMesh::CompositeFEMFunction<libMesh::Number> remapped_func;
174  remapped_func.attach_subfunction(func, dbc_vars);
175 
176  // Now create DirichletBoundary object and give it to libMesh
177  // libMesh makes it own copy of the DirichletBoundary so we can
178  // let this one die.
179  libMesh::DirichletBoundary dbc( bc_ids, dbc_vars,
180  *system,
181  remapped_func );
182 
183  dof_map.add_dirichlet_boundary( dbc );
184  }
185  }
186 
187  return;
188  }
std::vector< GRINS::DBCContainer > _dirichlet_bound_funcs
void GRINS::LowMachNavierStokesBCHandling::init_dirichlet_bcs ( libMesh::FEMSystem *  system) const
virtual

Reimplemented from GRINS::BCHandlingBase.

Reimplemented in GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >.

Definition at line 494 of file low_mach_navier_stokes_bc_handling.C.

References GRINS::BCHandlingBase::_dirichlet_bc_map, _temp_bc_map, and user_init_dirichlet_bcs().

Referenced by GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >::init_dirichlet_bcs().

495  {
496  libMesh::DofMap& dof_map = system->get_dof_map();
497 
498  for( std::vector<std::pair<BoundaryID,BCType> >::const_iterator it = _dirichlet_bc_map.begin();
499  it != _dirichlet_bc_map.end(); it++ )
500  {
501  this->user_init_dirichlet_bcs( system, dof_map, it->first, it->second );
502  }
503 
504  for( std::vector<std::pair<BoundaryID,BCType> >::const_iterator it = _temp_bc_map.begin();
505  it != _temp_bc_map.end(); it++ )
506  {
507  this->user_init_dirichlet_bcs( system, dof_map, it->first, it->second );
508  }
509 
510  return;
511  }
virtual void user_init_dirichlet_bcs(libMesh::FEMSystem *system, libMesh::DofMap &dof_map, GRINS::BoundaryID bc_id, GRINS::BCType bc_type) const
std::vector< std::pair< BoundaryID, BCType > > _dirichlet_bc_map
Map between boundary id and Dirichlet boundary condition type.
std::vector< std::pair< BoundaryID, BCType > > _temp_bc_map
void GRINS::BCHandlingBase::init_periodic_bcs ( libMesh::FEMSystem *  system) const
virtualinherited

Definition at line 203 of file bc_handling_base.C.

References GRINS::BCHandlingBase::_num_periodic_bcs, and GRINS::BCHandlingBase::_periodic_bcs.

Referenced by GRINS::Physics::init_bcs().

204  {
205  /* Consistency check required to make sure user actually set periodic bc data.
206  This is needed because of the way we parse periodic boundary conditions. */
207  if( _periodic_bcs.size() != _num_periodic_bcs/2 )
208  {
209  std::cerr << "==========================================================" << std::endl
210  << "Error: Inconsistency in perioidic boundary conditions." << std::endl
211  << " There were " << _num_periodic_bcs << " deteced but " << std::endl
212  << " only " << _periodic_bcs.size() << " pairs of data " << std::endl
213  << " were set." << std::endl
214  << "==========================================================" << std::endl;
215  libmesh_error();
216  }
217 
218  libMesh::DofMap& dof_map = system->get_dof_map();
219 
220  for( std::vector< PBCContainer >::const_iterator it = _periodic_bcs.begin();
221  it != _periodic_bcs.end();
222  it++ )
223  {
224  libMesh::PeriodicBoundary bc( it->get_offset_vector() );
225  bc.myboundary = it->get_master_bcid();
226  bc.pairedboundary = it->get_slave_bcid();
227 
228  dof_map.add_periodic_boundary( bc );
229  }
230 
231  return;
232  }
std::vector< GRINS::PBCContainer > _periodic_bcs
unsigned int _num_periodic_bcs
bool GRINS::BCHandlingBase::is_axisymmetric ( ) const
inlineinherited
void GRINS::BCHandlingBase::read_bc_data ( const GetPot &  input,
const std::string &  id_str,
const std::string &  bc_str,
const std::string &  var_str,
const std::string &  val_str 
)
virtualinherited

Definition at line 73 of file bc_handling_base.C.

References GRINS::BCHandlingBase::init_bc_types(), and GRINS::BCHandlingBase::string_to_int().

Referenced by GRINS::AxisymmetricHeatTransferBCHandling::AxisymmetricHeatTransferBCHandling(), GRINS::HeatTransferBCHandling::HeatTransferBCHandling(), GRINS::IncompressibleNavierStokesBCHandling::IncompressibleNavierStokesBCHandling(), LowMachNavierStokesBCHandling(), GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >::ReactingLowMachNavierStokesBCHandling(), GRINS::SolidMechanicsBCHandling::SolidMechanicsBCHandling(), and GRINS::SpalartAllmarasBCHandling::SpalartAllmarasBCHandling().

77  {
78  int num_ids = input.vector_variable_size(id_str);
79  int num_bcs = input.vector_variable_size(bc_str);
80  // int num_vars = input.vector_variable_size(var_str);
81  // int num_vals = input.vector_variable_size(val_str);
82 
83  if( num_ids != num_bcs )
84  {
85  std::cerr << "Error: Must specify equal number of boundary ids and boundary conditions"
86  << std::endl;
87  libmesh_error();
88  }
89 
90  for( int i = 0; i < num_ids; i++ )
91  {
92  int bc_id = input(id_str, -1, i );
93  std::string bc_type_in = input(bc_str, "NULL", i );
94 
95  int bc_type = this->string_to_int( bc_type_in );
96 
97  std::stringstream ss;
98  ss << bc_id;
99  std::string bc_id_string = ss.str();
100 
101  std::string bc_val = input(val_str, std::string(""), i );
102 
103  std::string bc_vars = input(var_str, std::string(""), i );
104 
105  this->init_bc_types( bc_id, bc_id_string, bc_type, bc_vars, bc_val, input );
106  }
107 
108  return;
109  }
virtual void init_bc_types(const GRINS::BoundaryID bc_id, const std::string &bc_id_string, const int bc_type, const std::string &bc_vars, const std::string &bc_value, const GetPot &input)
virtual int string_to_int(const std::string &bc_type_in) const
void GRINS::BCHandlingBase::set_dirichlet_bc_type ( GRINS::BoundaryID  bc_id,
int  bc_type 
)
inherited

Definition at line 252 of file bc_handling_base.C.

References GRINS::BCHandlingBase::_dirichlet_bc_map.

Referenced by GRINS::AxisymmetricHeatTransferBCHandling::init_bc_types(), GRINS::HeatTransferBCHandling::init_bc_types(), init_bc_types(), GRINS::SpalartAllmarasBCHandling::init_bc_types(), GRINS::IncompressibleNavierStokesBCHandling::init_bc_types(), and GRINS::SolidMechanicsBCHandling::init_bc_types().

253  {
254  _dirichlet_bc_map.push_back( std::make_pair(bc_id, bc_type) );
255  return;
256  }
std::vector< std::pair< BoundaryID, BCType > > _dirichlet_bc_map
Map between boundary id and Dirichlet boundary condition type.
void GRINS::BCHandlingBase::set_dirichlet_bc_value ( GRINS::BoundaryID  bc_id,
libMesh::Real  value,
int  component = 0 
)
inherited

Definition at line 264 of file bc_handling_base.C.

References GRINS::BCHandlingBase::_dirichlet_values.

Referenced by GRINS::AxisymmetricHeatTransferBCHandling::init_bc_types(), GRINS::HeatTransferBCHandling::init_bc_types(), init_bc_types(), GRINS::IncompressibleNavierStokesBCHandling::init_bc_types(), and GRINS::SolidMechanicsBCHandling::init_bc_types().

267  {
268  _dirichlet_values[bc_id](component) = value;
269  return;
270  }
std::map< GRINS::BoundaryID, libMesh::Point > _dirichlet_values
Stash prescribed Dirichlet boundary values.
void GRINS::BCHandlingBase::set_neumann_bc_type ( GRINS::BoundaryID  bc_id,
int  bc_type 
)
inherited

Definition at line 258 of file bc_handling_base.C.

References GRINS::BCHandlingBase::_neumann_bc_map.

Referenced by GRINS::AxisymmetricHeatTransferBCHandling::init_bc_types(), GRINS::HeatTransferBCHandling::init_bc_types(), init_bc_types(), and GRINS::SolidMechanicsBCHandling::init_bc_types().

259  {
260  _neumann_bc_map[bc_id] = bc_type;
261  return;
262  }
std::map< GRINS::BoundaryID, GRINS::BCType > _neumann_bc_map
Map between boundary id and Neumann boundary condition type.
void GRINS::BCHandlingBase::set_neumann_bc_value ( GRINS::BoundaryID  bc_id,
const libMesh::Point &  q_in 
)
inherited

Definition at line 278 of file bc_handling_base.C.

References GRINS::BCHandlingBase::_q_values.

Referenced by GRINS::AxisymmetricHeatTransferBCHandling::init_bc_types(), GRINS::HeatTransferBCHandling::init_bc_types(), init_bc_types(), and GRINS::SolidMechanicsBCHandling::init_bc_types().

279  {
280  _q_values[bc_id] = q_in;
281  }
std::map< GRINS::BoundaryID, libMesh::Point > _q_values
Stash prescribed boundary fluxes.
void GRINS::LowMachNavierStokesBCHandling::set_temp_bc_type ( GRINS::BoundaryID  bc_id,
int  bc_type 
)

Definition at line 476 of file low_mach_navier_stokes_bc_handling.C.

References _temp_bc_map.

Referenced by init_bc_types().

477  {
478  _temp_bc_map.push_back( std::make_pair(bc_id,bc_type) );
479  return;
480  }
std::vector< std::pair< BoundaryID, BCType > > _temp_bc_map
void GRINS::LowMachNavierStokesBCHandling::set_temp_bc_value ( GRINS::BoundaryID  bc_id,
libMesh::Real  value 
)

Definition at line 482 of file low_mach_navier_stokes_bc_handling.C.

References _T_values.

Referenced by init_bc_types().

484  {
485  _T_values[bc_id] = value;
486  return;
487  }
std::map< GRINS::BoundaryID, libMesh::Real > _T_values
int GRINS::LowMachNavierStokesBCHandling::string_to_int ( const std::string &  bc_type_in) const
virtual

Reimplemented from GRINS::BCHandlingBase.

Reimplemented in GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >.

Definition at line 68 of file low_mach_navier_stokes_bc_handling.C.

References ADIABATIC_WALL, GENERAL_HEAT_FLUX, GENERAL_ISOTHERMAL_WALL, GENERAL_VELOCITY, ISOTHERMAL_WALL, NO_SLIP, PARABOLIC_PROFILE, PRESCRIBED_HEAT_FLUX, PRESCRIBED_VELOCITY, GRINS::BCHandlingBase::string_to_int(), ZERO_X_VELOCITY, and ZERO_Y_VELOCITY.

Referenced by GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >::string_to_int().

69  {
70  int bc_type_out;
71 
72  if( bc_type == "no_slip" )
73  bc_type_out = NO_SLIP;
74 
75  else if( bc_type == "zero_x_velocity" )
76  bc_type_out = ZERO_X_VELOCITY;
77 
78  else if( bc_type == "zero_y_velocity" )
79  bc_type_out = ZERO_Y_VELOCITY;
80 
81  else if( bc_type == "parabolic_profile" )
82  bc_type_out = PARABOLIC_PROFILE;
83 
84  else if( bc_type == "prescribed_vel" )
85  bc_type_out = PRESCRIBED_VELOCITY;
86 
87  else if( bc_type == "general_velocity" )
88  bc_type_out = GENERAL_VELOCITY;
89 
90  else if( bc_type == "isothermal" )
91  bc_type_out = ISOTHERMAL_WALL;
92 
93  else if( bc_type == "general_isothermal" )
94  bc_type_out = GENERAL_ISOTHERMAL_WALL;
95 
96  else if( bc_type == "adiabatic" )
97  bc_type_out = ADIABATIC_WALL;
98 
99  else if( bc_type == "prescribed_heat_flux" )
100  bc_type_out = PRESCRIBED_HEAT_FLUX;
101 
102  else if( bc_type == "general_heat_flux" )
103  bc_type_out = GENERAL_HEAT_FLUX;
104 
105  else
106  {
107  // Call base class to detect any physics-common boundary conditions
108  bc_type_out = BCHandlingBase::string_to_int( bc_type );
109  }
110 
111  return bc_type_out;
112  }
virtual int string_to_int(const std::string &bc_type_in) const
void GRINS::BCHandlingBase::user_apply_neumann_bcs ( AssemblyContext context,
const GRINS::CachedValues cache,
const bool  request_jacobian,
const GRINS::BoundaryID  bc_id,
const GRINS::BCType  bc_type 
) const
virtualinherited

Reimplemented in GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >, GRINS::SolidMechanicsBCHandling, GRINS::HeatTransferBCHandling, and GRINS::AxisymmetricHeatTransferBCHandling.

Definition at line 479 of file bc_handling_base.C.

Referenced by GRINS::BCHandlingBase::apply_neumann_bcs().

484  {
485  // Not all Physics need this so we have a do nothing default.
486  return;
487  }
void GRINS::LowMachNavierStokesBCHandling::user_init_dirichlet_bcs ( libMesh::FEMSystem *  system,
libMesh::DofMap &  dof_map,
GRINS::BoundaryID  bc_id,
GRINS::BCType  bc_type 
) const
virtual

Reimplemented from GRINS::BCHandlingBase.

Reimplemented in GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >.

Definition at line 300 of file low_mach_navier_stokes_bc_handling.C.

References _T_var_name, _u_var_name, _v_var_name, _w_var_name, GRINS::BCHandlingBase::AXISYMMETRIC, GENERAL_ISOTHERMAL_WALL, GENERAL_VELOCITY, GRINS::BCHandlingBase::get_dirichlet_bc_value(), get_temp_bc_value(), ISOTHERMAL_WALL, NO_SLIP, PARABOLIC_PROFILE, PRESCRIBED_VELOCITY, ZERO_X_VELOCITY, and ZERO_Y_VELOCITY.

Referenced by init_dirichlet_bcs(), and GRINS::ReactingLowMachNavierStokesBCHandling< Chemistry >::user_init_dirichlet_bcs().

304  {
305  int dim = system->get_mesh().mesh_dimension();
306 
307  VariableIndex T_var = system->variable_number( _T_var_name );
308  VariableIndex u_var = system->variable_number( _u_var_name );
309  VariableIndex v_var = system->variable_number( _v_var_name );
310  VariableIndex w_var = -1;
311  if( dim == 3 )
312  w_var = system->variable_number( _w_var_name );
313 
314  switch( bc_type )
315  {
316  case(ZERO_X_VELOCITY):
317  {
318  std::set<BoundaryID> dbc_ids;
319  dbc_ids.insert(bc_id);
320 
321  std::vector<VariableIndex> dbc_vars;
322  dbc_vars.push_back(u_var);
323 
324  libMesh::ZeroFunction<libMesh::Number> zero;
325 
326  libMesh::DirichletBoundary no_slip_dbc(dbc_ids,
327  dbc_vars,
328  &zero );
329 
330  dof_map.add_dirichlet_boundary( no_slip_dbc );
331  }
332  break;
333  case(ZERO_Y_VELOCITY):
334  {
335  std::set<BoundaryID> dbc_ids;
336  dbc_ids.insert(bc_id);
337 
338  std::vector<VariableIndex> dbc_vars;
339  dbc_vars.push_back(v_var);
340 
341  libMesh::ZeroFunction<libMesh::Number> zero;
342 
343  libMesh::DirichletBoundary no_slip_dbc(dbc_ids,
344  dbc_vars,
345  &zero );
346 
347  dof_map.add_dirichlet_boundary( no_slip_dbc );
348  }
349  break;
350  case(NO_SLIP):
351  {
352  std::set<BoundaryID> dbc_ids;
353  dbc_ids.insert(bc_id);
354 
355  std::vector<VariableIndex> dbc_vars;
356  dbc_vars.push_back(u_var);
357  dbc_vars.push_back(v_var);
358  if(dim == 3)
359  dbc_vars.push_back(w_var);
360 
361  libMesh::ZeroFunction<libMesh::Number> zero;
362 
363  libMesh::DirichletBoundary no_slip_dbc(dbc_ids,
364  dbc_vars,
365  &zero );
366 
367  dof_map.add_dirichlet_boundary( no_slip_dbc );
368  }
369  break;
370  case(PRESCRIBED_VELOCITY):
371  {
372  std::set<BoundaryID> dbc_ids;
373  dbc_ids.insert(bc_id);
374 
375  std::vector<VariableIndex> dbc_vars;
376 
377  // This is inefficient, but it shouldn't matter because
378  // everything gets cached on the libMesh side so it should
379  // only affect performance at startup.
380  {
381  dbc_vars.push_back(u_var);
382  libMesh::ConstFunction<libMesh::Number>
383  vel_func( this->get_dirichlet_bc_value(bc_id,0) );
384 
385  libMesh::DirichletBoundary vel_dbc(dbc_ids,
386  dbc_vars,
387  &vel_func );
388 
389  dof_map.add_dirichlet_boundary( vel_dbc );
390  dbc_vars.clear();
391  }
392 
393  {
394  dbc_vars.push_back(v_var);
395  libMesh::ConstFunction<libMesh::Number>
396  vel_func( this->get_dirichlet_bc_value(bc_id,1) );
397 
398  libMesh::DirichletBoundary vel_dbc(dbc_ids,
399  dbc_vars,
400  &vel_func );
401 
402  dof_map.add_dirichlet_boundary( vel_dbc );
403  dbc_vars.clear();
404  }
405  if( dim == 3 )
406  {
407  dbc_vars.push_back(w_var);
408  libMesh::ConstFunction<libMesh::Number>
409  vel_func( this->get_dirichlet_bc_value(bc_id,2) );
410 
411  libMesh::DirichletBoundary vel_dbc(dbc_ids,
412  dbc_vars,
413  &vel_func );
414 
415  dof_map.add_dirichlet_boundary( vel_dbc );
416  }
417  }
418  break;
419  case(PARABOLIC_PROFILE):
420  // This case is handled init_dirichlet_bc_func_objs
421  break;
422 
423  case(GENERAL_VELOCITY):
424  // This case is handled in the BoundaryConditionFactory classes.
425  break;
426 
427  case(ISOTHERMAL_WALL):
428  {
429  std::set<BoundaryID> dbc_ids;
430  dbc_ids.insert(bc_id);
431 
432  std::vector<VariableIndex> dbc_vars;
433  dbc_vars.push_back(T_var);
434 
435  libMesh::ConstFunction<libMesh::Number>
436  t_func(this->get_temp_bc_value(bc_id));
437 
438  libMesh::DirichletBoundary t_dbc( dbc_ids, dbc_vars, &t_func );
439 
440  dof_map.add_dirichlet_boundary( t_dbc );
441  }
442  break;
444  // This case is handled in the BoundaryConditionFactory classes.
445  break;
446 
447  case(AXISYMMETRIC):
448  {
449  std::set<BoundaryID> dbc_ids;
450  dbc_ids.insert(bc_id);
451 
452  std::vector<VariableIndex> dbc_vars;
453  dbc_vars.push_back(u_var);
454 
455  libMesh::ZeroFunction<libMesh::Number> zero;
456 
457  libMesh::DirichletBoundary no_slip_dbc( dbc_ids,
458  dbc_vars,
459  &zero );
460 
461  dof_map.add_dirichlet_boundary( no_slip_dbc );
462  }
463  break;
464 
465  default:
466  {
467  std::cerr << "Invalid BCType " << bc_type << std::endl;
468  libmesh_error();
469  }
470 
471  }// end switch
472 
473  return;
474  }
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
Definition: var_typedefs.h:40
libMesh::Real get_temp_bc_value(GRINS::BoundaryID bc_id) const
libMesh::Real get_dirichlet_bc_value(GRINS::BoundaryID bc_id, int component=0) const

Member Data Documentation

bool GRINS::BCHandlingBase::_axisymmetric = false
staticprotectedinherited

Flag to cache whether or not there is an axisymmetric boundary present.

Definition at line 170 of file bc_handling_base.h.

Referenced by GRINS::BCHandlingBase::is_axisymmetric(), and GRINS::BCHandlingBase::string_to_int().

GRINS::BoundaryConditions GRINS::BCHandlingBase::_bound_conds
protectedinherited

Object that stashes generic boundary condition types.

Todo:
Move this so that only one object is needed. Perhaps make static?

Definition at line 156 of file bc_handling_base.h.

Referenced by GRINS::AxisymmetricHeatTransferBCHandling::user_apply_neumann_bcs(), GRINS::HeatTransferBCHandling::user_apply_neumann_bcs(), and GRINS::SolidMechanicsBCHandling::user_apply_neumann_bcs().

std::vector<std::pair<BoundaryID,BCType> > GRINS::BCHandlingBase::_dirichlet_bc_map
protectedinherited

Map between boundary id and Dirichlet boundary condition type.

We need to keep this around because the libMesh::DirichletBoundary objects can't be created until we init the variables. We use a vector of pairs so that the boundary condition functors get added to the libMesh::DofMap in the same order as in the input file.

Definition at line 137 of file bc_handling_base.h.

Referenced by GRINS::BCHandlingBase::get_dirichlet_bc_type(), init_dirichlet_bcs(), GRINS::BCHandlingBase::init_dirichlet_bcs(), and GRINS::BCHandlingBase::set_dirichlet_bc_type().

std::vector< GRINS::DBCContainer > GRINS::BCHandlingBase::_dirichlet_bound_funcs
protectedinherited
std::map< GRINS::BoundaryID, libMesh::Point > GRINS::BCHandlingBase::_dirichlet_values
protectedinherited

Stash prescribed Dirichlet boundary values.

Definition at line 143 of file bc_handling_base.h.

Referenced by GRINS::BCHandlingBase::set_dirichlet_bc_value().

std::map< GRINS::BoundaryID, GRINS::BCType> GRINS::BCHandlingBase::_neumann_bc_map
protectedinherited

Map between boundary id and Neumann boundary condition type.

Definition at line 140 of file bc_handling_base.h.

Referenced by GRINS::BCHandlingBase::apply_neumann_bcs(), and GRINS::BCHandlingBase::set_neumann_bc_type().

std::map< GRINS::BoundaryID, GRINS::NBCContainer > GRINS::BCHandlingBase::_neumann_bound_funcs
protectedinherited
unsigned int GRINS::BCHandlingBase::_num_periodic_bcs
protectedinherited
std::vector< GRINS::PBCContainer > GRINS::BCHandlingBase::_periodic_bcs
protectedinherited
std::string GRINS::BCHandlingBase::_physics_name
protectedinherited
std::map< GRINS::BoundaryID, libMesh::Point > GRINS::BCHandlingBase::_q_values
protectedinherited

Stash prescribed boundary fluxes.

Definition at line 146 of file bc_handling_base.h.

Referenced by GRINS::BCHandlingBase::get_neumann_bc_value(), and GRINS::BCHandlingBase::set_neumann_bc_value().

std::map< GRINS::BoundaryID, libMesh::Real > GRINS::LowMachNavierStokesBCHandling::_T_values
protected

Definition at line 70 of file low_mach_navier_stokes_bc_handling.h.

Referenced by get_temp_bc_value(), and set_temp_bc_value().

GRINS::VariableIndex GRINS::LowMachNavierStokesBCHandling::_T_var
protected

Definition at line 67 of file low_mach_navier_stokes_bc_handling.h.

Referenced by init_bc_data().

std::string GRINS::LowMachNavierStokesBCHandling::_T_var_name
protected

Definition at line 65 of file low_mach_navier_stokes_bc_handling.h.

Referenced by init_bc_data(), and user_init_dirichlet_bcs().

std::vector<std::pair<BoundaryID,BCType> > GRINS::LowMachNavierStokesBCHandling::_temp_bc_map
protected

Definition at line 73 of file low_mach_navier_stokes_bc_handling.h.

Referenced by init_dirichlet_bcs(), and set_temp_bc_type().

std::string GRINS::LowMachNavierStokesBCHandling::_u_var_name
protected

Definition at line 65 of file low_mach_navier_stokes_bc_handling.h.

Referenced by user_init_dirichlet_bcs().

std::string GRINS::LowMachNavierStokesBCHandling::_v_var_name
protected

Definition at line 65 of file low_mach_navier_stokes_bc_handling.h.

Referenced by user_init_dirichlet_bcs().

std::string GRINS::LowMachNavierStokesBCHandling::_w_var_name
protected

Definition at line 65 of file low_mach_navier_stokes_bc_handling.h.

Referenced by user_init_dirichlet_bcs().


The documentation for this class was generated from the following files:

Generated on Mon Jun 22 2015 21:32:23 for GRINS-0.6.0 by  doxygen 1.8.9.1