GRINS-0.8.0
List of all members | Public Member Functions | Protected Attributes
GRINS::IncompressibleNavierStokesStabilizationHelper Class Reference

#include <inc_navier_stokes_stab_helper.h>

Inheritance diagram for GRINS::IncompressibleNavierStokesStabilizationHelper:
Inheritance graph
[legend]
Collaboration diagram for GRINS::IncompressibleNavierStokesStabilizationHelper:
Collaboration graph
[legend]

Public Member Functions

 IncompressibleNavierStokesStabilizationHelper (const std::string &helper_name, const GetPot &input)
 
 ~IncompressibleNavierStokesStabilizationHelper ()
 
libMesh::Real compute_tau_continuity (libMesh::Real tau_C, libMesh::RealGradient &g) const
 
void compute_tau_continuity_and_derivs (libMesh::Real tau_M, libMesh::Real d_tau_M_d_rho, libMesh::Gradient d_tau_M_d_U, libMesh::RealGradient &g, libMesh::Real &tau_C, libMesh::Real &d_tau_C_d_rho, libMesh::Gradient &d_tau_C_d_U) const
 
libMesh::Real compute_tau_momentum (AssemblyContext &c, unsigned int qp, libMesh::RealGradient &g, libMesh::RealTensor &G, libMesh::Real rho, libMesh::Gradient U, libMesh::Real mu, bool is_steady) const
 
void compute_tau_momentum_and_derivs (AssemblyContext &c, unsigned int qp, libMesh::RealGradient &g, libMesh::RealTensor &G, libMesh::Real rho, libMesh::Gradient U, libMesh::Real T, libMesh::Real &tau_M, libMesh::Real &d_tau_M_d_rho, libMesh::Gradient &d_tau_M_d_U, bool is_steady) const
 
libMesh::Real compute_tau (AssemblyContext &c, unsigned int qp, libMesh::Real mat_prop_sq, libMesh::RealGradient &g, libMesh::RealTensor &G, libMesh::Real rho, libMesh::Gradient U, bool is_steady) const
 
void compute_tau_and_derivs (AssemblyContext &c, unsigned int qp, libMesh::Real mat_prop_sq, libMesh::RealGradient &g, libMesh::RealTensor &G, libMesh::Real rho, libMesh::Gradient U, libMesh::Real &tau, libMesh::Real &d_tau_d_rho, libMesh::Gradient &d_tau_d_U, bool is_steady) const
 
libMesh::Real compute_res_continuity (AssemblyContext &context, unsigned int qp) const
 
void compute_res_continuity_and_derivs (AssemblyContext &context, unsigned int qp, libMesh::Real &res_C, libMesh::Tensor &d_res_C_dgradU) const
 
libMesh::RealGradient compute_res_momentum_steady (AssemblyContext &context, unsigned int qp, const libMesh::Real rho, const libMesh::Real mu) const
 
void compute_res_momentum_steady_and_derivs (AssemblyContext &context, unsigned int qp, const libMesh::Real rho, const libMesh::Real mu, libMesh::Gradient &res_M, libMesh::Tensor &d_res_M_dgradp, libMesh::Tensor &d_res_M_dU, libMesh::Gradient &d_res_Muvw_dgraduvw, libMesh::Tensor &d_res_Muvw_dhessuvw) const
 
libMesh::RealGradient compute_res_momentum_transient (AssemblyContext &context, unsigned int qp, const libMesh::Real rho) const
 
void compute_res_momentum_transient_and_derivs (AssemblyContext &context, unsigned int qp, const libMesh::Real rho, libMesh::RealGradient &res_M, libMesh::Real &d_res_Muvw_duvw) const
 
libMesh::RealGradient UdotGradU (libMesh::Gradient &U, libMesh::Gradient &grad_u) const
 
libMesh::RealGradient UdotGradU (libMesh::Gradient &U, libMesh::Gradient &grad_u, libMesh::Gradient &grad_v) const
 
libMesh::RealGradient UdotGradU (libMesh::Gradient &U, libMesh::Gradient &grad_u, libMesh::Gradient &grad_v, libMesh::Gradient &grad_w) const
 
libMesh::RealGradient div_GradU (libMesh::RealTensor &hess_u) const
 
libMesh::RealGradient div_GradU (libMesh::RealTensor &hess_u, libMesh::RealTensor &hess_v) const
 
libMesh::RealGradient div_GradU_axi (libMesh::Real r, const libMesh::Gradient &U, const libMesh::Gradient &grad_u, const libMesh::Gradient &grad_v, const libMesh::RealTensor &hess_u, const libMesh::RealTensor &hess_v) const
 
libMesh::RealGradient div_GradU (libMesh::RealTensor &hess_u, libMesh::RealTensor &hess_v, libMesh::RealTensor &hess_w) const
 
libMesh::RealGradient div_GradU_T (libMesh::RealTensor &hess_u) const
 
libMesh::RealGradient div_GradU_T (libMesh::RealTensor &hess_u, libMesh::RealTensor &hess_v) const
 
libMesh::RealGradient div_GradU_T_axi (libMesh::Real r, const libMesh::Gradient &U, const libMesh::Gradient &grad_u, const libMesh::RealTensor &hess_u, const libMesh::RealTensor &hess_v) const
 
libMesh::RealGradient div_GradU_T (libMesh::RealTensor &hess_u, libMesh::RealTensor &hess_v, libMesh::RealTensor &hess_w) const
 
libMesh::RealGradient div_divU_I (libMesh::RealTensor &hess_u) const
 
libMesh::RealGradient div_divU_I (libMesh::RealTensor &hess_u, libMesh::RealTensor &hess_v) const
 
libMesh::RealGradient div_divU_I_axi (libMesh::Real r, const libMesh::Gradient &U, const libMesh::Gradient &grad_u, const libMesh::RealTensor &hess_u, const libMesh::RealTensor &hess_v) const
 
libMesh::RealGradient div_divU_I (libMesh::RealTensor &hess_u, libMesh::RealTensor &hess_v, libMesh::RealTensor &hess_w) const
 
- Public Member Functions inherited from GRINS::StabilizationHelper
 StabilizationHelper (const std::string &helper_name)
 
 ~StabilizationHelper ()
 
libMesh::RealGradient compute_g (libMesh::FEBase *fe, AssemblyContext &c, unsigned int qp) const
 
libMesh::RealTensor compute_G (libMesh::FEBase *fe, AssemblyContext &c, unsigned int qp) const
 
- 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...
 
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...
 

Protected Attributes

libMesh::Real _C
 
libMesh::Real _tau_factor
 
const VelocityVariable_flow_vars
 
const PressureFEVariable_press_var
 

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

Definition at line 41 of file inc_navier_stokes_stab_helper.h.

Constructor & Destructor Documentation

GRINS::IncompressibleNavierStokesStabilizationHelper::IncompressibleNavierStokesStabilizationHelper ( const std::string &  helper_name,
const GetPot &  input 
)

Definition at line 45 of file inc_navier_stokes_stab_helper.C.

47  : StabilizationHelper(helper_name),
48  _C(1),
49  _tau_factor(0.5),
50  _flow_vars(GRINSPrivate::VariableWarehouse::get_variable_subclass<VelocityVariable>(VariablesParsing::velocity_variable_name(input,PhysicsNaming::incompressible_navier_stokes(),VariablesParsing::PHYSICS))),
51  _press_var(GRINSPrivate::VariableWarehouse::get_variable_subclass<PressureFEVariable>(VariablesParsing::press_variable_name(input,PhysicsNaming::incompressible_navier_stokes(),VariablesParsing::PHYSICS)))
52  {
53  if (input.have_variable("Stabilization/tau_constant_vel"))
54  this->set_parameter
55  (_C, input, "Stabilization/tau_constant_vel", _C );
56  else
57  this->set_parameter
58  (_C, input, "Stabilization/tau_constant", _C );
59 
60  if (input.have_variable("Stabilization/tau_factor_vel"))
61  this->set_parameter
62  (_tau_factor, input, "Stabilization/tau_factor_vel", _tau_factor );
63  else
64  this->set_parameter
65  (_tau_factor, input, "Stabilization/tau_factor", _tau_factor );
66 
67  return;
68  }
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.
static std::string velocity_variable_name(const GetPot &input, const std::string &subsection_name, const SECTION_TYPE section_type)
static std::string press_variable_name(const GetPot &input, const std::string &subsection_name, const SECTION_TYPE section_type)
StabilizationHelper(const std::string &helper_name)
Definition: stab_helper.C:36
static PhysicsName incompressible_navier_stokes()
GRINS::IncompressibleNavierStokesStabilizationHelper::~IncompressibleNavierStokesStabilizationHelper ( )

Definition at line 70 of file inc_navier_stokes_stab_helper.C.

71  {
72  return;
73  }

Member Function Documentation

libMesh::Real GRINS::IncompressibleNavierStokesStabilizationHelper::compute_res_continuity ( AssemblyContext context,
unsigned int  qp 
) const

Definition at line 190 of file inc_navier_stokes_stab_helper.C.

References _flow_vars, GRINS::MultcomponentVectorVariable::dim(), GRINS::MultcomponentVectorVariable::u(), GRINS::MultcomponentVectorVariable::v(), and GRINS::MultcomponentVectorVariable::w().

192  {
193  libMesh::RealGradient grad_u, grad_v;
194 
195  grad_u = context.fixed_interior_gradient(this->_flow_vars.u(), qp);
196 
197  libMesh::Real divU = grad_u(0);
198 
199  if( this->_flow_vars.dim() > 1 )
200  {
201  divU += (context.fixed_interior_gradient(this->_flow_vars.v(), qp))(1);
202  }
203 
204  if( this->_flow_vars.dim() == 3 )
205  {
206  divU += (context.fixed_interior_gradient(this->_flow_vars.w(), qp))(2);
207  }
208 
209  return divU;
210  }
unsigned int dim() const
Number of components.
void GRINS::IncompressibleNavierStokesStabilizationHelper::compute_res_continuity_and_derivs ( AssemblyContext context,
unsigned int  qp,
libMesh::Real &  res_C,
libMesh::Tensor &  d_res_C_dgradU 
) const

Definition at line 213 of file inc_navier_stokes_stab_helper.C.

218  {
219  libMesh::RealGradient grad_u =
220  context.fixed_interior_gradient(this->_flow_vars.u(), qp);
221 
222  libMesh::Real divU = grad_u(0);
223  d_res_C_dgradU = 0;
224  d_res_C_dgradU(0,0) = 1;
225 
226  if( this->_flow_vars.dim() > 1 )
227  {
228  divU += (context.fixed_interior_gradient(this->_flow_vars.v(), qp))(1);
229  d_res_C_dgradU(1,1) = 1;
230  }
231 
232  if( this->_flow_vars.dim() == 3 )
233  {
234  divU += (context.fixed_interior_gradient(this->_flow_vars.w(), qp))(2);
235  d_res_C_dgradU(2,2) = 1;
236  }
237 
238  res_C = divU;
239  }
unsigned int dim() const
Number of components.
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::compute_res_momentum_steady ( AssemblyContext context,
unsigned int  qp,
const libMesh::Real  rho,
const libMesh::Real  mu 
) const

Definition at line 241 of file inc_navier_stokes_stab_helper.C.

References _flow_vars, _press_var, GRINS::MultcomponentVectorVariable::dim(), div_GradU(), GRINS::PressureFEVariable::p(), GRINS::MultcomponentVectorVariable::u(), UdotGradU(), GRINS::MultcomponentVectorVariable::v(), and GRINS::MultcomponentVectorVariable::w().

243  {
244  libMesh::RealGradient U( context.fixed_interior_value(this->_flow_vars.u(), qp) );
245  if(this->_flow_vars.dim() > 1)
246  U(1) = context.fixed_interior_value(this->_flow_vars.v(), qp);
247  if(this->_flow_vars.dim() == 3)
248  U(2) = context.fixed_interior_value(this->_flow_vars.w(), qp);
249 
250  libMesh::RealGradient grad_p = context.fixed_interior_gradient(this->_press_var.p(), qp);
251 
252  libMesh::RealGradient grad_u = context.fixed_interior_gradient(this->_flow_vars.u(), qp);
253 
254  libMesh::RealTensor hess_u = context.fixed_interior_hessian(this->_flow_vars.u(), qp);
255 
256  libMesh::RealGradient rhoUdotGradU;
257  libMesh::RealGradient divGradU;
258 
259  if( this->_flow_vars.dim() == 1 )
260  {
261  rhoUdotGradU = rho*this->UdotGradU( U, grad_u );
262  divGradU = this->div_GradU( hess_u );
263  }
264  else if( this->_flow_vars.dim() == 2 )
265  {
266  libMesh::RealGradient grad_v = context.fixed_interior_gradient(this->_flow_vars.v(), qp);
267  libMesh::RealTensor hess_v = context.fixed_interior_hessian(this->_flow_vars.v(), qp);
268 
269  rhoUdotGradU = rho*this->UdotGradU( U, grad_u, grad_v );
270  divGradU = this->div_GradU( hess_u, hess_v );
271  }
272  else
273  {
274  libMesh::RealGradient grad_v = context.fixed_interior_gradient(this->_flow_vars.v(), qp);
275  libMesh::RealTensor hess_v = context.fixed_interior_hessian(this->_flow_vars.v(), qp);
276 
277  libMesh::RealGradient grad_w = context.fixed_interior_gradient(this->_flow_vars.w(), qp);
278  libMesh::RealTensor hess_w = context.fixed_interior_hessian(this->_flow_vars.w(), qp);
279 
280  rhoUdotGradU = rho*this->UdotGradU( U, grad_u, grad_v, grad_w );
281 
282  divGradU = this->div_GradU( hess_u, hess_v, hess_w );
283  }
284 
285  return rhoUdotGradU + grad_p - mu*divGradU;
286  }
libMesh::RealGradient UdotGradU(libMesh::Gradient &U, libMesh::Gradient &grad_u) const
VariableIndex p() const
libMesh::RealGradient div_GradU(libMesh::RealTensor &hess_u) const
unsigned int dim() const
Number of components.
void GRINS::IncompressibleNavierStokesStabilizationHelper::compute_res_momentum_steady_and_derivs ( AssemblyContext context,
unsigned int  qp,
const libMesh::Real  rho,
const libMesh::Real  mu,
libMesh::Gradient &  res_M,
libMesh::Tensor &  d_res_M_dgradp,
libMesh::Tensor &  d_res_M_dU,
libMesh::Gradient &  d_res_Muvw_dgraduvw,
libMesh::Tensor &  d_res_Muvw_dhessuvw 
) const

Definition at line 289 of file inc_navier_stokes_stab_helper.C.

297  {
298  libMesh::RealGradient U( context.fixed_interior_value(this->_flow_vars.u(), qp) );
299  if(this->_flow_vars.dim() > 1)
300  U(1) = context.fixed_interior_value(this->_flow_vars.v(), qp);
301  if(this->_flow_vars.dim() == 3)
302  U(2) = context.fixed_interior_value(this->_flow_vars.w(), qp);
303 
304  libMesh::RealGradient grad_p = context.fixed_interior_gradient(this->_press_var.p(), qp);
305 
306  libMesh::RealGradient grad_u = context.fixed_interior_gradient(this->_flow_vars.u(), qp);
307 
308  libMesh::RealTensor hess_u = context.fixed_interior_hessian(this->_flow_vars.u(), qp);
309 
310  libMesh::RealGradient rhoUdotGradU;
311  libMesh::RealGradient divGradU;
312 
313  if( this->_flow_vars.dim() == 1 )
314  {
315  rhoUdotGradU = rho*this->UdotGradU( U, grad_u );
316  divGradU = this->div_GradU( hess_u );
317  }
318  else if( this->_flow_vars.dim() == 2 )
319  {
320  libMesh::RealGradient grad_v = context.fixed_interior_gradient(this->_flow_vars.v(), qp);
321  libMesh::RealTensor hess_v = context.fixed_interior_hessian(this->_flow_vars.v(), qp);
322 
323  d_res_M_dU(0,1) = rho * grad_u(1);
324  d_res_M_dU(1,0) = rho * grad_v(0);
325  d_res_M_dU(1,1) = rho * grad_v(1);
326 
327  d_res_Muvw_dgraduvw(1) = rho * U(1);
328  d_res_M_dgradp(1,1) = 1;
329  d_res_Muvw_dhessuvw(1,1) = mu;
330 
331  if( this->_flow_vars.dim() == 3 )
332  {
333  libMesh::RealGradient grad_w = context.fixed_interior_gradient(this->_flow_vars.w(), qp);
334  libMesh::RealTensor hess_w = context.fixed_interior_hessian(this->_flow_vars.w(), qp);
335 
336  rhoUdotGradU = rho*this->UdotGradU( U, grad_u, grad_v, grad_w );
337 
338  divGradU = this->div_GradU( hess_u, hess_v, hess_w );
339 
340  d_res_M_dU(0,2) = rho * grad_u(2);
341  d_res_M_dU(1,2) = rho * grad_v(2);
342  d_res_M_dU(2,0) = rho * grad_w(0);
343  d_res_M_dU(2,1) = rho * grad_w(1);
344  d_res_M_dU(2,2) = rho * grad_w(2);
345 
346  d_res_Muvw_dgraduvw(2) = rho * U(2);
347  d_res_M_dgradp(2,2) = 1;
348  d_res_Muvw_dhessuvw(2,2) = mu;
349  }
350  else
351  {
352  rhoUdotGradU = rho*this->UdotGradU( U, grad_u, grad_v );
353  divGradU = this->div_GradU( hess_u, hess_v );
354  }
355  }
356 
357  res_M = rhoUdotGradU + grad_p - mu*divGradU;
358 
359  d_res_M_dU(0,0) = rho * grad_u(0);
360 
361  d_res_Muvw_dgraduvw(0) = rho * U(0);
362 
363  d_res_M_dgradp(0,0) = 1;
364 
365  d_res_Muvw_dhessuvw(0,0) = mu;
366  }
libMesh::RealGradient UdotGradU(libMesh::Gradient &U, libMesh::Gradient &grad_u) const
VariableIndex p() const
libMesh::RealGradient div_GradU(libMesh::RealTensor &hess_u) const
unsigned int dim() const
Number of components.
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::compute_res_momentum_transient ( AssemblyContext context,
unsigned int  qp,
const libMesh::Real  rho 
) const

Definition at line 369 of file inc_navier_stokes_stab_helper.C.

References _flow_vars, GRINS::MultcomponentVectorVariable::dim(), and GRINS::MultcomponentVectorVariable::u().

370  {
371  libMesh::RealGradient u_dot;
372  context.interior_rate(this->_flow_vars.u(), qp, u_dot(0));
373  if(this->_flow_vars.dim() > 1)
374  context.interior_rate(this->_flow_vars.v(), qp, u_dot(1));
375  if(this->_flow_vars.dim() == 3)
376  context.interior_rate(this->_flow_vars.w(), qp, u_dot(2));
377 
378  return rho*u_dot;
379  }
unsigned int dim() const
Number of components.
void GRINS::IncompressibleNavierStokesStabilizationHelper::compute_res_momentum_transient_and_derivs ( AssemblyContext context,
unsigned int  qp,
const libMesh::Real  rho,
libMesh::RealGradient &  res_M,
libMesh::Real &  d_res_Muvw_duvw 
) const

Definition at line 383 of file inc_navier_stokes_stab_helper.C.

389  {
390  libMesh::RealGradient u_dot;
391  context.interior_rate(this->_flow_vars.u(), qp, u_dot(0));
392  if(this->_flow_vars.dim() > 1)
393  context.interior_rate(this->_flow_vars.v(), qp, u_dot(1));
394  if(this->_flow_vars.dim() == 3)
395  context.interior_rate(this->_flow_vars.w(), qp, u_dot(2));
396 
397  res_M = rho*u_dot;
398  d_res_Muvw_duvw = rho;
399  }
unsigned int dim() const
Number of components.
libMesh::Real GRINS::IncompressibleNavierStokesStabilizationHelper::compute_tau ( AssemblyContext c,
unsigned int  qp,
libMesh::Real  mat_prop_sq,
libMesh::RealGradient &  g,
libMesh::RealTensor &  G,
libMesh::Real  rho,
libMesh::Gradient  U,
bool  is_steady 
) const
inline

Definition at line 259 of file inc_navier_stokes_stab_helper.h.

References _C, and _tau_factor.

Referenced by GRINS::LowMachNavierStokesStabilizationHelper::compute_tau_energy(), compute_tau_momentum(), and GRINS::ReactingLowMachNavierStokesStabilizationHelper::compute_tau_species().

267  {
268  libMesh::Real tau = (rho*U)*(G*(rho*U)) + this->_C*mat_prop_sq*G.contract(G);
269 
270  if(!is_steady)
271  tau += (2.0*rho/c.get_deltat_value())*(2.0*rho/c.get_deltat_value());
272 
273  return this->_tau_factor/std::sqrt(tau);
274  }
void GRINS::IncompressibleNavierStokesStabilizationHelper::compute_tau_and_derivs ( AssemblyContext c,
unsigned int  qp,
libMesh::Real  mat_prop_sq,
libMesh::RealGradient &  g,
libMesh::RealTensor &  G,
libMesh::Real  rho,
libMesh::Gradient  U,
libMesh::Real &  tau,
libMesh::Real &  d_tau_d_rho,
libMesh::Gradient &  d_tau_d_U,
bool  is_steady 
) const
inline

Definition at line 279 of file inc_navier_stokes_stab_helper.h.

290  {
291  libMesh::Gradient rhoU = rho*U;
292  libMesh::Gradient GrhoU = G*rhoU;
293  libMesh::Real rhoUGrhoU = rhoU * GrhoU;
294  libMesh::Real GG = G.contract(G);
295  tau = rhoUGrhoU + this->_C*mat_prop_sq*GG;
296  d_tau_d_rho = rhoUGrhoU*2/rho;
297  d_tau_d_U = 2*rho*GrhoU;
298 
299  if(!is_steady)
300  {
301  libMesh::Real two_rho_over_dt = 2*rho/c.get_deltat_value();
302  tau += two_rho_over_dt * two_rho_over_dt;
303  d_tau_d_rho += 4*two_rho_over_dt/c.get_deltat_value();
304  }
305 
306  // But what we've computed so far isn't tau; we need
307  // tau = _tau_factor/ sqrt(our_tau)
308 
309  libMesh::Real root_oldtau = std::sqrt(tau);
310  libMesh::Real d_tau_d_oldtau = -this->_tau_factor / (tau*root_oldtau) / 2;
311 
312  d_tau_d_rho = d_tau_d_oldtau * d_tau_d_rho;
313  d_tau_d_U = d_tau_d_oldtau * d_tau_d_U;
314 
315  tau = this->_tau_factor / root_oldtau;
316  }
libMesh::Real GRINS::IncompressibleNavierStokesStabilizationHelper::compute_tau_continuity ( libMesh::Real  tau_C,
libMesh::RealGradient &  g 
) const
inline

Definition at line 202 of file inc_navier_stokes_stab_helper.h.

References _tau_factor.

204  {
205  return this->_tau_factor/(tau_M*(g*g));
206  }
void GRINS::IncompressibleNavierStokesStabilizationHelper::compute_tau_continuity_and_derivs ( libMesh::Real  tau_M,
libMesh::Real  d_tau_M_d_rho,
libMesh::Gradient  d_tau_M_d_U,
libMesh::RealGradient &  g,
libMesh::Real &  tau_C,
libMesh::Real &  d_tau_C_d_rho,
libMesh::Gradient &  d_tau_C_d_U 
) const
inline

Definition at line 210 of file inc_navier_stokes_stab_helper.h.

218  {
219  tau_C = this->_tau_factor/(tau_M*(g*g));
220  libMesh::Real d_tau_C_d_tau_M = -tau_C/tau_M;
221  d_tau_C_d_rho = d_tau_C_d_tau_M * d_tau_M_d_rho;
222  d_tau_C_d_U = d_tau_C_d_tau_M * d_tau_M_d_U;
223  }
libMesh::Real GRINS::IncompressibleNavierStokesStabilizationHelper::compute_tau_momentum ( AssemblyContext c,
unsigned int  qp,
libMesh::RealGradient &  g,
libMesh::RealTensor &  G,
libMesh::Real  rho,
libMesh::Gradient  U,
libMesh::Real  mu,
bool  is_steady 
) const
inline

Definition at line 226 of file inc_navier_stokes_stab_helper.h.

References compute_tau().

234  {
235  return this->compute_tau( c, qp, mu*mu, g, G, rho, U, is_steady );
236  }
libMesh::Real compute_tau(AssemblyContext &c, unsigned int qp, libMesh::Real mat_prop_sq, libMesh::RealGradient &g, libMesh::RealTensor &G, libMesh::Real rho, libMesh::Gradient U, bool is_steady) const
void GRINS::IncompressibleNavierStokesStabilizationHelper::compute_tau_momentum_and_derivs ( AssemblyContext c,
unsigned int  qp,
libMesh::RealGradient &  g,
libMesh::RealTensor &  G,
libMesh::Real  rho,
libMesh::Gradient  U,
libMesh::Real  T,
libMesh::Real &  tau_M,
libMesh::Real &  d_tau_M_d_rho,
libMesh::Gradient &  d_tau_M_d_U,
bool  is_steady 
) const
inline

Definition at line 240 of file inc_navier_stokes_stab_helper.h.

251  {
252  this->compute_tau_and_derivs( c, qp, mu*mu, g, G, rho, U, tau_M,
253  d_tau_M_d_rho, d_tau_M_d_U,
254  is_steady );
255  }
void compute_tau_and_derivs(AssemblyContext &c, unsigned int qp, libMesh::Real mat_prop_sq, libMesh::RealGradient &g, libMesh::RealTensor &G, libMesh::Real rho, libMesh::Gradient U, libMesh::Real &tau, libMesh::Real &d_tau_d_rho, libMesh::Gradient &d_tau_d_U, bool is_steady) const
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_divU_I ( libMesh::RealTensor &  hess_u) const
Todo:
Should we inline this?

Definition at line 159 of file inc_navier_stokes_stab_helper.C.

160  {
161  return libMesh::RealGradient( hess_u(0,0) );
162  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_divU_I ( libMesh::RealTensor &  hess_u,
libMesh::RealTensor &  hess_v 
) const

Definition at line 164 of file inc_navier_stokes_stab_helper.C.

166  {
167  return libMesh::RealGradient( hess_u(0,0) + hess_v(1,0),
168  hess_u(0,1) + hess_v(1,1) );
169  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_divU_I ( libMesh::RealTensor &  hess_u,
libMesh::RealTensor &  hess_v,
libMesh::RealTensor &  hess_w 
) const
Todo:
Should we inline this?

Definition at line 181 of file inc_navier_stokes_stab_helper.C.

184  {
185  return libMesh::RealGradient( hess_u(0,0) + hess_v(1,0) + hess_w(2,0),
186  hess_u(0,1) + hess_v(1,1) + hess_w(2,1),
187  hess_u(0,2) + hess_v(1,2) + hess_w(2,2) );
188  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_divU_I_axi ( libMesh::Real  r,
const libMesh::Gradient &  U,
const libMesh::Gradient &  grad_u,
const libMesh::RealTensor &  hess_u,
const libMesh::RealTensor &  hess_v 
) const

Definition at line 171 of file inc_navier_stokes_stab_helper.C.

176  {
177  return libMesh::RealGradient( hess_u(0,0) + hess_v(1,0) + (grad_u(0) - U(0)/r)/r,
178  hess_u(0,1) + hess_v(1,1) + grad_u(1)/r );
179  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_GradU ( libMesh::RealTensor &  hess_u) const
Todo:
Should we inline this?

Definition at line 96 of file inc_navier_stokes_stab_helper.C.

Referenced by compute_res_momentum_steady().

97  {
98  return libMesh::RealGradient( hess_u(0,0) );
99  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_GradU ( libMesh::RealTensor &  hess_u,
libMesh::RealTensor &  hess_v 
) const

Definition at line 101 of file inc_navier_stokes_stab_helper.C.

103  {
104  return libMesh::RealGradient( hess_u(0,0) + hess_u(1,1),
105  hess_v(0,0) + hess_v(1,1) );
106  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_GradU ( libMesh::RealTensor &  hess_u,
libMesh::RealTensor &  hess_v,
libMesh::RealTensor &  hess_w 
) const
Todo:
Should we inline this?

Definition at line 119 of file inc_navier_stokes_stab_helper.C.

122  {
123  return libMesh::RealGradient( hess_u(0,0) + hess_u(1,1) + hess_u(2,2),
124  hess_v(0,0) + hess_v(1,1) + hess_v(2,2),
125  hess_w(0,0) + hess_w(1,1) + hess_w(2,2) );
126  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_GradU_axi ( libMesh::Real  r,
const libMesh::Gradient &  U,
const libMesh::Gradient &  grad_u,
const libMesh::Gradient &  grad_v,
const libMesh::RealTensor &  hess_u,
const libMesh::RealTensor &  hess_v 
) const

Definition at line 108 of file inc_navier_stokes_stab_helper.C.

114  {
115  return libMesh::RealGradient( hess_u(0,0) + hess_u(1,1) + (grad_u(0) - U(0)/r)/r,
116  hess_v(0,0) + hess_v(1,1) + grad_v(0)/r );
117  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_GradU_T ( libMesh::RealTensor &  hess_u) const
Todo:
Should we inline this?

Definition at line 128 of file inc_navier_stokes_stab_helper.C.

129  {
130  return libMesh::RealGradient( hess_u(0,0) );
131  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_GradU_T ( libMesh::RealTensor &  hess_u,
libMesh::RealTensor &  hess_v 
) const

Definition at line 133 of file inc_navier_stokes_stab_helper.C.

135  {
136  return libMesh::RealGradient( hess_u(0,0) + hess_v(0,1),
137  hess_u(1,0) + hess_v(1,1));
138  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_GradU_T ( libMesh::RealTensor &  hess_u,
libMesh::RealTensor &  hess_v,
libMesh::RealTensor &  hess_w 
) const
Todo:
Should we inline this?

Definition at line 150 of file inc_navier_stokes_stab_helper.C.

153  {
154  return libMesh::RealGradient( hess_u(0,0) + hess_v(0,1) + hess_w(0,2),
155  hess_u(1,0) + hess_v(1,1) + hess_w(1,2),
156  hess_u(2,0) + hess_v(2,1) + hess_w(2,2) );
157  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::div_GradU_T_axi ( libMesh::Real  r,
const libMesh::Gradient &  U,
const libMesh::Gradient &  grad_u,
const libMesh::RealTensor &  hess_u,
const libMesh::RealTensor &  hess_v 
) const

Definition at line 140 of file inc_navier_stokes_stab_helper.C.

145  {
146  return libMesh::RealGradient( hess_u(0,0) + hess_v(0,1) + (grad_u(0) - U(0)/r)/r,
147  hess_u(1,0) + hess_v(1,1) + grad_u(1)/r );
148  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::UdotGradU ( libMesh::Gradient &  U,
libMesh::Gradient &  grad_u 
) const
Todo:
Should we inline this?

Definition at line 75 of file inc_navier_stokes_stab_helper.C.

Referenced by compute_res_momentum_steady().

77  {
78  return libMesh::RealGradient( U*grad_u );
79  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::UdotGradU ( libMesh::Gradient &  U,
libMesh::Gradient &  grad_u,
libMesh::Gradient &  grad_v 
) const
Todo:
Should we inline this?

Definition at line 81 of file inc_navier_stokes_stab_helper.C.

84  {
85  return libMesh::RealGradient( U*grad_u, U*grad_v );
86  }
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::UdotGradU ( libMesh::Gradient &  U,
libMesh::Gradient &  grad_u,
libMesh::Gradient &  grad_v,
libMesh::Gradient &  grad_w 
) const
Todo:
Should we inline this?

Definition at line 88 of file inc_navier_stokes_stab_helper.C.

92  {
93  return libMesh::RealGradient( U*grad_u, U*grad_v, U*grad_w );
94  }

Member Data Documentation

libMesh::Real GRINS::IncompressibleNavierStokesStabilizationHelper::_C
protected

Definition at line 192 of file inc_navier_stokes_stab_helper.h.

Referenced by compute_tau().

const VelocityVariable& GRINS::IncompressibleNavierStokesStabilizationHelper::_flow_vars
protected
const PressureFEVariable& GRINS::IncompressibleNavierStokesStabilizationHelper::_press_var
protected

Definition at line 195 of file inc_navier_stokes_stab_helper.h.

Referenced by compute_res_momentum_steady().

libMesh::Real GRINS::IncompressibleNavierStokesStabilizationHelper::_tau_factor
protected

Definition at line 192 of file inc_navier_stokes_stab_helper.h.

Referenced by compute_tau(), and compute_tau_continuity().


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

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