GRINS-0.8.0
List of all members | Public Member Functions | Protected Member Functions
GRINS::XZSymmetryBCFactory Class Reference

Pins y-component of variable (symmetry about xz-plane) More...

#include <symmetry_type_bc_factories.h>

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

Public Member Functions

 XZSymmetryBCFactory (const std::string &bc_type_name)
 

Protected Member Functions

virtual void trim_var_names (std::vector< std::string > &var_names)
 Trim out the variables that are pinned. More...
 

Additional Inherited Members

- Private Member Functions inherited from GRINS::SymmetryTypeBCFactories
 SymmetryTypeBCFactories (const std::string &bc_type_name)
 
 ~SymmetryTypeBCFactories ()
 
virtual libMesh::UniquePtr< libMesh::FunctionBase< libMesh::Number > > build_func (const GetPot &, MultiphysicsSystem &, std::vector< std::string > &var_names, const std::string &)
 All the variables are 0, so just return 0 function. More...
 
- Private Member Functions inherited from GRINS::DirichletBCFactoryFunctionBase< libMesh::FunctionBase< libMesh::Number > >
 DirichletBCFactoryFunctionBase (const std::string &bc_type_name)
 
 ~DirichletBCFactoryFunctionBase ()
 
libMesh::UniquePtr< libMesh::DirichletBoundary > make_dirichlet_boundary (const std::set< BoundaryID > &bc_ids, const libMesh::System &system, libMesh::UniquePtr< libMesh::FunctionBase< libMesh::Number > > &func, const std::vector< VariableIndex > &var_indices)
 Dispatch, based on FunctionType, to the correct DirchletBoundary construction. More...
 
virtual const std::vector< std::string > & get_var_names () const
 Helper function that can be overridded in subclasses. More...
 
- Private Member Functions inherited from GRINS::DirichletBCFactoryAbstract
 DirichletBCFactoryAbstract (const std::string &bc_type_name)
 
 ~DirichletBCFactoryAbstract ()
 
void check_for_vars (const GetPot &input, const std::string &section, const std::vector< std::string > &var_names, std::set< std::string > *vars_found=NULL)
 Helper function. More...
 
- Private Member Functions inherited from GRINS::BCFactoryAbstract< libMesh::DirichletBoundary >
 BCFactoryAbstract (const std::string &bc_type_name)
 
 ~BCFactoryAbstract ()
 
void check_for_multiple_expressions (const GetPot &input, const std::string &section, const std::string &var_name) const
 Ensure that there is only one expression for the [Section/var_name] variable. More...
 
void build_var_indices (const MultiphysicsSystem &system, const std::vector< std::string > &var_names, std::vector< VariableIndex > &var_indices) const
 
virtual void check_state () const
 Helper function to reduce code duplication. More...
 
virtual void reset_state ()
 Helper function to redue code duplication. More...
 
- Private Member Functions inherited from GRINS::FactoryWithGetPot< libMesh::DirichletBoundary >
 FactoryWithGetPot (const std::string &name)
 
 ~FactoryWithGetPot ()
 
- Private Member Functions inherited from GRINS::FactoryAbstract< libMesh::DirichletBoundary >
virtual ~FactoryAbstract ()
 
 FactoryAbstract (const std::string &name)
 Constructor is protected. Use the build() method to construct Base objects. More...
 
- Static Private Member Functions inherited from GRINS::BCFactoryAbstract< libMesh::DirichletBoundary >
static void set_system (MultiphysicsSystem &system)
 
static void set_bc_ids (const std::set< BoundaryID > &bc_ids)
 Boundary id for the current boundary condition section. More...
 
static void set_fe_var (const FEVariablesBase &fe_var)
 Active variable for the current boundary condition. More...
 
static void set_section (const std::string &section)
 Sets the current section of the input file. More...
 
static bool have_bc_type (const std::string &bc_type)
 
- Static Private Member Functions inherited from GRINS::FactoryWithGetPot< libMesh::DirichletBoundary >
static void set_getpot (const GetPot &input)
 
- Static Private Member Functions inherited from GRINS::FactoryAbstract< libMesh::DirichletBoundary >
static libMesh::UniquePtr< libMesh::DirichletBoundary > build (const std::string &name)
 Use this method to build objects of type Base. More...
 
static FactoryAbstract< libMesh::DirichletBoundary > & get_factory (const std::string &name)
 Helper method that looks up the factory and returns it if present, or error if it's not. More...
 
static DerivedType & get_factory_subclass (const std::string &name)
 Like get_factory, but will downcast to DerivedType. More...
 
static std::map< std::string, FactoryAbstract< libMesh::DirichletBoundary > * > & factory_map ()
 
- Static Private Attributes inherited from GRINS::BCFactoryAbstract< libMesh::DirichletBoundary >
static MultiphysicsSystem_system
 We store only a raw pointer here because we can't make a copy. More...
 
static const std::set< BoundaryID > * _bc_ids
 BoundaryID for constructing a particular boundary condition. More...
 
static const FEVariablesBase_fe_var
 The FEVariablesBase class associated with the boundary condition being built. More...
 
static std::string _section
 
- Static Private Attributes inherited from GRINS::FactoryWithGetPot< libMesh::DirichletBoundary >
static const GetPot * _input
 We store only a raw pointer here because we can't make a copy. More...
 

Detailed Description

Pins y-component of variable (symmetry about xz-plane)

Definition at line 91 of file symmetry_type_bc_factories.h.

Constructor & Destructor Documentation

GRINS::XZSymmetryBCFactory::XZSymmetryBCFactory ( const std::string &  bc_type_name)
inline

Definition at line 94 of file symmetry_type_bc_factories.h.

95  : SymmetryTypeBCFactories(bc_type_name)
96  {}
SymmetryTypeBCFactories(const std::string &bc_type_name)

Member Function Documentation

virtual void GRINS::XZSymmetryBCFactory::trim_var_names ( std::vector< std::string > &  var_names)
inlineprotectedvirtual

Trim out the variables that are pinned.

Symmetry-type boundary conditions amount to pinning a subset of the group of variables, e.g. Velocity or Displacement. Subclasses merely implement this method and remove the variables from var_names that DON'T need to be pinned.

Implements GRINS::SymmetryTypeBCFactories.

Definition at line 99 of file symmetry_type_bc_factories.h.

100  {
101  if( var_names.size() < 2 )
102  libmesh_error_msg("ERROR: XZSymmetry requires at least 2 components in the Variable!");
103 
104  // We want to pin the y-component, so remove the z-component if it's there
105  if( var_names.size() == 3 )
106  var_names.pop_back();
107 
108  // Now remove x-component
109  var_names.erase(var_names.begin());
110 
111  libmesh_assert_equal_to(var_names.size(), 1);
112  }

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

Generated on Tue Dec 19 2017 12:47:32 for GRINS-0.8.0 by  doxygen 1.8.9.1