GRINS-0.8.0
velocity_penalty_base.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 
26 #ifndef GRINS_VELOCITY_PENALTY_BASE_H
27 #define GRINS_VELOCITY_PENALTY_BASE_H
28 
29 // GRINS
30 #include "grins_config.h"
32 
33 // libMesh
34 #include "libmesh/fem_function_base.h"
35 #include "libmesh/getpot.h"
36 #include "libmesh/tensor_value.h"
37 
38 // C++
39 #include <string>
40 
41 namespace GRINS
42 {
43 
44  template<class Viscosity>
46  {
47  public:
48 
49  VelocityPenaltyBase( const std::string& physics_name, const GetPot& input );
50 
52 
53  // Hack to read ParsedFEMFunction options after System init
54  void set_time_evolving_vars (libMesh::FEMSystem* system);
55 
56  bool compute_force ( const libMesh::Point& point,
57  const AssemblyContext& context,
58  const libMesh::NumberVectorValue& U,
59  libMesh::NumberVectorValue& F,
60  libMesh::NumberTensorValue *dFdU = NULL);
61 
62  protected:
63 
64  std::string base_physics_name;
65 
67 
68  libMesh::UniquePtr<libMesh::FEMFunctionBase<libMesh::Number> >
70 
71  libMesh::UniquePtr<libMesh::FEMFunctionBase<libMesh::Number> >
73 
74  private:
75 
76  const GetPot & _input;
77 
79 
81  void read_input_options( const GetPot& input );
82  };
83 
84 } // end namespace block
85 
86 #endif // GRINS_VELOCITY_PENALTY_BASE_H
Physics class for Incompressible Navier-Stokes.
bool compute_force(const libMesh::Point &point, const AssemblyContext &context, const libMesh::NumberVectorValue &U, libMesh::NumberVectorValue &F, libMesh::NumberTensorValue *dFdU=NULL)
libMesh::UniquePtr< libMesh::FEMFunctionBase< libMesh::Number > > base_velocity_function
GRINS namespace.
libMesh::UniquePtr< libMesh::FEMFunctionBase< libMesh::Number > > normal_vector_function
void read_input_options(const GetPot &input)
Read options from GetPot input file.
void set_time_evolving_vars(libMesh::FEMSystem *system)
Sets velocity variables to be time-evolving.

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