GMatElastoPlasticQPot 0.18.3
|
Array of material points with an elasto-plastic material model. More...
#include <GMatElastoPlasticQPot/Cartesian3d.h>
Public Member Functions | |
template<class T , class Y > | |
Cusp (const T &K, const T &G, const Y &epsy) | |
Construct system. More... | |
const array_type::tensor< double, N+1 > & | epsy () const |
Yield strains per item. More... | |
template<class T > | |
void | set_epsy (const T &epsy) |
Overwrite yield strains per item. More... | |
const array_type::tensor< size_t, N > & | i () const |
Index of the current yield strain per item. More... | |
const array_type::tensor< double, N > & | eps () const |
Equivalent strain per item. More... | |
array_type::tensor< double, N > | epsy_left () const |
Current yield strain left per item. More... | |
array_type::tensor< double, N > | epsy_right () const |
Current yield strain right per item. More... | |
array_type::tensor< double, N > | epsp () const |
Plastic strain per item. More... | |
void | refresh (bool compute_tangent=true) override |
Recompute stress from strain. More... | |
array_type::tensor< double, N > | energy () const override |
Potential energy per item. More... | |
Public Member Functions inherited from GMatElastic::Cartesian3d::Elastic< N > | |
template<class T > | |
Elastic (const T &K, const T &G) | |
Construct system. More... | |
const array_type::tensor< double, N > & | K () const |
Bulk modulus per item. More... | |
const array_type::tensor< double, N > & | G () const |
Shear modulus per item. More... | |
template<class T > | |
void | set_Eps (const T &arg) |
Set strain tensors. More... | |
template<class T > | |
void | set_Eps (const T &arg, bool compute_tangent) |
Set strain tensors. More... | |
virtual void | refresh (bool compute_tangent=true) |
Recompute stress from strain. More... | |
const array_type::tensor< double, N+2 > & | Eps () const |
Strain tensor per item. More... | |
array_type::tensor< double, N+2 > & | Eps () |
Strain tensor per item. More... | |
const array_type::tensor< double, N+2 > & | Sig () const |
Stress tensor per item. More... | |
const array_type::tensor< double, N+4 > & | C () const |
Tangent tensor per item. More... | |
virtual array_type::tensor< double, N > | energy () const |
Potential energy per item. More... | |
Public Member Functions inherited from GMatTensor::Cartesian3d::Array< N > | |
Array (const std::array< size_t, N > &shape) | |
Constructor. More... | |
const std::array< size_t, N > & | shape () const |
Shape of the array (of scalars). More... | |
const std::array< size_t, N+2 > & | shape_tensor2 () const |
Shape of the array of second-order tensors. More... | |
const std::array< size_t, N+4 > & | shape_tensor4 () const |
Shape of the array of fourth-order tensors. More... | |
array_type::tensor< double, N+2 > | O2 () const |
Array of Cartesian3d::O2() More... | |
array_type::tensor< double, N+4 > | O4 () const |
Array of Cartesian3d::O4() More... | |
array_type::tensor< double, N+2 > | I2 () const |
Array of Cartesian3d::I2() More... | |
array_type::tensor< double, N+4 > | II () const |
Array of Cartesian3d::II() More... | |
array_type::tensor< double, N+4 > | I4 () const |
Array of Cartesian3d::I4() More... | |
array_type::tensor< double, N+4 > | I4rt () const |
Array of Cartesian3d::I4rt() More... | |
array_type::tensor< double, N+4 > | I4s () const |
Array of Cartesian3d::I4s() More... | |
array_type::tensor< double, N+4 > | I4d () const |
Array of Cartesian3d::I4d() More... | |
Protected Member Functions | |
template<class T , class Y > | |
void | init_Cusp (const T &K, const T &G, const Y &epsy) |
Construct system. More... | |
Protected Member Functions inherited from GMatElastic::Cartesian3d::Elastic< N > | |
template<class T > | |
void | init_Elastic (const T &K, const T &G) |
Construct system. More... | |
Protected Member Functions inherited from GMatTensor::Cartesian3d::Array< N > | |
void | init (const std::array< size_t, N > &shape) |
Constructor 'alias'. More... | |
Protected Attributes | |
array_type::tensor< size_t, N > | m_i |
Index of the current yield strain per item. More... | |
array_type::tensor< double, N > | m_eps |
Equivalent strain. More... | |
array_type::tensor< double, N+1 > | m_epsy |
Yield strain sequence. More... | |
size_t | m_nyield |
shape(-1) More... | |
Protected Attributes inherited from GMatElastic::Cartesian3d::Elastic< N > | |
array_type::tensor< double, N > | m_K |
Bulk modulus per item. More... | |
array_type::tensor< double, N > | m_G |
Shear modulus per item. More... | |
array_type::tensor< double, N+2 > | m_Eps |
Strain tensor per item. More... | |
array_type::tensor< double, N+2 > | m_Sig |
Stress tensor per item. More... | |
array_type::tensor< double, N+4 > | m_C |
Tangent per item. More... | |
Protected Attributes inherited from GMatTensor::Cartesian3d::Array< N > | |
size_t | m_size |
Size of the array (of scalars) == prod(m_shape). More... | |
std::array< size_t, N > | m_shape |
Shape of the array (of scalars). More... | |
std::array< size_t, N+2 > | m_shape_tensor2 |
Shape of an array of 2nd-order tensors == [m_shape, 3, 3]. More... | |
std::array< size_t, N+4 > | m_shape_tensor4 |
Shape of an array of 4th-order tensors == [m_shape, 3, 3, 3, 3]. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from GMatTensor::Cartesian3d::Array< N > | |
static constexpr std::size_t | rank = N |
Rank of the array (the actual rank is increased with the tensor-rank). More... | |
Static Protected Attributes inherited from GMatTensor::Cartesian3d::Array< N > | |
static constexpr size_t | m_ndim = 3 |
Number of dimensions of tensors. More... | |
static constexpr size_t | m_stride_tensor2 = 9 |
Storage stride for 2nd-order tensors ( \( 3^2 \)). More... | |
static constexpr size_t | m_stride_tensor4 = 81 |
Storage stride for 4th-order tensors ( \( 3^4 \)). More... | |
Array of material points with an elasto-plastic material model.
The response is defined by a potential energy landscape consisting of a sequence of parabolic wells.
The corresponding elastic response is GMatElastic::Cartesian3d::Elastic.
N | Rank of the array. |
Definition at line 129 of file Cartesian3d.h.
|
inline |
Construct system.
K | Bulk modulus per item. |
G | Shear modulus per item. |
epsy | Yield strain sequence per item. |
Definition at line 162 of file Cartesian3d.h.
|
inlineoverridevirtual |
Potential energy per item.
Reimplemented from GMatElastic::Cartesian3d::Elastic< N >.
Reimplemented in GMatElastoPlasticQPot::Cartesian3d::Smooth< N >.
Definition at line 332 of file Cartesian3d.h.
|
inline |
|
inline |
Plastic strain per item.
Convenience function, same as (epsy[..., i] + epsy[..., i + 1]) / 2
.
Definition at line 274 of file Cartesian3d.h.
|
inline |
|
inline |
Current yield strain left per item.
Convenience function, same as epsy[..., i]
.
Definition at line 242 of file Cartesian3d.h.
|
inline |
Current yield strain right per item.
Convenience function, same as epsy[..., i + 1]
.
Definition at line 258 of file Cartesian3d.h.
|
inline |
Index of the current yield strain per item.
By definition epsy[..., i] < eps[...] <= epsy[..., i + 1]
Definition at line 223 of file Cartesian3d.h.
|
inlineprotected |
Construct system.
K | Bulk modulus per item. |
G | Shear modulus per item. |
epsy | Yield strain sequence per item. |
Definition at line 175 of file Cartesian3d.h.
|
inlineoverridevirtual |
Recompute stress from strain.
From C++, this function need never be called: the API takes care of this.
For Python, this function should only be called when you modify elements of Eps(). For example
mat.Eps[e, q, 0, 1] = value ... mat.refresh() # "Eps" was changed without "mat" knowing
Instead, if you write an nd-array, the API takes care of the refresh. I.e.
mat.Eps = new_Eps # no further action needed, "mat" was refreshed
Note though that you can call this function as often as you like, you will only loose time.
compute_tangent | Update tangent (if needed). |
Reimplemented from GMatElastic::Cartesian3d::Elastic< N >.
Reimplemented in GMatElastoPlasticQPot::Cartesian3d::Smooth< N >.
Definition at line 286 of file Cartesian3d.h.
|
inline |
Overwrite yield strains per item.
epsy | Yield strain sequence per item. |
Definition at line 198 of file Cartesian3d.h.
|
protected |
Equivalent strain.
Definition at line 132 of file Cartesian3d.h.
|
protected |
Yield strain sequence.
Definition at line 133 of file Cartesian3d.h.
|
protected |
Index of the current yield strain per item.
Definition at line 131 of file Cartesian3d.h.
|
protected |
shape(-1)
Definition at line 134 of file Cartesian3d.h.