oomph::PMLTimeHarmonicIsotropicElasticityTensor Class Reference

#include <pml_time_harmonic_elasticity_tensor.h>

+ Inheritance diagram for oomph::PMLTimeHarmonicIsotropicElasticityTensor:

Public Member Functions

 PMLTimeHarmonicIsotropicElasticityTensor (const double &nu, const double &E)
 
 PMLTimeHarmonicIsotropicElasticityTensor (const double &nu)
 
double nu () const
 Poisson's ratio. More...
 
void update_constitutive_parameters (const double &nu, const double &E=1.0)
 
std::complex< doubleindependent_component (const unsigned &i) const
 Overload the independent coefficient function. More...
 
- Public Member Functions inherited from oomph::PMLTimeHarmonicElasticityTensor
virtual ~PMLTimeHarmonicElasticityTensor ()
 Empty virtual Destructor. More...
 
std::complex< doubleoperator() (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

std::complex< doubleC [4]
 Storage for the independent components of the elasticity tensor. More...
 
double Nu
 Poisson's ratio. More...
 

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::PMLTimeHarmonicElasticityTensor
void range_check (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 
 PMLTimeHarmonicElasticityTensor ()
 Empty Constructor. More...
 

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

◆ PMLTimeHarmonicIsotropicElasticityTensor() [1/2]

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

169  {
170  // Set the three indepdent components
171  C[0] = std::complex<double>(0.0, 0.0);
172  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
173  double mu = E / (2.0 * (1.0 + nu));
174  this->set_lame_coefficients(lambda, mu);
175  }
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
Definition: matrices.h:74
PMLTimeHarmonicElasticityTensor()
Empty Constructor.
Definition: pml_time_harmonic_elasticity_tensor.h:116
double Nu
Poisson's ratio.
Definition: pml_time_harmonic_elasticity_tensor.h:159
double nu() const
Poisson's ratio.
Definition: pml_time_harmonic_elasticity_tensor.h:194
void set_lame_coefficients(const double &lambda, const double &mu)
Definition: pml_time_harmonic_elasticity_tensor.h:223
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, nu(), and set_lame_coefficients().

◆ PMLTimeHarmonicIsotropicElasticityTensor() [2/2]

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

182  {
183  // Set the three indepdent components
184  C[0] = std::complex<double>(0.0, 0.0);
185 
186  // reference value
187  double E = 1.0;
188  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
189  double mu = E / (2.0 * (1.0 + nu));
190  this->set_lame_coefficients(lambda, mu);
191  }

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

Member Function Documentation

◆ independent_component()

std::complex<double> oomph::PMLTimeHarmonicIsotropicElasticityTensor::independent_component ( const unsigned i) const
inlinevirtual

Overload the independent coefficient function.

Reimplemented from oomph::PMLTimeHarmonicElasticityTensor.

216  {
217  return C[StaticIndex[i]];
218  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
static const unsigned StaticIndex[21]
Translation scheme for the isotropic elasticity tensor.
Definition: pml_time_harmonic_elasticity_tensor.h:156

References i, and StaticIndex.

◆ nu()

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

◆ set_lame_coefficients()

void oomph::PMLTimeHarmonicIsotropicElasticityTensor::set_lame_coefficients ( const double lambda,
const double mu 
)
inlineprivate
224  {
225  C[1] = lambda + 2.0 * mu;
226  C[2] = lambda;
227  C[3] = mu;
228  }

References lambda, and Global_Parameters::mu.

Referenced by PMLTimeHarmonicIsotropicElasticityTensor(), and update_constitutive_parameters().

◆ update_constitutive_parameters()

void oomph::PMLTimeHarmonicIsotropicElasticityTensor::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).

205  {
206  // Set the three indepdent components
207  C[0] = std::complex<double>(0.0, 0.0);
208  double lambda = E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
209  double mu = E / (2.0 * (1.0 + nu));
210  this->set_lame_coefficients(lambda, mu);
211  }

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

Member Data Documentation

◆ C

std::complex<double> oomph::PMLTimeHarmonicIsotropicElasticityTensor::C[4]
private

Storage for the independent components of the elasticity tensor.

◆ Nu

double oomph::PMLTimeHarmonicIsotropicElasticityTensor::Nu
private

Poisson's ratio.

Referenced by nu().

◆ StaticIndex

const unsigned oomph::PMLTimeHarmonicIsotropicElasticityTensor::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.

Translation scheme between the 21 independent components of the general elasticity tensor and the isotropic case

Referenced by independent_component().


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