oomph::IsotropicElasticityTensor Class Reference

#include <elasticity_tensor.h>

+ Inheritance diagram for oomph::IsotropicElasticityTensor:

Public Member Functions

 IsotropicElasticityTensor (const double &nu, const double &E)
 
 IsotropicElasticityTensor (const double &nu)
 
 IsotropicElasticityTensor (const Vector< double > &lame)
 
void update_constitutive_parameters (const double &nu, const double &E=1.0)
 
double independent_component (const unsigned &i) const
 Overload the independent coefficient function. More...
 
 IsotropicElasticityTensor (const double &nu, const double &E)
 
 IsotropicElasticityTensor (const double &nu)
 
 IsotropicElasticityTensor (const Vector< double > &lame)
 
double independent_component (const unsigned &i) const
 Overload the independent coefficient function. 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)
 
void set_lame_coefficients (const double &lambda, const double &mu)
 

Private Attributes

double C [4]
 

Static Private Attributes

static const unsigned StaticIndex [21]
 Translation scheme for the 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

◆ IsotropicElasticityTensor() [1/6]

oomph::IsotropicElasticityTensor::IsotropicElasticityTensor ( 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).

175  : ElasticityTensor()
176  {
177  // Set the three indepdent components
178  C[0] = 0.0;
179  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
180  double mu = E / (2.0 * (1.0 + nu));
181  this->set_lame_coefficients(lambda, mu);
182  }
cout<< "The eigenvalues of A are:"<< endl<< ces.eigenvalues()<< endl;cout<< "The matrix of eigenvectors, V, is:"<< endl<< ces.eigenvectors()<< endl<< endl;complex< float > lambda
Definition: ComplexEigenSolver_compute.cpp:9
ElasticityTensor()
Empty Constructor.
Definition: linear_elasticity/elasticity_tensor.h:111
void set_lame_coefficients(const double &lambda, const double &mu)
Definition: linear_elasticity/elasticity_tensor.h:233
Definition: matrices.h:74
std::complex< double > mu
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:52
double E
Elastic modulus.
Definition: TwenteMeshGluing.cpp:68

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

◆ IsotropicElasticityTensor() [2/6]

oomph::IsotropicElasticityTensor::IsotropicElasticityTensor ( 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.

187  : ElasticityTensor()
188  {
189  // Set the three indepdent components
190  C[0] = 0.0;
191 
192  // reference value
193  double E = 1.0;
194  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
195  double mu = E / (2.0 * (1.0 + nu));
196  this->set_lame_coefficients(lambda, mu);
197  }

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

◆ IsotropicElasticityTensor() [3/6]

oomph::IsotropicElasticityTensor::IsotropicElasticityTensor ( 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

203  {
204  // Set the three independent componens
205  C[0] = 0.0;
206  this->set_lame_coefficients(lame[0], lame[1]);
207  }

References set_lame_coefficients().

◆ IsotropicElasticityTensor() [4/6]

oomph::IsotropicElasticityTensor::IsotropicElasticityTensor ( 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).

161  : ElasticityTensor()
162  {
163  // Set the three independent components
164  C[0] = 0.0;
165  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
166  double mu = E / (2.0 * (1.0 + nu));
167  this->set_lame_coefficients(lambda, mu);
168  }

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

◆ IsotropicElasticityTensor() [5/6]

oomph::IsotropicElasticityTensor::IsotropicElasticityTensor ( 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.

173  : ElasticityTensor()
174  {
175  // Set the three independent components
176  C[0] = 0.0;
177 
178  // reference value
179  double E = 1.0;
180  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
181  double mu = E / (2.0 * (1.0 + nu));
182  this->set_lame_coefficients(lambda, mu);
183  }

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

◆ IsotropicElasticityTensor() [6/6]

oomph::IsotropicElasticityTensor::IsotropicElasticityTensor ( 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

189  {
190  // Set the three independent components
191  C[0] = 0.0;
192  this->set_lame_coefficients(lame[0], lame[1]);
193  }

References set_lame_coefficients().

Member Function Documentation

◆ independent_component() [1/2]

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

Overload the independent coefficient function.

Reimplemented from oomph::ElasticityTensor.

226  {
227  return C[StaticIndex[i]];
228  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
static const unsigned StaticIndex[21]
Translation scheme for the isotropic elasticity tensor.
Definition: linear_elasticity/elasticity_tensor.h:166

References i, and StaticIndex.

◆ independent_component() [2/2]

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

Overload the independent coefficient function.

Reimplemented from oomph::ElasticityTensor.

198  {
199  return C[StaticIndex[i]];
200  }

References i, and StaticIndex.

◆ set_lame_coefficients() [1/2]

void oomph::IsotropicElasticityTensor::set_lame_coefficients ( const double lambda,
const double mu 
)
inlineprivate
234  {
235  C[1] = lambda + 2.0 * mu;
236  C[2] = lambda;
237  C[3] = mu;
238  }

References lambda, and Global_Parameters::mu.

Referenced by IsotropicElasticityTensor(), and update_constitutive_parameters().

◆ set_lame_coefficients() [2/2]

void oomph::IsotropicElasticityTensor::set_lame_coefficients ( const double lambda,
const double mu 
)
inlineprivate
206  {
207  C[1] = lambda + 2.0 * mu;
208  C[2] = lambda;
209  C[3] = mu;
210  }

References lambda, and Global_Parameters::mu.

◆ update_constitutive_parameters()

void oomph::IsotropicElasticityTensor::update_constitutive_parameters ( const double nu,
const double E = 1.0 
)
inline

Update parameters: Specify values of the Poisson's ratio and (optionally) 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).

215  {
216  // Set the three indepdent components
217  C[0] = 0.0;
218  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
219  double mu = E / (2.0 * (1.0 + nu));
220  this->set_lame_coefficients(lambda, mu);
221  }

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

Member Data Documentation

◆ C

double oomph::IsotropicElasticityTensor::C
private

◆ StaticIndex

static const unsigned oomph::IsotropicElasticityTensor::StaticIndex
staticprivate
Initial value:
= {
1, 0, 2, 3, 0, 1, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 2, 3, 0, 1}

Translation scheme for the isotropic elasticity tensor.

Referenced by independent_component().


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