30 #ifndef OOMPH_ELASTICITY_TENSOR_HEADER
31 #define OOMPH_ELASTICITY_TENSOR_HEADER
35 #include <oomph-lib-config.h>
38 #include "../generic/oomph_utilities.h"
59 static const unsigned Index[3][3][3][3];
75 const unsigned& l)
const
77 if ((
i > 2) || (
j > 2) || (
k > 2) || (l > 2))
79 std::ostringstream error_message;
82 error_message <<
"Range Error : Index 1 " <<
i
83 <<
" is not in the range (0,2)";
87 error_message <<
"Range Error : Index 2 " <<
j
88 <<
" is not in the range (0,2)";
93 error_message <<
"Range Error : Index 2 " <<
k
94 <<
" is not in the range (0,2)";
99 error_message <<
"Range Error : Index 4 " << l
100 <<
" is not in the range (0,2)";
123 const unsigned& l)
const
140 std::stringstream error_stream;
141 error_stream <<
"Broken base implementation.\n"
142 <<
"Must be overloaded for specific storage schemes.\n";
179 double lambda =
E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
180 double mu =
E / (2.0 * (1.0 + nu));
194 double lambda =
E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
195 double mu =
E / (2.0 * (1.0 + nu));
218 double lambda =
E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu));
219 double mu =
E / (2.0 * (1.0 + nu));
256 for (
unsigned i = 0;
i < 21;
i++)
int i
Definition: BiCGSTAB_step_by_step.cpp:9
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: linear_elasticity/elasticity_tensor.h:55
virtual ~ElasticityTensor()
Empty virtual Destructor.
Definition: linear_elasticity/elasticity_tensor.h:115
double operator()(const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
Definition: linear_elasticity/elasticity_tensor.h:120
static const unsigned Index[3][3][3][3]
Definition: linear_elasticity/elasticity_tensor.h:59
virtual double independent_component(const unsigned &i) const
Definition: linear_elasticity/elasticity_tensor.h:63
ElasticityTensor()
Empty Constructor.
Definition: linear_elasticity/elasticity_tensor.h:111
virtual void set_value(const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l, const double &value)
Definition: linear_elasticity/elasticity_tensor.h:134
void range_check(const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
Definition: linear_elasticity/elasticity_tensor.h:72
Definition: linear_elasticity/elasticity_tensor.h:247
double independent_component(const unsigned &i) const
Overload the independent coefficient function.
Definition: linear_elasticity/elasticity_tensor.h:263
GeneralElasticityTensor()
Empy Constructor.
Definition: linear_elasticity/elasticity_tensor.h:253
void set_value(const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l, const double &value)
Allow the values to be set.
Definition: linear_elasticity/elasticity_tensor.h:269
Definition: linear_elasticity/elasticity_tensor.h:160
IsotropicElasticityTensor(const double &nu, const double &E)
Definition: linear_elasticity/elasticity_tensor.h:174
IsotropicElasticityTensor(const Vector< double > &lame)
Definition: linear_elasticity/elasticity_tensor.h:202
void set_lame_coefficients(const double &lambda, const double &mu)
Definition: linear_elasticity/elasticity_tensor.h:233
IsotropicElasticityTensor(const double &nu)
Definition: linear_elasticity/elasticity_tensor.h:187
double independent_component(const unsigned &i) const
Overload the independent coefficient function.
Definition: linear_elasticity/elasticity_tensor.h:225
void update_constitutive_parameters(const double &nu, const double &E=1.0)
Definition: linear_elasticity/elasticity_tensor.h:214
static const unsigned StaticIndex[21]
Translation scheme for the isotropic elasticity tensor.
Definition: linear_elasticity/elasticity_tensor.h:166
Definition: matrices.h:74
Definition: oomph_definitions.h:222
char char char int int * k
Definition: level2_impl.h:374
squared absolute value
Definition: GlobalFunctions.h:87
std::complex< double > mu
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:52
double E
Elastic modulus.
Definition: TwenteMeshGluing.cpp:68
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2