GMatElastoPlasticQPot 0.18.3
|
Array of material points with an elasto-plastic material model. More...
#include <GMatElastoPlasticQPot/Cartesian2d.h>
Public Member Functions | |
template<class T , class Y > | |
Smooth (const T &K, const T &G, const Y &epsy) | |
Construct system. 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 GMatElastoPlasticQPot::Cartesian2d::Cusp< N > | |
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 GMatElastoPlasticQPot::Cartesian2d::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... | |
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::Cartesian2d::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 Cartesian2d::O2() More... | |
array_type::tensor< double, N+4 > | O4 () const |
Array of Cartesian2d::O4() More... | |
array_type::tensor< double, N+2 > | I2 () const |
Array of Cartesian2d::I2() More... | |
array_type::tensor< double, N+4 > | II () const |
Array of Cartesian2d::II() More... | |
array_type::tensor< double, N+4 > | I4 () const |
Array of Cartesian2d::I4() More... | |
array_type::tensor< double, N+4 > | I4rt () const |
Array of Cartesian2d::I4rt() More... | |
array_type::tensor< double, N+4 > | I4s () const |
Array of Cartesian2d::I4s() More... | |
array_type::tensor< double, N+4 > | I4d () const |
Array of Cartesian2d::I4d() More... | |
Additional Inherited Members | |
Static Public Attributes inherited from GMatTensor::Cartesian2d::Array< N > | |
static constexpr std::size_t | rank = N |
Rank of the array (the actual rank is increased with the tensor-rank). More... | |
Protected Member Functions inherited from GMatElastoPlasticQPot::Cartesian2d::Cusp< N > | |
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 GMatElastoPlasticQPot::Cartesian2d::Elastic< N > | |
template<class T > | |
void | init_Elastic (const T &K, const T &G) |
Constructor alias. More... | |
Protected Member Functions inherited from GMatTensor::Cartesian2d::Array< N > | |
void | init (const std::array< size_t, N > &shape) |
Constructor 'alias'. More... | |
Protected Attributes inherited from GMatElastoPlasticQPot::Cartesian2d::Cusp< N > | |
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 GMatElastoPlasticQPot::Cartesian2d::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::Cartesian2d::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, 2, 2]. More... | |
std::array< size_t, N+4 > | m_shape_tensor4 |
Shape of an array of 4th-order tensors == [m_shape, 2, 2, 2, 2]. More... | |
Static Protected Attributes inherited from GMatTensor::Cartesian2d::Array< N > | |
static constexpr size_t | m_ndim = 2 |
Number of dimensions of tensors. More... | |
static constexpr size_t | m_stride_tensor2 = 4 |
Storage stride for 2nd-order tensors ( \( 2^2 \)). More... | |
static constexpr size_t | m_stride_tensor4 = 16 |
Storage stride for 4th-order tensors ( \( 2^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 smooth wells.
N | Rank of the array. |
Definition at line 579 of file Cartesian2d.h.
|
inline |
Construct system.
K | Bulk modulus per item. |
G | Shear modulus per item. |
epsy | Yield strain sequence per item. |
Definition at line 612 of file Cartesian2d.h.
|
inlineoverridevirtual |
Potential energy per item.
Reimplemented from GMatElastoPlasticQPot::Cartesian2d::Cusp< N >.
Definition at line 659 of file Cartesian2d.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 | Irrelevant, ignored. |
Reimplemented from GMatElastoPlasticQPot::Cartesian2d::Cusp< N >.
Definition at line 617 of file Cartesian2d.h.