GRINS-0.6.0
concentric_cylinder_profile.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // GRINS - General Reacting Incompressible Navier-Stokes
5 //
6 // Copyright (C) 2014-2015 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 CONCENTRIC_CYLINDER_PROFILE_H
26 #define CONCENTRIC_CYLINDER_PROFILE_H
27 
28 // GRINS
29 #include "grins/var_typedefs.h"
30 
31 // libMesh
32 #include "libmesh/function_base.h"
33 
34 namespace GRINS
35 {
36 
38 
47  class ConcentricCylinderProfile : public libMesh::FunctionBase<libMesh::Number>
48  {
49  public:
50 
52 
56 
57  ConcentricCylinderProfile( const double u0, const double r0, const double r1 );
58 
59  virtual ~ConcentricCylinderProfile( );
60 
61  virtual libMesh::AutoPtr< libMesh::FunctionBase<libMesh::Number> > clone() const;
62 
63  virtual libMesh::Number operator()( const libMesh::Point& p, const libMesh::Real time );
64 
65  virtual void operator()( const libMesh::Point& p,
66  const libMesh::Real time,
67  libMesh::DenseVector<libMesh::Number>& output );
68 
69  virtual libMesh::Number component( unsigned int i, const libMesh::Point& p,
70  const libMesh::Real time );
71 
72  protected:
73 
74  inline
75  double eval( const double u0, const double r0,
76  const double r1, const double r )
77  {
78  return u0*std::log(r1/r)/std::log(r1/r0);
79  };
80 
82  double _u0, _r0, _r1;
83 
84  }; // class ConcentricCylinderProfile
85 
86 } // namespace GRINS
87 
88 #endif // CONCENTRIC_CYLINDER_H
GRINS namespace.
Profile for flow between axially moving concentric cylinders.
virtual libMesh::Number operator()(const libMesh::Point &p, const libMesh::Real time)
double _u0
Coefficients defining parabola.
virtual libMesh::Number component(unsigned int i, const libMesh::Point &p, const libMesh::Real time)
double eval(const double u0, const double r0, const double r1, const double r)
virtual libMesh::AutoPtr< libMesh::FunctionBase< libMesh::Number > > clone() const

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