GRINS-0.7.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, 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, 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, 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, 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 VelocityFEVariables_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 44 of file inc_navier_stokes_stab_helper.C.

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

Definition at line 69 of file inc_navier_stokes_stab_helper.C.

70  {
71  return;
72  }

Member Function Documentation

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

Definition at line 168 of file inc_navier_stokes_stab_helper.C.

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

170  {
171  libMesh::RealGradient grad_u, grad_v;
172 
173  grad_u = context.fixed_interior_gradient(this->_flow_vars.u(), qp);
174  grad_v = context.fixed_interior_gradient(this->_flow_vars.v(), qp);
175 
176  libMesh::Real divU = grad_u(0) + grad_v(1);
177 
178  if( context.get_system().get_mesh().mesh_dimension() == 3 )
179  {
180  divU += (context.fixed_interior_gradient(this->_flow_vars.w(), qp))(2);
181  }
182 
183  return divU;
184  }
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 187 of file inc_navier_stokes_stab_helper.C.

192  {
193  libMesh::RealGradient grad_u, grad_v;
194 
195  grad_u = context.fixed_interior_gradient(this->_flow_vars.u(), qp);
196  grad_v = context.fixed_interior_gradient(this->_flow_vars.v(), qp);
197 
198  libMesh::Real divU = grad_u(0) + grad_v(1);
199  d_res_C_dgradU = 0;
200  d_res_C_dgradU(0,0) = 1;
201  d_res_C_dgradU(1,1) = 1;
202 
203  if( context.get_system().get_mesh().mesh_dimension() == 3 )
204  {
205  divU += (context.fixed_interior_gradient(this->_flow_vars.w(), qp))(2);
206  d_res_C_dgradU(2,2) = 1;
207  }
208 
209  res_C = divU;
210  }
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 212 of file inc_navier_stokes_stab_helper.C.

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

214  {
215  libMesh::RealGradient U( context.fixed_interior_value(this->_flow_vars.u(), qp),
216  context.fixed_interior_value(this->_flow_vars.v(), qp) );
217  if(context.get_system().get_mesh().mesh_dimension() == 3)
218  U(2) = context.fixed_interior_value(this->_flow_vars.w(), qp);
219 
220  libMesh::RealGradient grad_p = context.fixed_interior_gradient(this->_press_var.p(), qp);
221 
222  libMesh::RealGradient grad_u = context.fixed_interior_gradient(this->_flow_vars.u(), qp);
223  libMesh::RealGradient grad_v = context.fixed_interior_gradient(this->_flow_vars.v(), qp);
224 
225  libMesh::RealTensor hess_u = context.fixed_interior_hessian(this->_flow_vars.u(), qp);
226  libMesh::RealTensor hess_v = context.fixed_interior_hessian(this->_flow_vars.v(), qp);
227 
228  libMesh::RealGradient rhoUdotGradU;
229  libMesh::RealGradient divGradU;
230 
231  if( context.get_system().get_mesh().mesh_dimension() < 3 )
232  {
233  rhoUdotGradU = rho*this->UdotGradU( U, grad_u, grad_v );
234  divGradU = this->div_GradU( hess_u, hess_v );
235  }
236  else
237  {
238  libMesh::RealGradient grad_w = context.fixed_interior_gradient(this->_flow_vars.w(), qp);
239  libMesh::RealTensor hess_w = context.fixed_interior_hessian(this->_flow_vars.w(), qp);
240 
241  rhoUdotGradU = rho*this->UdotGradU( U, grad_u, grad_v, grad_w );
242 
243  divGradU = this->div_GradU( hess_u, hess_v, hess_w );
244  }
245 
246  return rhoUdotGradU + grad_p - mu*divGradU;
247  }
libMesh::RealGradient div_GradU(libMesh::RealTensor &hess_u, libMesh::RealTensor &hess_v) const
VariableIndex p() const
libMesh::RealGradient UdotGradU(libMesh::Gradient &U, libMesh::Gradient &grad_u, libMesh::Gradient &grad_v) const
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 250 of file inc_navier_stokes_stab_helper.C.

258  {
259  libMesh::RealGradient U( context.fixed_interior_value(this->_flow_vars.u(), qp),
260  context.fixed_interior_value(this->_flow_vars.v(), qp) );
261  if(context.get_system().get_mesh().mesh_dimension() == 3)
262  U(2) = context.fixed_interior_value(this->_flow_vars.w(), qp);
263 
264  libMesh::RealGradient grad_p = context.fixed_interior_gradient(this->_press_var.p(), qp);
265 
266  libMesh::RealGradient grad_u = context.fixed_interior_gradient(this->_flow_vars.u(), qp);
267  libMesh::RealGradient grad_v = context.fixed_interior_gradient(this->_flow_vars.v(), qp);
268 
269  libMesh::RealTensor hess_u = context.fixed_interior_hessian(this->_flow_vars.u(), qp);
270  libMesh::RealTensor hess_v = context.fixed_interior_hessian(this->_flow_vars.v(), qp);
271 
272  libMesh::RealGradient rhoUdotGradU;
273  libMesh::RealGradient divGradU;
274 
275  if( context.get_system().get_mesh().mesh_dimension() < 3 )
276  {
277  rhoUdotGradU = rho*this->UdotGradU( U, grad_u, grad_v );
278  divGradU = this->div_GradU( hess_u, hess_v );
279  }
280  else
281  {
282  libMesh::RealGradient grad_w = context.fixed_interior_gradient(this->_flow_vars.w(), qp);
283  libMesh::RealTensor hess_w = context.fixed_interior_hessian(this->_flow_vars.w(), qp);
284 
285  rhoUdotGradU = rho*this->UdotGradU( U, grad_u, grad_v, grad_w );
286 
287  divGradU = this->div_GradU( hess_u, hess_v, hess_w );
288 
289  d_res_M_dU(0,2) = rho * grad_u(2);
290  d_res_M_dU(1,2) = rho * grad_v(2);
291 
292  d_res_Muvw_dgraduvw(2) = rho * U(2);
293  d_res_M_dgradp(2,2) = 1;
294  d_res_Muvw_dhessuvw(2,2) = mu;
295 
296  d_res_M_dU(2,0) = rho * grad_w(0);
297  d_res_M_dU(2,1) = rho * grad_w(1);
298  d_res_M_dU(2,2) = rho * grad_w(2);
299  }
300 
301  res_M = rhoUdotGradU + grad_p - mu*divGradU;
302 
303  d_res_M_dU(0,0) = rho * grad_u(0);
304  d_res_M_dU(0,1) = rho * grad_u(1);
305  d_res_M_dU(1,0) = rho * grad_v(0);
306  d_res_M_dU(1,1) = rho * grad_v(1);
307 
308  d_res_Muvw_dgraduvw(0) = rho * U(0);
309  d_res_Muvw_dgraduvw(1) = rho * U(1);
310 
311  d_res_M_dgradp(0,0) = 1;
312  d_res_M_dgradp(1,1) = 1;
313 
314  d_res_Muvw_dhessuvw(0,0) = mu;
315  d_res_Muvw_dhessuvw(1,1) = mu;
316  }
libMesh::RealGradient div_GradU(libMesh::RealTensor &hess_u, libMesh::RealTensor &hess_v) const
VariableIndex p() const
libMesh::RealGradient UdotGradU(libMesh::Gradient &U, libMesh::Gradient &grad_u, libMesh::Gradient &grad_v) const
libMesh::RealGradient GRINS::IncompressibleNavierStokesStabilizationHelper::compute_res_momentum_transient ( AssemblyContext context,
unsigned int  qp,
const libMesh::Real  rho 
) const

Definition at line 319 of file inc_navier_stokes_stab_helper.C.

References _flow_vars, GRINS::VelocityFEVariables::u(), and GRINS::VelocityFEVariables::v().

320  {
321  libMesh::RealGradient u_dot;
322  context.interior_rate(this->_flow_vars.u(), qp, u_dot(0));
323  context.interior_rate(this->_flow_vars.v(), qp, u_dot(1));
324  if(context.get_system().get_mesh().mesh_dimension() == 3)
325  context.interior_rate(this->_flow_vars.w(), qp, u_dot(2));
326 
327  return rho*u_dot;
328  }
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 332 of file inc_navier_stokes_stab_helper.C.

338  {
339  libMesh::RealGradient u_dot;
340  context.interior_rate(this->_flow_vars.u(), qp, u_dot(0));
341  context.interior_rate(this->_flow_vars.v(), qp, u_dot(1));
342  if(context.get_system().get_mesh().mesh_dimension() == 3)
343  context.interior_rate(this->_flow_vars.w(), qp, u_dot(2));
344 
345  res_M = rho*u_dot;
346  d_res_Muvw_duvw = rho;
347  }
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 250 of file inc_navier_stokes_stab_helper.h.

References _C, and _tau_factor.

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

258  {
259  libMesh::Real tau = (rho*U)*(G*(rho*U)) + this->_C*mat_prop_sq*G.contract(G);
260 
261  if(!is_steady)
262  tau += (2.0*rho/c.get_deltat_value())*(2.0*rho/c.get_deltat_value());
263 
264  return this->_tau_factor/std::sqrt(tau);
265  }
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 270 of file inc_navier_stokes_stab_helper.h.

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

Definition at line 193 of file inc_navier_stokes_stab_helper.h.

References _tau_factor.

195  {
196  return this->_tau_factor/(tau_M*(g*g));
197  }
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 201 of file inc_navier_stokes_stab_helper.h.

209  {
210  tau_C = this->_tau_factor/(tau_M*(g*g));
211  libMesh::Real d_tau_C_d_tau_M = -tau_C/tau_M;
212  d_tau_C_d_rho = d_tau_C_d_tau_M * d_tau_M_d_rho;
213  d_tau_C_d_U = d_tau_C_d_tau_M * d_tau_M_d_U;
214  }
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 217 of file inc_navier_stokes_stab_helper.h.

References compute_tau().

225  {
226  return this->compute_tau( c, qp, mu*mu, g, G, rho, U, is_steady );
227  }
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 231 of file inc_navier_stokes_stab_helper.h.

242  {
243  this->compute_tau_and_derivs( c, qp, mu*mu, g, G, rho, U, tau_M,
244  d_tau_M_d_rho, d_tau_M_d_U,
245  is_steady );
246  }
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,
libMesh::RealTensor &  hess_v 
) const
Todo:
Should we inline this?

Definition at line 142 of file inc_navier_stokes_stab_helper.C.

144  {
145  return libMesh::RealGradient( hess_u(0,0) + hess_v(1,0),
146  hess_u(0,1) + hess_v(1,1) );
147  }
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 159 of file inc_navier_stokes_stab_helper.C.

162  {
163  return libMesh::RealGradient( hess_u(0,0) + hess_v(1,0) + hess_w(2,0),
164  hess_u(0,1) + hess_v(1,1) + hess_w(2,1),
165  hess_u(0,2) + hess_v(1,2) + hess_w(2,2) );
166  }
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 149 of file inc_navier_stokes_stab_helper.C.

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

Definition at line 89 of file inc_navier_stokes_stab_helper.C.

Referenced by compute_res_momentum_steady().

91  {
92  return libMesh::RealGradient( hess_u(0,0) + hess_u(1,1),
93  hess_v(0,0) + hess_v(1,1) );
94  }
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 107 of file inc_navier_stokes_stab_helper.C.

110  {
111  return libMesh::RealGradient( hess_u(0,0) + hess_u(1,1) + hess_u(2,2),
112  hess_v(0,0) + hess_v(1,1) + hess_v(2,2),
113  hess_w(0,0) + hess_w(1,1) + hess_w(2,2) );
114  }
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 96 of file inc_navier_stokes_stab_helper.C.

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

Definition at line 116 of file inc_navier_stokes_stab_helper.C.

118  {
119  return libMesh::RealGradient( hess_u(0,0) + hess_v(0,1),
120  hess_u(1,0) + hess_v(1,1));
121  }
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 133 of file inc_navier_stokes_stab_helper.C.

136  {
137  return libMesh::RealGradient( hess_u(0,0) + hess_v(0,1) + hess_w(0,2),
138  hess_u(1,0) + hess_v(1,1) + hess_w(1,2),
139  hess_u(2,0) + hess_v(2,1) + hess_w(2,2) );
140  }
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 123 of file inc_navier_stokes_stab_helper.C.

128  {
129  return libMesh::RealGradient( hess_u(0,0) + hess_v(0,1) + (grad_u(0) - U(0)/r)/r,
130  hess_u(1,0) + hess_v(1,1) + grad_u(1)/r );
131  }
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 74 of file inc_navier_stokes_stab_helper.C.

Referenced by compute_res_momentum_steady().

77  {
78  return libMesh::RealGradient( U*grad_u, U*grad_v );
79  }
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 81 of file inc_navier_stokes_stab_helper.C.

85  {
86  return libMesh::RealGradient( U*grad_u, U*grad_v, U*grad_w );
87  }

Member Data Documentation

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

Definition at line 183 of file inc_navier_stokes_stab_helper.h.

Referenced by compute_tau().

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

Definition at line 186 of file inc_navier_stokes_stab_helper.h.

Referenced by compute_res_momentum_steady().

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

Definition at line 183 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 Thu Jun 2 2016 21:52:31 for GRINS-0.7.0 by  doxygen 1.8.10