oomph::TanhProfileConstitutiveEquation< DIM > Class Template Reference

#include <generalised_newtonian_constitutive_models.h>

+ Inheritance diagram for oomph::TanhProfileConstitutiveEquation< DIM >:

Public Member Functions

 TanhProfileConstitutiveEquation (double *mu_inf_pt, double *mu_0_pt, double *alpha_pt, double *critical_second_invariant_pt)
 
double viscosity (const double &second_invariant_of_rate_of_strain_tensor)
 
double dviscosity_dinvariant (const double &second_invariant_of_rate_of_strain_tensor)
 
- Public Member Functions inherited from oomph::GeneralisedNewtonianConstitutiveEquation< DIM >
 GeneralisedNewtonianConstitutiveEquation ()
 Empty constructor. More...
 
virtual ~GeneralisedNewtonianConstitutiveEquation ()
 Empty virtual destructor. More...
 

Private Attributes

doubleMu_inf_pt
 high shear rate viscosity More...
 
doubleMu_0_pt
 zero shear rate viscosity More...
 
doubleAlpha_pt
 
doubleCritical_second_invariant_pt
 

Detailed Description

template<unsigned DIM>
class oomph::TanhProfileConstitutiveEquation< DIM >

A GeneralisedNewtonianConstitutiveEquation class defining a fluid following a tanh-profile

Constructor & Destructor Documentation

◆ TanhProfileConstitutiveEquation()

template<unsigned DIM>
oomph::TanhProfileConstitutiveEquation< DIM >::TanhProfileConstitutiveEquation ( double mu_inf_pt,
double mu_0_pt,
double alpha_pt,
double critical_second_invariant_pt 
)
inline
1168  : GeneralisedNewtonianConstitutiveEquation<DIM>(),
1169  Mu_inf_pt(mu_inf_pt),
1170  Mu_0_pt(mu_0_pt),
1171  Alpha_pt(alpha_pt),
1172  Critical_second_invariant_pt(critical_second_invariant_pt)
1173  {
1174  }
double * Mu_inf_pt
high shear rate viscosity
Definition: generalised_newtonian_constitutive_models.h:1150
double * Mu_0_pt
zero shear rate viscosity
Definition: generalised_newtonian_constitutive_models.h:1153
double * Alpha_pt
Definition: generalised_newtonian_constitutive_models.h:1157
double * Critical_second_invariant_pt
Definition: generalised_newtonian_constitutive_models.h:1161

Member Function Documentation

◆ dviscosity_dinvariant()

template<unsigned DIM>
double oomph::TanhProfileConstitutiveEquation< DIM >::dviscosity_dinvariant ( const double second_invariant_of_rate_of_strain_tensor)
inlinevirtual

Function returning the derivative of the viscosity w.r.t. the second invariant of the rate of strain tensor For Newtonian behaviour this returns 0.0

Implements oomph::GeneralisedNewtonianConstitutiveEquation< DIM >.

1195  {
1196  // Pre-multiply the second invariant with +/-1 depending on whether it's
1197  // positive or not
1198  double sign = -1.0;
1199  if (second_invariant_of_rate_of_strain_tensor >= 0.0)
1200  {
1201  sign = 1.0;
1202  }
1203 
1204  return -sign * ((*Mu_0_pt) - (*Mu_inf_pt)) * 10.0 /
1205  (2.0 * (*Critical_second_invariant_pt)) * 1.0 /
1207  sign * second_invariant_of_rate_of_strain_tensor) *
1208  (*Alpha_pt)) *
1209  1.0 /
1211  sign * second_invariant_of_rate_of_strain_tensor) *
1212  (*Alpha_pt));
1213  }
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 cosh(const bfloat16 &a)
Definition: BFloat16.h:638
T sign(T x)
Definition: cxx11_tensor_builtins_sycl.cpp:172

References Eigen::bfloat16_impl::cosh(), oomph::TanhProfileConstitutiveEquation< DIM >::Critical_second_invariant_pt, and SYCL::sign().

◆ viscosity()

template<unsigned DIM>
double oomph::TanhProfileConstitutiveEquation< DIM >::viscosity ( const double second_invariant_of_rate_of_strain_tensor)
inlinevirtual

Function implementing the constitutive model Input: second invariant of the rate of strain Output: the viscosity For Newtonian behaviour this returns 1

Implements oomph::GeneralisedNewtonianConstitutiveEquation< DIM >.

1177  {
1178  // Pre-multiply the second invariant with +/-1 depending on whether it's
1179  // positive or not
1180  double sign = -1.0;
1181  if (second_invariant_of_rate_of_strain_tensor >= 0.0)
1182  {
1183  sign = 1.0;
1184  }
1185 
1186  return ((*Mu_0_pt) - (*Mu_inf_pt)) / 2.0 *
1188  sign * second_invariant_of_rate_of_strain_tensor) *
1189  (*Alpha_pt)) -
1190  ((*Mu_0_pt) - (*Mu_inf_pt)) / 2.0 + (*Mu_0_pt);
1191  }
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 tanh(const bfloat16 &a)
Definition: BFloat16.h:639

References oomph::TanhProfileConstitutiveEquation< DIM >::Alpha_pt, oomph::TanhProfileConstitutiveEquation< DIM >::Critical_second_invariant_pt, oomph::TanhProfileConstitutiveEquation< DIM >::Mu_0_pt, oomph::TanhProfileConstitutiveEquation< DIM >::Mu_inf_pt, SYCL::sign(), and Eigen::bfloat16_impl::tanh().

Member Data Documentation

◆ Alpha_pt

template<unsigned DIM>
double* oomph::TanhProfileConstitutiveEquation< DIM >::Alpha_pt
private

parameter controlling the steepness of the step nb – I used 10.0/(*Critical_second_invariant_pt)

Referenced by oomph::TanhProfileConstitutiveEquation< DIM >::viscosity().

◆ Critical_second_invariant_pt

template<unsigned DIM>
double* oomph::TanhProfileConstitutiveEquation< DIM >::Critical_second_invariant_pt
private

parameter that controls the location of the step – assumed to be always positive

Referenced by oomph::TanhProfileConstitutiveEquation< DIM >::dviscosity_dinvariant(), and oomph::TanhProfileConstitutiveEquation< DIM >::viscosity().

◆ Mu_0_pt

template<unsigned DIM>
double* oomph::TanhProfileConstitutiveEquation< DIM >::Mu_0_pt
private

zero shear rate viscosity

Referenced by oomph::TanhProfileConstitutiveEquation< DIM >::viscosity().

◆ Mu_inf_pt

template<unsigned DIM>
double* oomph::TanhProfileConstitutiveEquation< DIM >::Mu_inf_pt
private

high shear rate viscosity

Referenced by oomph::TanhProfileConstitutiveEquation< DIM >::viscosity().


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