oomph::DeviatoricIsotropicElasticityTensor Class Reference

#include <elasticity_tensor.h>

+ Inheritance diagram for oomph::DeviatoricIsotropicElasticityTensor:

Public Member Functions

 DeviatoricIsotropicElasticityTensor ()
 
 DeviatoricIsotropicElasticityTensor (const double &nu, const double &E)
 
 DeviatoricIsotropicElasticityTensor (const double &nu)
 
 DeviatoricIsotropicElasticityTensor (const Vector< double > &lame)
 
double independent_component (const unsigned &i) const
 Overload the independent coefficient function. More...
 
const doublelambda () const
 Accessor function for the first lame parameter. More...
 
const doublemu () const
 Accessor function for the second lame parameter. More...
 
- Public Member Functions inherited from oomph::ElasticityTensor
virtual ~ElasticityTensor ()
 Empty virtual Destructor. More...
 
double operator() (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 
virtual void set_value (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l, const double &value)
 
virtual ~ElasticityTensor ()
 Empty virtual Destructor. More...
 
double operator() (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 

Private Member Functions

void set_lame_coefficients (const double &lambda, const double &mu)
 

Private Attributes

double C [3]
 
double Lambda
 
double Mu
 

Static Private Attributes

static const unsigned StaticIndex [21]
 Translation scheme for the deviatoric isotropic elasticity tensor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::ElasticityTensor
void range_check (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 
 ElasticityTensor ()
 Empty Constructor. More...
 
void range_check (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 
 ElasticityTensor ()
 Empty Constructor. More...
 
- Static Protected Attributes inherited from oomph::ElasticityTensor
static const unsigned Index [3][3][3][3]
 

Detailed Description

An isotropic elasticity tensor defined in terms of Young's modulus and Poisson's ratio. The elasticity tensor is assumed to be non-dimensionalised on some reference value for Young's modulus so the value provided to the constructor (if any) is to be interpreted as the ratio of the actual Young's modulus to the Young's modulus used to non-dimensionalise the stresses/tractions in the governing equations.

Constructor & Destructor Documentation

◆ DeviatoricIsotropicElasticityTensor() [1/4]

oomph::DeviatoricIsotropicElasticityTensor::DeviatoricIsotropicElasticityTensor ( )
inline

Constructor. For use with incompressibility. Requires no parameters since Poisson's ratio is fixed at 0.5 and lambda is set to a dummy value of 0 (since it would be infinite)

242  : ElasticityTensor()
243  {
244  C[0] = 0.0;
245  double E = 1.0;
246  double nu = 0.5;
247  double lambda = 0.0;
248  double mu = E / (2.0 * (1.0 + nu));
249  this->set_lame_coefficients(lambda, mu);
250  }
void set_lame_coefficients(const double &lambda, const double &mu)
Definition: poroelasticity/elasticity_tensor.h:313
const double & lambda() const
Accessor function for the first lame parameter.
Definition: poroelasticity/elasticity_tensor.h:300
const double & mu() const
Accessor function for the second lame parameter.
Definition: poroelasticity/elasticity_tensor.h:306
ElasticityTensor()
Empty Constructor.
Definition: linear_elasticity/elasticity_tensor.h:111
Definition: matrices.h:74
double E
Elastic modulus.
Definition: TwenteMeshGluing.cpp:68

References Global_Physical_Variables::E, lambda(), mu(), and set_lame_coefficients().

◆ DeviatoricIsotropicElasticityTensor() [2/4]

oomph::DeviatoricIsotropicElasticityTensor::DeviatoricIsotropicElasticityTensor ( const double nu,
const double E 
)
inline

Constructor. Passing in the values of the Poisson's ratio and Young's modulus (interpreted as the ratio of the actual Young's modulus to the Young's modulus (or other reference stiffness) used to non-dimensionalise stresses and tractions in the governing equations).

258  : ElasticityTensor()
259  {
260  // Set the three independent components
261  C[0] = 0.0;
262  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
263  double mu = E / (2.0 * (1.0 + nu));
264  this->set_lame_coefficients(lambda, mu);
265  }

References Global_Physical_Variables::E, lambda(), mu(), and set_lame_coefficients().

◆ DeviatoricIsotropicElasticityTensor() [3/4]

oomph::DeviatoricIsotropicElasticityTensor::DeviatoricIsotropicElasticityTensor ( const double nu)
inline

Constructor. Passing in the value of the Poisson's ratio. Stresses and tractions in the governing equations are assumed to have been non-dimensionalised on Young's modulus.

270  : ElasticityTensor()
271  {
272  // Set the three independent components
273  C[0] = 0.0;
274 
275  // reference value
276  double E = 1.0;
277  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
278  double mu = E / (2.0 * (1.0 + nu));
279  this->set_lame_coefficients(lambda, mu);
280  }

References Global_Physical_Variables::E, lambda(), mu(), and set_lame_coefficients().

◆ DeviatoricIsotropicElasticityTensor() [4/4]

oomph::DeviatoricIsotropicElasticityTensor::DeviatoricIsotropicElasticityTensor ( const Vector< double > &  lame)
inline

Constructur. Passing in the values of the two lame coefficients directly (interpreted as the ratios of these quantities to a reference stiffness used to non-dimensionalised

286  {
287  // Set the three independent components
288  C[0] = 0.0;
289  this->set_lame_coefficients(lame[0], lame[1]);
290  }

References set_lame_coefficients().

Member Function Documentation

◆ independent_component()

double oomph::DeviatoricIsotropicElasticityTensor::independent_component ( const unsigned i) const
inlinevirtual

Overload the independent coefficient function.

Reimplemented from oomph::ElasticityTensor.

295  {
296  return C[StaticIndex[i]];
297  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
static const unsigned StaticIndex[21]
Translation scheme for the deviatoric isotropic elasticity tensor.
Definition: poroelasticity/elasticity_tensor.h:236

References i, and StaticIndex.

◆ lambda()

const double& oomph::DeviatoricIsotropicElasticityTensor::lambda ( ) const
inline

Accessor function for the first lame parameter.

301  {
302  return Lambda;
303  }
double Lambda
Definition: poroelasticity/elasticity_tensor.h:229

References Lambda.

Referenced by DeviatoricIsotropicElasticityTensor(), and set_lame_coefficients().

◆ mu()

const double& oomph::DeviatoricIsotropicElasticityTensor::mu ( ) const
inline

Accessor function for the second lame parameter.

307  {
308  return Mu;
309  }
double Mu
Definition: poroelasticity/elasticity_tensor.h:232

References Mu.

Referenced by DeviatoricIsotropicElasticityTensor(), and set_lame_coefficients().

◆ set_lame_coefficients()

void oomph::DeviatoricIsotropicElasticityTensor::set_lame_coefficients ( const double lambda,
const double mu 
)
inlineprivate
314  {
315  C[1] = 2.0 * mu;
316  C[2] = mu;
317 
318  Lambda = lambda;
319  Mu = mu;
320  }

References Lambda, lambda(), Mu, and mu().

Referenced by DeviatoricIsotropicElasticityTensor().

Member Data Documentation

◆ C

double oomph::DeviatoricIsotropicElasticityTensor::C[3]
private

◆ Lambda

double oomph::DeviatoricIsotropicElasticityTensor::Lambda
private

Referenced by lambda(), and set_lame_coefficients().

◆ Mu

double oomph::DeviatoricIsotropicElasticityTensor::Mu
private

Referenced by mu(), and set_lame_coefficients().

◆ StaticIndex

const unsigned oomph::DeviatoricIsotropicElasticityTensor::StaticIndex
staticprivate
Initial value:
= {
1, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 1}

Translation scheme for the deviatoric isotropic elasticity tensor.

Referenced by independent_component().


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