GRINS-0.8.0
neumann_bc_factory_abstract.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // GRINS - General Reacting Incompressible Navier-Stokes
5 //
6 // Copyright (C) 2014-2017 Paul T. Bauman, Roy H. Stogner
7 // Copyright (C) 2010-2013 The PECOS Development Team
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the Version 2.1 GNU Lesser General
11 // Public License as published by the Free Software Foundation.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
21 // Boston, MA 02110-1301 USA
22 //
23 //-----------------------------------------------------------------------el-
24 
25 #ifndef GRINS_NEUMANN_BC_FACTORY_ABSTRACT_H
26 #define GRINS_NEUMANN_BC_FACTORY_ABSTRACT_H
27 
28 // GRINS
31 
32 namespace GRINS
33 {
34  // According to the standard, we need declarations of all
35  // specializations which precede any automatic instantiations.
38  template<> const std::set<BoundaryID>* BCFactoryAbstract<NeumannBCContainer>::_bc_ids;
41 
42  class NeumannBCFactoryAbstract : public BCFactoryAbstract<NeumannBCContainer>
43  {
44  public:
45  NeumannBCFactoryAbstract( const std::string& bc_type_name )
46  : BCFactoryAbstract<NeumannBCContainer>(bc_type_name),
47  _is_homogeneous(false)
48  {}
49 
51 
53 
66  virtual libMesh::UniquePtr<NeumannBCContainer> create();
67 
68  protected:
69 
71 
75 
77 
86  virtual SharedPtr<NeumannBCAbstract>
87  build_neumann_func( const GetPot& input,
88  MultiphysicsSystem& system,
89  const FEVariablesBase& fe_var,
90  const std::string& section ) =0;
91 
93 
97  void check_for_flux( const GetPot& input, const std::string& section,
98  const std::vector<std::string>& var_names );
99 
100  };
101 
102 } // end namespace GRINS
103 
104 #endif // GRINS_NEUMANN_BC_FACTORY_ABSTRACT_H
GRINS namespace.
NeumannBCFactoryAbstract(const std::string &bc_type_name)
bool _is_homogeneous
Track if this is a homogeneous Neumann boundary condition.
virtual libMesh::UniquePtr< NeumannBCContainer > create()
Creates NeumannBCContainer for this Factory object.
virtual SharedPtr< NeumannBCAbstract > build_neumann_func(const GetPot &input, MultiphysicsSystem &system, const FEVariablesBase &fe_var, const std::string &section)=0
Builds the NeumannBCAbstract object for Neumann boundary conditions.
void check_for_flux(const GetPot &input, const std::string &section, const std::vector< std::string > &var_names)
Checks that the flux variable has been set.
Interface with libMesh for solving Multiphysics problems.
Abstract factory that provides availability of GetPot.

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