www.mooseframework.org
SymmIsotropicElasticityTensor.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "SymmElasticityTensor.h"
13 
34 {
35 public:
36  SymmIsotropicElasticityTensor(const bool constant = true);
37 
39 
40  void unsetConstants() { _lambda_set = _mu_set = _E_set = _nu_set = _k_set = false; }
41 
45  void setLambda(const Real lambda);
46 
50  void setMu(const Real mu);
51 
55  void setYoungsModulus(const Real E);
56 
60  void setPoissonsRatio(const Real nu);
61 
65  void setBulkModulus(const Real k);
66 
70  void setShearModulus(const Real k);
71 
75  Real mu() const;
76 
80  Real shearModulus() const;
81 
85  Real youngsModulus() const;
86 
87  virtual Real stiffness(const unsigned i,
88  const unsigned j,
89  const RealGradient & test,
90  const RealGradient & phi) const;
91 
92  virtual void multiply(const SymmTensor & x, SymmTensor & b) const;
93 
94  virtual void adjustForCracking(const RealVectorValue & crack_flags);
95  virtual void adjustForCrackingWithShearRetention(const RealVectorValue & crack_flags);
96 
97 protected:
99 
100  Real _lambda, _mu, _E, _nu, _k;
101 
105  virtual void calculateEntries(unsigned int qp);
106  void setEntries(Real C11, Real C12, Real C44);
107 
114 };
115 
SymmIsotropicElasticityTensor::mu
Real mu() const
Return Mu.
Definition: SymmIsotropicElasticityTensor.C:84
SymmElasticityTensor.h
SymmIsotropicElasticityTensor
Defines an Isotropic Elasticity Tensor.
Definition: SymmIsotropicElasticityTensor.h:33
SymmIsotropicElasticityTensor::youngsModulus
Real youngsModulus() const
Return the youngs modulus.
Definition: SymmIsotropicElasticityTensor.C:75
libMesh::RealGradient
VectorValue< Real > RealGradient
Definition: GrainForceAndTorqueInterface.h:17
SymmIsotropicElasticityTensor::setEntries
void setEntries(Real C11, Real C12, Real C44)
Definition: SymmIsotropicElasticityTensor.C:143
SymmIsotropicElasticityTensor::stiffness
virtual Real stiffness(const unsigned i, const unsigned j, const RealGradient &test, const RealGradient &phi) const
Definition: SymmIsotropicElasticityTensor.C:156
SymmIsotropicElasticityTensor::calculateEntries
virtual void calculateEntries(unsigned int qp)
Fill in the matrix.
Definition: SymmIsotropicElasticityTensor.C:131
SymmIsotropicElasticityTensor::_k
Real _k
Definition: SymmIsotropicElasticityTensor.h:100
SymmElasticityTensor::constant
void constant(bool c)
Definition: SymmElasticityTensor.h:66
SymmIsotropicElasticityTensor::_mu_set
bool _mu_set
Definition: SymmIsotropicElasticityTensor.h:98
SymmIsotropicElasticityTensor::SymmIsotropicElasticityTensor
SymmIsotropicElasticityTensor(const bool constant=true)
Definition: SymmIsotropicElasticityTensor.C:12
SymmIsotropicElasticityTensor::_lambda
Real _lambda
Definition: SymmIsotropicElasticityTensor.h:100
SymmElasticityTensor
This class defines a basic set of capabilities any elasticity tensor should have.
Definition: SymmElasticityTensor.h:55
SymmIsotropicElasticityTensor::_nu
Real _nu
Definition: SymmIsotropicElasticityTensor.h:100
SymmIsotropicElasticityTensor::unsetConstants
void unsetConstants()
Definition: SymmIsotropicElasticityTensor.h:40
SymmIsotropicElasticityTensor::~SymmIsotropicElasticityTensor
virtual ~SymmIsotropicElasticityTensor()
Definition: SymmIsotropicElasticityTensor.h:38
SymmIsotropicElasticityTensor::setYoungsModulus
void setYoungsModulus(const Real E)
Set the Young's Modulus.
Definition: SymmIsotropicElasticityTensor.C:42
SymmIsotropicElasticityTensor::_nu_set
bool _nu_set
Definition: SymmIsotropicElasticityTensor.h:98
SymmIsotropicElasticityTensor::_k_set
bool _k_set
Definition: SymmIsotropicElasticityTensor.h:98
SymmIsotropicElasticityTensor::_mu
Real _mu
Definition: SymmIsotropicElasticityTensor.h:100
SymmIsotropicElasticityTensor::adjustForCracking
virtual void adjustForCracking(const RealVectorValue &crack_flags)
Definition: SymmIsotropicElasticityTensor.C:251
SymmIsotropicElasticityTensor::adjustForCrackingWithShearRetention
virtual void adjustForCrackingWithShearRetention(const RealVectorValue &crack_flags)
Definition: SymmIsotropicElasticityTensor.C:290
SymmTensor
Definition: SymmTensor.h:21
SymmIsotropicElasticityTensor::calculateLameCoefficients
void calculateLameCoefficients()
Calculates lambda and mu based on what has been set.
Definition: SymmIsotropicElasticityTensor.C:94
SymmIsotropicElasticityTensor::setLambda
void setLambda(const Real lambda)
Set the first Lame Coefficient.
Definition: SymmIsotropicElasticityTensor.C:28
SymmIsotropicElasticityTensor::setPoissonsRatio
void setPoissonsRatio(const Real nu)
Set Poissons Ratio.
Definition: SymmIsotropicElasticityTensor.C:49
SymmIsotropicElasticityTensor::setMu
void setMu(const Real mu)
Set the second Lame Coefficient.
Definition: SymmIsotropicElasticityTensor.C:35
SymmIsotropicElasticityTensor::_lambda_set
bool _lambda_set
Definition: SymmIsotropicElasticityTensor.h:98
SymmIsotropicElasticityTensor::multiply
virtual void multiply(const SymmTensor &x, SymmTensor &b) const
Definition: SymmIsotropicElasticityTensor.C:224
SymmIsotropicElasticityTensor::setBulkModulus
void setBulkModulus(const Real k)
Set the Bulk Modulus.
Definition: SymmIsotropicElasticityTensor.C:56
SymmIsotropicElasticityTensor::_E_set
bool _E_set
Definition: SymmIsotropicElasticityTensor.h:98
SymmIsotropicElasticityTensor::_E
Real _E
Definition: SymmIsotropicElasticityTensor.h:100
SymmIsotropicElasticityTensor::shearModulus
Real shearModulus() const
Return the shear modulus...
Definition: SymmIsotropicElasticityTensor.C:69
SymmIsotropicElasticityTensor::setShearModulus
void setShearModulus(const Real k)
Set the shear modulus...
Definition: SymmIsotropicElasticityTensor.C:63