|
FrictionQPotFEM 0.23.3
|
Array of material points with an elasto-plastic material model. More...
#include <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.