GRINS-0.7.0
List of all members | Public Member Functions | Protected Attributes | Private Member Functions
GRINS::SpalartAllmarasViscosity< Viscosity > Class Template Reference

#include <spalart_allmaras_viscosity.h>

Inheritance diagram for GRINS::SpalartAllmarasViscosity< Viscosity >:
Inheritance graph
[legend]
Collaboration diagram for GRINS::SpalartAllmarasViscosity< Viscosity >:
Collaboration graph
[legend]

Public Member Functions

 SpalartAllmarasViscosity (const GetPot &input, const std::string &material)
 Constructor with specified material. More...
 
 SpalartAllmarasViscosity (const GetPot &input)
 Deprecated constructor. More...
 
 ~SpalartAllmarasViscosity ()
 
libMesh::Real operator() (AssemblyContext &context, unsigned int qp) const
 
libMesh::Real operator() (const libMesh::Point &p, const libMesh::Real time=0)
 
void init (libMesh::FEMSystem *system)
 
virtual void register_parameter (const std::string &param_name, libMesh::ParameterMultiAccessor< libMesh::Number > &param_pointer) const
 Each subclass will register its copy of an independent. More...
 
- Public Member Functions inherited from GRINS::ParameterUser
 ParameterUser (const std::string &user_name)
 
virtual ~ParameterUser ()
 
virtual void set_parameter (libMesh::Number &param_variable, const GetPot &input, const std::string &param_name, libMesh::Number param_default)
 Each subclass can simultaneously read a parameter value from. More...
 
virtual void set_parameter (libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &func, const GetPot &input, const std::string &func_param_name, const std::string &param_default)
 Each subclass can simultaneously read a parsed function from. More...
 
virtual void set_parameter (libMesh::ParsedFEMFunction< libMesh::Number > &func, const GetPot &input, const std::string &func_param_name, const std::string &param_default)
 Each subclass can simultaneously read a parsed function from. More...
 
virtual void move_parameter (const libMesh::Number &old_parameter, libMesh::Number &new_parameter)
 When cloning an object, we need to update parameter pointers. More...
 
virtual void move_parameter (const libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &old_func, libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &new_func)
 When cloning an object, we need to update parameter pointers. More...
 
virtual void move_parameter (const libMesh::ParsedFEMFunction< libMesh::Number > &old_func, libMesh::ParsedFEMFunction< libMesh::Number > &new_func)
 When cloning an object, we need to update parameter pointers. More...
 

Protected Attributes

Viscosity _mu
 Viscosity object (so we have access to the physical viscosity) More...
 
TurbulenceFEVariables _turbulence_vars
 
SpalartAllmarasParameters _sa_params
 

Private Member Functions

 SpalartAllmarasViscosity ()
 

Additional Inherited Members

- Static Public Attributes inherited from GRINS::ParameterUser
static std::string zero_vector_function = std::string("{0}")
 A parseable function string with LIBMESH_DIM components, all 0. More...
 

Detailed Description

template<class Viscosity>
class GRINS::SpalartAllmarasViscosity< Viscosity >

Definition at line 52 of file spalart_allmaras_viscosity.h.

Constructor & Destructor Documentation

template<class Mu >
GRINS::SpalartAllmarasViscosity< Mu >::SpalartAllmarasViscosity ( const GetPot &  input,
const std::string &  material 
)

Constructor with specified material.

Definition at line 56 of file spalart_allmaras_viscosity.C.

56  :
57  ParameterUser("SpalartAllmarasViscosity"),
58  _mu(input,material),
60  _sa_params(input)
61  {}
static PhysicsName spalart_allmaras()
ParameterUser(const std::string &user_name)
Viscosity _mu
Viscosity object (so we have access to the physical viscosity)
template<class Mu >
GRINS::SpalartAllmarasViscosity< Mu >::SpalartAllmarasViscosity ( const GetPot &  input)

Deprecated constructor.

Definition at line 33 of file spalart_allmaras_viscosity.C.

References grins_warning.

33  :
34  ParameterUser("SpalartAllmarasViscosity"),
35  _mu(input),
37  _sa_params(input)
38  {
39  // Warning about this constructor being deprecated
40  {
41  std::string warning = "WARNING: Use of this constructor is DEPRECATED.\n";
42  warning += " Please update to use constructor with input material name.\n";
43  grins_warning(warning);
44  }
45 
46  if( !input.have_variable("Materials/Viscosity/mu") )
47  {
48  std::cerr<<"No viscosity has been specified."<<std::endl;
49 
50  libmesh_error();
51  }
52  return;
53  }
static PhysicsName spalart_allmaras()
#define grins_warning(message)
Definition: common.h:34
ParameterUser(const std::string &user_name)
Viscosity _mu
Viscosity object (so we have access to the physical viscosity)
template<class Viscosity >
GRINS::SpalartAllmarasViscosity< Viscosity >::~SpalartAllmarasViscosity ( )
inline

Definition at line 61 of file spalart_allmaras_viscosity.h.

61 {};
template<class Viscosity >
GRINS::SpalartAllmarasViscosity< Viscosity >::SpalartAllmarasViscosity ( )
private

Member Function Documentation

template<class Mu >
void GRINS::SpalartAllmarasViscosity< Mu >::init ( libMesh::FEMSystem *  system)

Definition at line 75 of file spalart_allmaras_viscosity.C.

76  {
77  this->_turbulence_vars.init(system);
78  }
virtual void init(libMesh::FEMSystem *system)
Add variables to the system.
template<class Mu >
libMesh::Real GRINS::SpalartAllmarasViscosity< Mu >::operator() ( AssemblyContext context,
unsigned int  qp 
) const

Definition at line 81 of file spalart_allmaras_viscosity.C.

82  {
83  // The physical viscosity
84  libMesh::Real mu_physical = this->_mu(context, qp);
85 
86  // The unscaled turbulent viscosity (the nu the SA physics solves for)
87  libMesh::Real nu = context.interior_value(this->_turbulence_vars.nu(),qp);
88 
89  // Assert that mu_value is greater than 0
90  if(nu < 0.0)
91  {
92  libmesh_warning("Negative turbulent viscosity encountered !");
93 
94  // We are using a negative S-A model, so will set eddy viscosity to zero
95  // if the turbulent viscosity nu < 0.0
96  nu = 0.0;
97  }
98 
99  // Step 1
100  libMesh::Real chi = nu/mu_physical;
101 
102  // Step 2
103  libMesh::Real fv1 = _sa_params.fv1(chi);
104 
105  // Step 3
106  libMesh::Real mu_turbulent = nu*fv1;
107 
108  // Compute the value of the total viscosity and return it
109  libMesh::Number mu_value = mu_turbulent + mu_physical; // Turbulent viscosity + physical viscosity
110 
111  return mu_value;
112  }
Viscosity _mu
Viscosity object (so we have access to the physical viscosity)
libMesh::Real fv1(libMesh::Real chi) const
Helper function.
template<class Viscosity >
libMesh::Real GRINS::SpalartAllmarasViscosity< Viscosity >::operator() ( const libMesh::Point &  p,
const libMesh::Real  time = 0 
)
inline

Definition at line 65 of file spalart_allmaras_viscosity.h.

References GRINS::SpalartAllmarasViscosity< Viscosity >::_mu.

66  { return _mu(p,time); }
Viscosity _mu
Viscosity object (so we have access to the physical viscosity)
template<class Mu >
void GRINS::SpalartAllmarasViscosity< Mu >::register_parameter ( const std::string &  param_name,
libMesh::ParameterMultiAccessor< libMesh::Number > &  param_pointer 
) const
virtual

Each subclass will register its copy of an independent.

Reimplemented from GRINS::ParameterUser.

Definition at line 65 of file spalart_allmaras_viscosity.C.

References GRINS::ParameterUser::register_parameter().

68  {
69  ParameterUser::register_parameter(param_name, param_pointer);
70  this->_mu.register_parameter(param_name, param_pointer);
71  this->_sa_params.register_parameter(param_name, param_pointer);
72  }
Viscosity _mu
Viscosity object (so we have access to the physical viscosity)
virtual void register_parameter(const std::string &param_name, libMesh::ParameterMultiAccessor< libMesh::Number > &param_pointer) const
Each subclass will register its copy of an independent.

Member Data Documentation

template<class Viscosity >
Viscosity GRINS::SpalartAllmarasViscosity< Viscosity >::_mu
protected

Viscosity object (so we have access to the physical viscosity)

Definition at line 80 of file spalart_allmaras_viscosity.h.

Referenced by GRINS::SpalartAllmarasViscosity< Viscosity >::operator()().

template<class Viscosity >
SpalartAllmarasParameters GRINS::SpalartAllmarasViscosity< Viscosity >::_sa_params
protected

Definition at line 85 of file spalart_allmaras_viscosity.h.

template<class Viscosity >
TurbulenceFEVariables GRINS::SpalartAllmarasViscosity< Viscosity >::_turbulence_vars
protected

Definition at line 83 of file spalart_allmaras_viscosity.h.


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

Generated on Thu Jun 2 2016 21:52:32 for GRINS-0.7.0 by  doxygen 1.8.10