GRINS-0.6.0
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
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)
 
 ~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 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 register_parameter (const std::string &param_name, libMesh::ParameterMultiPointer< libMesh::Number > &param_pointer) const
 Each subclass will register its copy of an independent. 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 ()
 

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)

Definition at line 32 of file spalart_allmaras_viscosity.C.

32  :
33  ParameterUser("SpalartAllmarasViscosity"),
34  _mu(input),
36  _sa_params(input)
37  {
38  if( !input.have_variable("Materials/Viscosity/mu") )
39  {
40  std::cerr<<"No viscosity has been specified."<<std::endl;
41 
42  libmesh_error();
43  }
44  return;
45  }
const PhysicsName spalart_allmaras
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 57 of file spalart_allmaras_viscosity.h.

57 {};
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 48 of file spalart_allmaras_viscosity.C.

49  {
50  this->_turbulence_vars.init(system);
51  }
virtual void init(libMesh::FEMSystem *system)
template<class Mu >
libMesh::Real GRINS::SpalartAllmarasViscosity< Mu >::operator() ( AssemblyContext context,
unsigned int  qp 
) const

Definition at line 54 of file spalart_allmaras_viscosity.C.

55  {
56  // The physical viscosity
57  libMesh::Real mu_physical = this->_mu(context, qp);
58 
59  // The unscaled turbulent viscosity (the nu the SA physics solves for)
60  libMesh::Real nu = context.interior_value(this->_turbulence_vars.nu_var(),qp);
61 
62  // Assert that mu_value is greater than 0
63  if(nu < 0.0)
64  {
65  libmesh_warning("Negative turbulent viscosity encountered !");
66 
67  // We are using a negative S-A model, so will set eddy viscosity to zero
68  // if the turbulent viscosity nu < 0.0
69  nu = 0.0;
70  }
71 
72  // Step 1
73  libMesh::Real chi = nu/mu_physical;
74 
75  // Step 2
76  libMesh::Real fv1 = _sa_params.fv1(chi);
77 
78  // Step 3
79  libMesh::Real mu_turbulent = nu*fv1;
80 
81  // Compute the value of the total viscosity and return it
82  libMesh::Number mu_value = mu_turbulent + mu_physical; // Turbulent viscosity + physical viscosity
83 
84  return mu_value;
85  }
VariableIndex nu_var() const
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 61 of file spalart_allmaras_viscosity.h.

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

62  { return _mu(p,time); }
Viscosity _mu
Viscosity object (so we have access to the physical viscosity)
void GRINS::ParameterUser::register_parameter ( const std::string &  param_name,
libMesh::ParameterMultiPointer< libMesh::Number > &  param_pointer 
) const
virtualinherited

Each subclass will register its copy of an independent.

Reimplemented in GRINS::AxisymmetricHeatTransfer< Conductivity >, GRINS::LowMachNavierStokesBase< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::IncompressibleNavierStokesBase< Viscosity >, GRINS::BoussinesqBuoyancySPGSMStabilization< Viscosity >, GRINS::HeatConduction< Conductivity >, GRINS::HeatTransferBase< Conductivity >, and GRINS::BoussinesqBuoyancyAdjointStabilization< Viscosity >.

Definition at line 50 of file parameter_user.C.

Referenced by GRINS::BoussinesqBuoyancyAdjointStabilization< Viscosity >::register_parameter(), GRINS::HeatTransferBase< Conductivity >::register_parameter(), GRINS::HeatConduction< Conductivity >::register_parameter(), GRINS::BoussinesqBuoyancySPGSMStabilization< Viscosity >::register_parameter(), GRINS::IncompressibleNavierStokesBase< Viscosity >::register_parameter(), GRINS::LowMachNavierStokesBase< Viscosity, SpecificHeat, ThermalConductivity >::register_parameter(), and GRINS::AxisymmetricHeatTransfer< Conductivity >::register_parameter().

53  {
54  std::map<std::string, libMesh::Number*>::const_iterator it =
55  _my_parameters.find(param_name);
56 
57  if (it != _my_parameters.end())
58  {
59  std::cout << _my_name << " uses parameter " << param_name
60  << std::endl;
61  param_pointer.push_back(it->second);
62  }
63  }
std::map< std::string, libMesh::Number * > _my_parameters
void GRINS::ParameterUser::set_parameter ( libMesh::Number &  param_variable,
const GetPot &  input,
const std::string &  param_name,
libMesh::Number  param_default 
)
virtualinherited

Each subclass can simultaneously read a parameter value from.

Definition at line 35 of file parameter_user.C.

References GRINS::ParameterUser::_my_name, and GRINS::ParameterUser::_my_parameters.

Referenced by GRINS::AveragedFanAdjointStabilization< Viscosity >::AveragedFanAdjointStabilization(), GRINS::AveragedTurbineAdjointStabilization< Viscosity >::AveragedTurbineAdjointStabilization(), GRINS::BoussinesqBuoyancyAdjointStabilization< Viscosity >::BoussinesqBuoyancyAdjointStabilization(), GRINS::BoussinesqBuoyancyBase::BoussinesqBuoyancyBase(), GRINS::BoussinesqBuoyancySPGSMStabilization< Viscosity >::BoussinesqBuoyancySPGSMStabilization(), GRINS::ConstantConductivity::ConstantConductivity(), GRINS::ConstantPrandtlConductivity::ConstantPrandtlConductivity(), GRINS::ConstantSourceFunction::ConstantSourceFunction(), GRINS::ConstantSourceTerm::ConstantSourceTerm(), GRINS::ConstantSpecificHeat::ConstantSpecificHeat(), GRINS::ConstantViscosity::ConstantViscosity(), GRINS::ElasticCable< StressStrainLaw >::ElasticCable(), GRINS::ElasticCableConstantGravity::ElasticCableConstantGravity(), GRINS::ElasticMembrane< StressStrainLaw >::ElasticMembrane(), GRINS::ElasticMembraneConstantPressure::ElasticMembraneConstantPressure(), GRINS::HeatConduction< Conductivity >::HeatConduction(), GRINS::HeatTransferBase< Conductivity >::HeatTransferBase(), GRINS::IncompressibleNavierStokesBase< Viscosity >::IncompressibleNavierStokesBase(), GRINS::AverageNusseltNumber::init(), GRINS::MooneyRivlin::MooneyRivlin(), GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::ReactingLowMachNavierStokesBase(), GRINS::HookesLaw1D::read_input_options(), GRINS::HookesLaw::read_input_options(), GRINS::AxisymmetricBoussinesqBuoyancy::read_input_options(), and GRINS::VelocityDragAdjointStabilization< Viscosity >::VelocityDragAdjointStabilization().

39  {
40  param_variable = input(param_name, param_default);
41 
42  libmesh_assert_msg(!_my_parameters.count(param_name),
43  "ERROR: " << _my_name << " double-registered parameter " <<
44  param_name);
45 
46  _my_parameters[param_name] = &param_variable;
47  }
std::map< std::string, libMesh::Number * > _my_parameters

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 69 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 74 of file spalart_allmaras_viscosity.h.

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

Definition at line 72 of file spalart_allmaras_viscosity.h.


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

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