oomph::PowerLawBerEngRegConstitutiveEquation< DIM > Class Template Reference

#include <generalised_newtonian_constitutive_models.h>

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

Public Member Functions

 PowerLawBerEngRegConstitutiveEquation (double *power_pt, double *reg_par_pt)
 
double viscosity (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...
 
virtual double dviscosity_dinvariant (const double &second_invariant_of_rate_of_strain_tensor)=0
 

Private Attributes

doublePower_pt
 power law index n More...
 
doubleRegularisation_parameter_pt
 regularisation parameter e << 1 More...
 

Detailed Description

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

A GeneralisedNewtonianConstitutiveEquation class defining a power-law fluid regularised according to Bercovier and Engelman (1980) to allow for n < 1

Constructor & Destructor Documentation

◆ PowerLawBerEngRegConstitutiveEquation()

template<unsigned DIM>
oomph::PowerLawBerEngRegConstitutiveEquation< DIM >::PowerLawBerEngRegConstitutiveEquation ( double power_pt,
double reg_par_pt 
)
inline
118  : GeneralisedNewtonianConstitutiveEquation<DIM>(),
119  Power_pt(power_pt),
120  Regularisation_parameter_pt(reg_par_pt)
121  {
122  }
double * Power_pt
power law index n
Definition: generalised_newtonian_constitutive_models.h:110
double * Regularisation_parameter_pt
regularisation parameter e << 1
Definition: generalised_newtonian_constitutive_models.h:113

Member Function Documentation

◆ viscosity()

template<unsigned DIM>
double oomph::PowerLawBerEngRegConstitutiveEquation< 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 >.

125  {
126  // Pre-multiply the second invariant with +/-1 depending on whether it's
127  // positive or not
128  double sign = -1.0;
129  if (second_invariant_of_rate_of_strain_tensor >= 0.0)
130  {
131  sign = 1.0;
132  }
133 
134  // Calculate the square root of the absolute value of the
135  // second invariant of the rate of strain tensor
136  double measure_of_rate_of_strain =
137  sqrt(sign * second_invariant_of_rate_of_strain_tensor);
138 
139  return pow(
140  (2.0 * measure_of_rate_of_strain + *Regularisation_parameter_pt),
141  *Power_pt - 1.0);
142  }
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 pow(const bfloat16 &a, const bfloat16 &b)
Definition: BFloat16.h:625
T sign(T x)
Definition: cxx11_tensor_builtins_sycl.cpp:172

References Eigen::bfloat16_impl::pow(), oomph::PowerLawBerEngRegConstitutiveEquation< DIM >::Power_pt, oomph::PowerLawBerEngRegConstitutiveEquation< DIM >::Regularisation_parameter_pt, SYCL::sign(), and sqrt().

Member Data Documentation

◆ Power_pt

template<unsigned DIM>
double* oomph::PowerLawBerEngRegConstitutiveEquation< DIM >::Power_pt
private

◆ Regularisation_parameter_pt

template<unsigned DIM>
double* oomph::PowerLawBerEngRegConstitutiveEquation< DIM >::Regularisation_parameter_pt
private

regularisation parameter e << 1

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


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