GRINS-0.6.0
Public Member Functions | Private Attributes | List of all members
GRINS::ThermallyDrivenFlowTestBCFactory Class Reference
Inheritance diagram for GRINS::ThermallyDrivenFlowTestBCFactory:
Inheritance graph
[legend]
Collaboration diagram for GRINS::ThermallyDrivenFlowTestBCFactory:
Collaboration graph
[legend]

Public Member Functions

 ThermallyDrivenFlowTestBCFactory (const GetPot &input)
 
virtual ~ThermallyDrivenFlowTestBCFactory ()
 
virtual std::map< GRINS::PhysicsName, GRINS::NBCContainerbuild_neumann (libMesh::EquationSystems &equation_system)
 Builds all Neumann boundary condition function objects needed. More...
 
virtual std::multimap< GRINS::PhysicsName, GRINS::DBCContainerbuild_dirichlet ()
 Builds all required libMesh::DirichletBoundary objects and adds them to DofMap. More...
 

Private Attributes

const GetPot & _input
 

Detailed Description

Definition at line 46 of file test_thermally_driven_flow.C.

Constructor & Destructor Documentation

GRINS::ThermallyDrivenFlowTestBCFactory::ThermallyDrivenFlowTestBCFactory ( const GetPot &  input)
inline

Definition at line 49 of file test_thermally_driven_flow.C.

virtual GRINS::ThermallyDrivenFlowTestBCFactory::~ThermallyDrivenFlowTestBCFactory ( )
inlinevirtual

Definition at line 50 of file test_thermally_driven_flow.C.

50 {};

Member Function Documentation

std::multimap< PhysicsName, DBCContainer > GRINS::BoundaryConditionsFactory::build_dirichlet ( )
virtualinherited

Builds all required libMesh::DirichletBoundary objects and adds them to DofMap.

This needs to be done for all the physics in the simulation, for all "special" dirichlet boundary conditions.

Reimplemented in TurbulentBCFactory, AxiConCylBCFactory, ParabolicBCFactory, AxiParabolicBCFactory, ParabolicBCFactory, ParabolicBCFactory, and ParabolicBCFactory.

Definition at line 53 of file bc_factory.C.

54  {
55  return std::multimap< PhysicsName, DBCContainer >();
56  }
std::map< GRINS::PhysicsName, GRINS::NBCContainer > GRINS::ThermallyDrivenFlowTestBCFactory::build_neumann ( libMesh::EquationSystems &  equation_system)
virtual

Builds all Neumann boundary condition function objects needed.

This is done for each physics. Thus, the container returned maps between each physics and set of Neumann boundary conditions for that physics.

Reimplemented from GRINS::BoundaryConditionsFactory.

Definition at line 201 of file test_thermally_driven_flow.C.

References _input, GRINS::NBCContainer::add_var_func_pair(), and GRINS::NBCContainer::set_bc_id().

202 {
203  std::map< std::string, GRINS::NBCContainer > nbcs;
204 
205  /* Hack to work around the fact that we're using this test for the axisymmetric
206  case as well the fact I'm and idiot in the design of the axisymmetric cases. */
207  if( _input("Physics/enabled_physics", "DIE!", 1) != std::string("HeatTransfer") )
208  {
209  // Do nothing.
210  }
211  else
212  {
213  // These are hardcoded for the 2D and 3D tests, *not* the axisymmetric test.
214  const libMesh::System& system = es.get_system("GRINS");
215  const GRINS::VariableIndex T_var = system.variable_number("T");
216 
217  std::tr1::shared_ptr<GRINS::NeumannFuncObj> func( new ZeroFluxBC );
218 
219  GRINS::NBCContainer nbc_container;
220  nbc_container.set_bc_id(0);
221  nbc_container.add_var_func_pair( T_var, func );
222 
223 
224  nbcs.insert( std::pair< std::string, GRINS::NBCContainer >( "HeatTransfer", nbc_container ) );
225  }
226 
227  return nbcs;
228 }
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
Definition: var_typedefs.h:40
void add_var_func_pair(VariableIndex var, std::tr1::shared_ptr< NeumannFuncObj > func)
Add boundary id and corresponding functor object to be applied on that boundary.
Definition: nbc_container.C:51
Simple helper class to setup general Neumann boundary conditions.
Definition: nbc_container.h:41
void set_bc_id(BoundaryID bc_id)
Add variable for which this boundary condition is to be applied.
Definition: nbc_container.C:40

Member Data Documentation

const GetPot& GRINS::ThermallyDrivenFlowTestBCFactory::_input
private

Definition at line 54 of file test_thermally_driven_flow.C.

Referenced by build_neumann().


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

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