oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM > Class Template Reference

#include <generalised_newtonian_constitutive_models.h>

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

Public Member Functions

 HerschelBulkleyTanMilRegConstitutiveEquation (double *yield_stress_pt, double *flow_index_pt, double *critical_second_invariant_pt)
 "Cutoff regularised" Herschel Bulkley constitutive equation More...
 
double calculate_cut_off_viscosity ()
 Function that calculates the cut off viscosity. More...
 
void report_cut_off_values (double &cut_off_invariant, double &cut_off_viscosity)
 Report cutoff values. More...
 
double viscosity (const double &second_invariant_of_rate_of_strain_tensor)
 Viscosity ratio as a fct of strain rate invariant. More...
 
double dviscosity_dinvariant (const double &second_invariant_of_rate_of_strain_tensor)
 Deriv of viscosity w.r.t. strain rate invariant. More...
 
- Public Member Functions inherited from oomph::GeneralisedNewtonianConstitutiveEquation< DIM >
 GeneralisedNewtonianConstitutiveEquation ()
 Empty constructor. More...
 
virtual ~GeneralisedNewtonianConstitutiveEquation ()
 Empty virtual destructor. More...
 

Private Attributes

doubleYield_stress_pt
 yield stress tau_y More...
 
doubleFlow_index_pt
 power law index n More...
 
doubleCritical_second_invariant_pt
 

Detailed Description

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

A GeneralisedNewtonianConstitutiveEquation class defining a Herschel-Bulkley fluid using Tanner and Milthorpe's (1983) regularisation

Constructor & Destructor Documentation

◆ HerschelBulkleyTanMilRegConstitutiveEquation()

template<unsigned DIM>
oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::HerschelBulkleyTanMilRegConstitutiveEquation ( double yield_stress_pt,
double flow_index_pt,
double critical_second_invariant_pt 
)
inline

"Cutoff regularised" Herschel Bulkley constitutive equation

254  : GeneralisedNewtonianConstitutiveEquation<DIM>(),
255  Yield_stress_pt(yield_stress_pt),
256  Flow_index_pt(flow_index_pt),
257  Critical_second_invariant_pt(critical_second_invariant_pt)
258  {
259  // Calculate the Newtonian cutoff viscosity from the constitutive
260  // equation and the cutoff value of the second invariant
261  double cut_off_viscosity = calculate_cut_off_viscosity();
262 
263  oomph_info << "HerschelBulkleyTanMilRegConstitutiveEquation: "
264  << " cutoff viscosity = " << cut_off_viscosity << std::endl;
265 
266  oomph_info << " "
267  << " cutoff invariant = " << *Critical_second_invariant_pt
268  << std::endl;
269  }
double calculate_cut_off_viscosity()
Function that calculates the cut off viscosity.
Definition: generalised_newtonian_constitutive_models.h:272
double * Yield_stress_pt
yield stress tau_y
Definition: generalised_newtonian_constitutive_models.h:239
double * Critical_second_invariant_pt
Definition: generalised_newtonian_constitutive_models.h:246
double * Flow_index_pt
power law index n
Definition: generalised_newtonian_constitutive_models.h:242
OomphInfo oomph_info
Definition: oomph_definitions.cc:319

References oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::calculate_cut_off_viscosity(), oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::Critical_second_invariant_pt, and oomph::oomph_info.

Member Function Documentation

◆ calculate_cut_off_viscosity()

◆ dviscosity_dinvariant()

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

Deriv of viscosity w.r.t. strain rate invariant.

Implements oomph::GeneralisedNewtonianConstitutiveEquation< DIM >.

324  {
325  // Pre-multiply the second invariant with +/-1 depending on whether it's
326  // positive or not
327  double sign = -1.0;
328  if (second_invariant_of_rate_of_strain_tensor >= 0.0)
329  {
330  sign = 1.0;
331  }
332 
333  if (sign * second_invariant_of_rate_of_strain_tensor <
335  {
336  return 0.0;
337  }
338  else
339  {
340  return sign * pow(2.0, (*Flow_index_pt) - 2.0) *
341  ((*Flow_index_pt) - 1.0) *
342  pow(sign * second_invariant_of_rate_of_strain_tensor,
343  ((*Flow_index_pt) - 1.0) / 2.0 - 1.0) -
344  sign * (*Yield_stress_pt) /
345  (4.0 * pow(sign * second_invariant_of_rate_of_strain_tensor,
346  3.0 / 2.0));
347  }
348  }
T sign(T x)
Definition: cxx11_tensor_builtins_sycl.cpp:172

References oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::Critical_second_invariant_pt, oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::Flow_index_pt, Eigen::bfloat16_impl::pow(), SYCL::sign(), and oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::Yield_stress_pt.

◆ report_cut_off_values()

template<unsigned DIM>
void oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::report_cut_off_values ( double cut_off_invariant,
double cut_off_viscosity 
)
inline

◆ viscosity()

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

Viscosity ratio as a fct of strain rate invariant.

Implements oomph::GeneralisedNewtonianConstitutiveEquation< DIM >.

291  {
292  // Pre-multiply the second invariant with +/-1 depending on whether it's
293  // positive or not
294  double sign = -1.0;
295  if (second_invariant_of_rate_of_strain_tensor >= 0.0)
296  {
297  sign = 1.0;
298  }
299 
300  // std::cout<<"I2 "<<second_invariant_of_rate_of_strain_tensor<<std::endl;
301 
302  // if the second invariant is below the cutoff we have a constant,
303  // Newtonian viscosity
304  if (sign * second_invariant_of_rate_of_strain_tensor <
306  {
308  }
309  else
310  {
311  // Calculate the square root of the absolute value of the
312  // second invariant of the rate of strain tensor
313  double measure_of_rate_of_strain =
314  sqrt(sign * second_invariant_of_rate_of_strain_tensor);
315 
316  return (*Yield_stress_pt) / (2.0 * measure_of_rate_of_strain) +
317  pow((2.0 * measure_of_rate_of_strain), *Flow_index_pt - 1.0);
318  }
319  }

References oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::calculate_cut_off_viscosity(), oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::Critical_second_invariant_pt, oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::Flow_index_pt, Eigen::bfloat16_impl::pow(), SYCL::sign(), sqrt(), and oomph::HerschelBulkleyTanMilRegConstitutiveEquation< DIM >::Yield_stress_pt.

Member Data Documentation

◆ Critical_second_invariant_pt

◆ Flow_index_pt

◆ Yield_stress_pt


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