This class defines a basic set of capabilities any elasticity tensor should have. More...
#include <SymmElasticityTensor.h>
Public Member Functions | |
SymmElasticityTensor (const bool constant=false) | |
Default constructor... More... | |
void | constant (bool c) |
virtual | ~SymmElasticityTensor () |
void | copyValues (SymmElasticityTensor &rhs) const |
void | calculate (unsigned int qp) |
Public function that will be called whenever the values for this matrix need to be filled in. More... | |
virtual void | multiply (const SymmTensor &x, SymmTensor &b) const |
SymmTensor | operator* (const SymmTensor &x) const |
SymmElasticityTensor | operator* (Real x) const |
virtual Real | stiffness (const unsigned int i, const unsigned int j, const RealGradient &test, const RealGradient &phi) const |
SymmElasticityTensor | operator+ (const SymmElasticityTensor &rhs) const |
void | operator+= (const SymmElasticityTensor &rhs) |
void | operator-= (const SymmElasticityTensor &rhs) |
void | operator*= (Real rhs) |
void | operator/= (Real rhs) |
void | zero () |
void | convertFrom9x9 (const ColumnMajorMatrix &cmm) |
void | convertFrom6x6 (const ColumnMajorMatrix &cmm) |
ColumnMajorMatrix | columnMajorMatrix9x9 () const |
ColumnMajorMatrix | columnMajorMatrix6x6 () const |
void | form9x9Rotation (const ColumnMajorMatrix &R_3x3, ColumnMajorMatrix &R_9x9) const |
void | rotateFromGlobalToLocal (const ColumnMajorMatrix &R) |
void | rotateFromLocalToGlobal (const ColumnMajorMatrix &R) |
virtual void | adjustForCracking (const RealVectorValue &crack_flags) |
virtual void | adjustForCrackingWithShearRetention (const RealVectorValue &crack_flags) |
virtual SymmElasticityTensor | calculateDerivative (unsigned int qp, unsigned int i) |
void | fillFromInputVector (std::vector< Real > input, bool all) |
Real | sum_3x3 () const |
RealGradient | sum_3x1 () const |
Real | valueAtIndex (int i) const |
Protected Member Functions | |
virtual void | calculateEntries (unsigned int qp) |
Virtual (must be overriden by derived class). More... | |
Protected Attributes | |
bool | _constant |
Whether or not the matrix is constant for all of time and space. More... | |
bool | _values_computed |
Whether or not the values have been computed once. More... | |
Real | _val [21] |
Friends | |
std::ostream & | operator<< (std::ostream &stream, const SymmElasticityTensor &obj) |
template<class T > | |
void | dataStore (std::ostream &, T &, void *) |
template<class T > | |
void | dataLoad (std::istream &, T &, void *) |
This class defines a basic set of capabilities any elasticity tensor should have.
The SymmElasticityTensor represents the C_ijkl 3x3x3x3 tensor by a symmetric 6x6 matrix. 21 entries are stored.
Entries: Indices: C11 C12 C13 C14 C15 C16 0 1 2 3 4 5 C22 C23 C24 C25 C26 6 7 8 9 10 C33 C34 C35 C36 11 12 13 14 C44 C45 C46 15 16 17 C55 C56 18 19 C66 20
Multiplication by the strain is done by: |C11 C12 C13 C14 C15 C16| | exx| |Sxx| | C22 C23 C24 C25 C26| | eyy| |Syy| | C33 C34 C35 C36| | ezz| = |Szz| | C44 C45 C46| |2*exy| |Sxy| | C55 C56| |2*eyz| |Syz| | C66| |2*ezx| |Szx|
If the elasticity matrix is taken as 9x9 (with a column-major representation of the stress/strain), the relationship is: C11 C14 C16 C14 C12 C15 C16 C15 C13 C44 C46 C44 C42 C45 C46 C45 C43 C66 C64 C62 C65 C66 C65 C63 C44 C42 C45 C46 C45 C43 C22 C25 C26 C25 C23 C55 C56 C55 C53 C66 C65 C63 C55 C53 C33
Definition at line 55 of file SymmElasticityTensor.h.
SymmElasticityTensor::SymmElasticityTensor | ( | const bool | constant = false | ) |
Default constructor...
constant | Determines whether or not the matrix will get recomputed multiple times (false) or just once (true). |
Definition at line 31 of file SymmElasticityTensor.C.
Referenced by calculateDerivative().
|
inlinevirtual |
Definition at line 68 of file SymmElasticityTensor.h.
|
virtual |
Reimplemented in SymmIsotropicElasticityTensor.
Definition at line 372 of file SymmElasticityTensor.C.
Referenced by SolidModel::crackingStrainDirections().
|
virtual |
Reimplemented in SymmIsotropicElasticityTensor.
Definition at line 378 of file SymmElasticityTensor.C.
Referenced by SolidModel::crackingStrainDirections().
void SymmElasticityTensor::calculate | ( | unsigned int | qp | ) |
Public function that will be called whenever the values for this matrix need to be filled in.
Definition at line 41 of file SymmElasticityTensor.C.
Referenced by SolidModel::computeElasticityTensor(), LinearIsotropicMaterial::computeProperties(), and SolidModel::createElasticityTensor().
|
virtual |
Definition at line 328 of file SymmElasticityTensor.C.
|
protectedvirtual |
Virtual (must be overriden by derived class).
This method actually fills in the entries of the tensor... using whatever information it has.
Reimplemented in SymmAnisotropicElasticityTensor, and SymmIsotropicElasticityTensor.
Definition at line 51 of file SymmElasticityTensor.C.
Referenced by calculate().
ColumnMajorMatrix SymmElasticityTensor::columnMajorMatrix6x6 | ( | ) | const |
Definition at line 230 of file SymmElasticityTensor.C.
Referenced by SymmAnisotropicElasticityTensor::form_transformed_material_dt_matrix().
ColumnMajorMatrix SymmElasticityTensor::columnMajorMatrix9x9 | ( | ) | const |
Definition at line 245 of file SymmElasticityTensor.C.
Referenced by SymmAnisotropicElasticityTensor::form_transformed_material_dmat_matrix(), rotateFromGlobalToLocal(), and rotateFromLocalToGlobal().
|
inline |
Definition at line 66 of file SymmElasticityTensor.h.
void SymmElasticityTensor::convertFrom6x6 | ( | const ColumnMajorMatrix & | cmm | ) |
Definition at line 194 of file SymmElasticityTensor.C.
void SymmElasticityTensor::convertFrom9x9 | ( | const ColumnMajorMatrix & | cmm | ) |
Definition at line 158 of file SymmElasticityTensor.C.
Referenced by SymmAnisotropicElasticityTensor::form_transformed_material_dt_matrix(), rotateFromGlobalToLocal(), and rotateFromLocalToGlobal().
|
inline |
Definition at line 70 of file SymmElasticityTensor.h.
Referenced by SymmAnisotropicElasticityTensor::form_transformed_material_dmat_matrix().
void SymmElasticityTensor::fillFromInputVector | ( | std::vector< Real > | input, |
bool | all | ||
) |
Definition at line 384 of file SymmElasticityTensor.C.
Referenced by LinearGeneralAnisotropicMaterial::LinearGeneralAnisotropicMaterial(), and MacroElastic::updateElasticityTensor().
void SymmElasticityTensor::form9x9Rotation | ( | const ColumnMajorMatrix & | R_3x3, |
ColumnMajorMatrix & | R_9x9 | ||
) | const |
Definition at line 341 of file SymmElasticityTensor.C.
Referenced by SolidModel::crackingStrainDirections().
|
virtual |
Reimplemented in SymmIsotropicElasticityTensor.
Definition at line 56 of file SymmElasticityTensor.C.
Referenced by operator*().
SymmTensor SymmElasticityTensor::operator* | ( | const SymmTensor & | x | ) | const |
Definition at line 79 of file SymmElasticityTensor.C.
SymmElasticityTensor SymmElasticityTensor::operator* | ( | Real | x | ) | const |
Definition at line 333 of file SymmElasticityTensor.C.
|
inline |
Definition at line 118 of file SymmElasticityTensor.h.
|
inline |
Definition at line 93 of file SymmElasticityTensor.h.
|
inline |
Definition at line 102 of file SymmElasticityTensor.h.
|
inline |
Definition at line 110 of file SymmElasticityTensor.h.
|
inline |
Definition at line 126 of file SymmElasticityTensor.h.
void SymmElasticityTensor::rotateFromGlobalToLocal | ( | const ColumnMajorMatrix & | R | ) |
Definition at line 366 of file SymmElasticityTensor.C.
void SymmElasticityTensor::rotateFromLocalToGlobal | ( | const ColumnMajorMatrix & | R | ) |
Definition at line 360 of file SymmElasticityTensor.C.
Referenced by SolidModel::crackingStrainDirections().
|
virtual |
Definition at line 87 of file SymmElasticityTensor.C.
RealGradient SymmElasticityTensor::sum_3x1 | ( | ) | const |
Definition at line 422 of file SymmElasticityTensor.C.
Real SymmElasticityTensor::sum_3x3 | ( | ) | const |
Real SymmElasticityTensor::valueAtIndex | ( | int | i | ) | const |
Definition at line 409 of file SymmElasticityTensor.C.
Referenced by RateDepSmearCrackModel::computeStress().
|
inline |
Definition at line 134 of file SymmElasticityTensor.h.
Referenced by SymmAnisotropicElasticityTensor::calculateEntries().
|
friend |
|
friend |
|
friend |
Definition at line 306 of file SymmElasticityTensor.C.
|
protected |
Whether or not the matrix is constant for all of time and space.
Definition at line 173 of file SymmElasticityTensor.h.
Referenced by calculate(), constant(), dataLoad(), and dataStore().
|
protected |
Definition at line 188 of file SymmElasticityTensor.h.
Referenced by SymmIsotropicElasticityTensor::adjustForCracking(), SymmIsotropicElasticityTensor::adjustForCrackingWithShearRetention(), SymmAnisotropicElasticityTensor::calculateEntries(), columnMajorMatrix6x6(), columnMajorMatrix9x9(), convertFrom6x6(), convertFrom9x9(), copyValues(), dataLoad(), dataStore(), fillFromInputVector(), SymmAnisotropicElasticityTensor::initialize_anisotropic_material_dt_matrix(), multiply(), SymmIsotropicElasticityTensor::multiply(), operator*=(), operator+=(), operator-=(), operator/=(), operator<<(), SymmAnisotropicElasticityTensor::rotate(), SymmIsotropicElasticityTensor::setEntries(), SymmAnisotropicElasticityTensor::setMaterialConstantc11(), SymmAnisotropicElasticityTensor::setMaterialConstantc12(), SymmAnisotropicElasticityTensor::setMaterialConstantc44(), SymmIsotropicElasticityTensor::stiffness(), stiffness(), sum_3x1(), sum_3x3(), SymmAnisotropicElasticityTensor::SymmAnisotropicElasticityTensor(), SymmElasticityTensor(), valueAtIndex(), and zero().
|
protected |
Whether or not the values have been computed once.
Definition at line 178 of file SymmElasticityTensor.h.
Referenced by calculate(), dataLoad(), and dataStore().