FrictionQPotFEM 0.23.3
|
Similar to LocalTriggerFineLayerFull, with the difference that only a (small) group of elements around the triggered element is considered to compute the energy barriers. More...
#include <FrictionQPotFEM/UniformSingleLayer2d.h>
Public Member Functions | |
LocalTriggerFineLayer (const System &sys, size_t roi=5) | |
Constructor. More... | |
array_type::tensor< double, 2 > | slice (const array_type::tensor< double, 2 > &arg, size_t e) const override |
Select values in the region of interest around a plastic element. More... | |
array_type::tensor< double, 4 > | slice (const array_type::tensor< double, 4 > &arg, size_t e) const override |
Select values in the region of interest around a plastic element. More... | |
array_type::tensor< double, 4 > | Eps_s (size_t trigger_plastic) const override |
Integration point strain tensors for LocalTriggerFineLayerFull::u_s. More... | |
array_type::tensor< double, 4 > | Eps_p (size_t trigger_plastic) const override |
Integration point strain tensors for LocalTriggerFineLayerFull::u_p. More... | |
array_type::tensor< double, 4 > | Sig_s (size_t trigger_plastic) const override |
Integration point stress tensors for LocalTriggerFineLayerFull::u_s. More... | |
array_type::tensor< double, 4 > | Sig_p (size_t trigger_plastic) const override |
Integration point stress tensors for LocalTriggerFineLayerFull::u_p. More... | |
![]() | |
LocalTriggerFineLayerFull (const System &sys) | |
Constructor, reading the basic properties of the System, and computing the perturbation for all plastic elements. More... | |
array_type::tensor< double, 2 > | u_s (size_t trigger_plastic) const |
Displacement field for the simple shear eigen-stress applied to a specific element. More... | |
array_type::tensor< double, 2 > | u_p (size_t trigger_plastic) const |
Displacement field for the pure shear eigen-stress applied to a specific element. More... | |
virtual array_type::tensor< double, 4 > | Eps_s (size_t trigger_plastic) const |
Integration point strain tensors for LocalTriggerFineLayerFull::u_s. More... | |
virtual array_type::tensor< double, 4 > | Eps_p (size_t trigger_plastic) const |
Integration point strain tensors for LocalTriggerFineLayerFull::u_p. More... | |
virtual array_type::tensor< double, 4 > | Sig_s (size_t trigger_plastic) const |
Integration point stress tensors for LocalTriggerFineLayerFull::u_s. More... | |
virtual array_type::tensor< double, 4 > | Sig_p (size_t trigger_plastic) const |
Integration point stress tensors for LocalTriggerFineLayerFull::u_p. More... | |
virtual array_type::tensor< double, 2 > | slice (const array_type::tensor< double, 2 > &arg, size_t e) const |
Empty function, used by LocalTriggerFineLayer. More... | |
virtual array_type::tensor< double, 4 > | slice (const array_type::tensor< double, 4 > &arg, size_t e) const |
Empty function, used by LocalTriggerFineLayer. More... | |
void | setState (const array_type::tensor< double, 4 > &Eps, const array_type::tensor< double, 4 > &Sig, const array_type::tensor< double, 2 > &epsy, size_t N=100) |
Set current state and compute energy barriers to reach the specified yield surface (for all plastic elements). More... | |
void | setStateMinimalSearch (const array_type::tensor< double, 4 > &Eps, const array_type::tensor< double, 4 > &Sig, const array_type::tensor< double, 2 > &epsy) |
Set current state and compute energy barriers to reach the specified yield surface (for all plastic elements). More... | |
void | setStateSimpleShear (const array_type::tensor< double, 4 > &Eps, const array_type::tensor< double, 4 > &Sig, const array_type::tensor< double, 2 > &epsy) |
Set current state and compute energy barriers to reach the specified yield surface, for a purely simple shear perturbation (for all plastic elements) More... | |
array_type::tensor< double, 2 > | barriers () const |
Get all energy barriers, as energy density. More... | |
const array_type::tensor< double, 2 > & | p () const |
The energy barrier in LocalTriggerFineLayerFull::barriers is reached with a displacement LocalTriggerFineLayerFull::delta_u = p * LocalTriggerFineLayerFull::u_p + s * LocalTriggerFineLayerFull::u_s. More... | |
const array_type::tensor< double, 2 > & | s () const |
The energy barrier in LocalTriggerFineLayerFull::barriers is reached with a displacement LocalTriggerFineLayerFull::delta_u = p * LocalTriggerFineLayerFull::u_p + s * LocalTriggerFineLayerFull::u_s. More... | |
const array_type::tensor< double, 2 > & | dgamma () const |
Simple shear mode for all integration points of the triggered element, for all elements. More... | |
const array_type::tensor< double, 2 > & | dE () const |
Pure shear mode for all integration points of the triggered element, for all elements. More... | |
array_type::tensor< double, 2 > | delta_u (size_t e, size_t q) const |
The energy barrier in LocalTriggerFineLayerFull::barriers is reached with this displacement field. More... | |
Protected Attributes | |
std::vector< array_type::tensor< size_t, 1 > > | m_elemslice |
Region-of-interest (ROI) per plastic element. More... | |
std::vector< array_type::tensor< double, 4 > > | m_Eps_s_slice |
LocalTriggerFineLayerFull::m_Eps_s for the ROI only. More... | |
std::vector< array_type::tensor< double, 4 > > | m_Eps_p_slice |
LocalTriggerFineLayerFull::m_Eps_p for the ROI only. More... | |
std::vector< array_type::tensor< double, 4 > > | m_Sig_s_slice |
LocalTriggerFineLayerFull::m_Sig_s for the ROI only. More... | |
std::vector< array_type::tensor< double, 4 > > | m_Sig_p_slice |
LocalTriggerFineLayerFull::m_Sig_p for the ROI only. More... | |
![]() | |
size_t | m_nip |
Number of integration points. More... | |
size_t | m_nelem_plas |
Number of plastic elements. More... | |
array_type::tensor< size_t, 1 > | m_elem_plas |
Plastic elements. More... | |
std::vector< array_type::tensor< double, 2 > > | m_u_s |
Perturbation for each plastic element. More... | |
std::vector< array_type::tensor< double, 2 > > | m_u_p |
Displacement field for pure shear perturbation. More... | |
std::vector< array_type::tensor< double, 4 > > | m_Eps_s |
Strain field for simple shear perturbation. More... | |
std::vector< array_type::tensor< double, 4 > > | m_Eps_p |
Strain field for pure shear perturbation. More... | |
std::vector< array_type::tensor< double, 4 > > | m_Sig_s |
Stress field for simple shear perturbation. More... | |
std::vector< array_type::tensor< double, 4 > > | m_Sig_p |
Stress field for pure shear perturbation. More... | |
std::vector< array_type::tensor< size_t, 1 > > | m_nodemap |
Node-map for the roll. More... | |
std::vector< array_type::tensor< size_t, 1 > > | m_elemmap |
Element-map for the roll. More... | |
array_type::tensor< double, 2 > | m_dV |
Integration point volume. More... | |
double | m_V |
Volume of a plastic element: assumed homogeneous! More... | |
std::array< size_t, 4 > | m_shape_T2 |
Shape of an integration point tensor. More... | |
array_type::tensor< double, 2 > | m_smin |
value of "s" at minimal work "W" [nip, N] More... | |
array_type::tensor< double, 2 > | m_pmin |
value of "p" at minimal work "W" [nip, N] More... | |
array_type::tensor< double, 2 > | m_Wmin |
value of minimal work "W" [nip, N] More... | |
array_type::tensor< double, 2 > | m_dgamma |
Strain change in the element for each plastic element:: More... | |
array_type::tensor< double, 2 > | m_dE |
== Eps_p(plastic(e), q, 0, 0) [nip, N] More... | |
Additional Inherited Members | |
![]() | |
template<class T > | |
void | computePerturbation (size_t trigger_plastic, const array_type::tensor< double, 2 > &sig_star, array_type::tensor< double, 2 > &u, array_type::tensor< double, 4 > &Eps, array_type::tensor< double, 4 > &Sig, GooseFEM::MatrixPartitioned &K, GooseFEM::MatrixPartitionedSolver<> &solver, const GooseFEM::Element::Quad4::Quadrature &quad, const GooseFEM::VectorPartitioned &vector, T &material) |
Compute the displacement response to an eigen-stress applied to a plastic element. More... | |
Similar to LocalTriggerFineLayerFull, with the difference that only a (small) group of elements around the triggered element is considered to compute the energy barriers.
The should speed-up the evaluation of the energy barriers significantly.
Definition at line 1105 of file UniformSingleLayer2d.h.
|
inline |
Constructor.
sys | System. |
roi | Edge size of the square box encapsulating the triggered element. See GooseFEM::Mesh::Quad4::FineLayer::elementgrid_around_ravel. |
Definition at line 1119 of file UniformSingleLayer2d.h.
|
inlineoverridevirtual |
Integration point strain tensors for LocalTriggerFineLayerFull::u_p.
This function takes the index of the plastic element; the real element number is obtained by LocalTriggerFineLayerFull::m_elem_plas(trigger_plastic). Function reads from memory, all computations are done in the constructor.
trigger_plastic | Index of the plastic element. |
Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.
Definition at line 1181 of file UniformSingleLayer2d.h.
|
inlineoverridevirtual |
Integration point strain tensors for LocalTriggerFineLayerFull::u_s.
This function takes the index of the plastic element; the real element number is obtained by LocalTriggerFineLayerFull::m_elem_plas(trigger_plastic). Function reads from memory, all computations are done in the constructor.
trigger_plastic | Index of the plastic element. |
Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.
Definition at line 1175 of file UniformSingleLayer2d.h.
|
inlineoverridevirtual |
Integration point stress tensors for LocalTriggerFineLayerFull::u_p.
This function takes the index of the plastic element; the real element number is obtained by LocalTriggerFineLayerFull::m_elem_plas(trigger_plastic). Function reads from memory, all computations are done in the constructor.
trigger_plastic | Index of the plastic element. |
Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.
Definition at line 1193 of file UniformSingleLayer2d.h.
|
inlineoverridevirtual |
Integration point stress tensors for LocalTriggerFineLayerFull::u_s.
This function takes the index of the plastic element; the real element number is obtained by LocalTriggerFineLayerFull::m_elem_plas(trigger_plastic). Function reads from memory, all computations are done in the constructor.
trigger_plastic | Index of the plastic element. |
Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.
Definition at line 1187 of file UniformSingleLayer2d.h.
|
inlineoverridevirtual |
Select values in the region of interest around a plastic element.
arg | Integration point scalar. |
e | Index of the plastic element. |
arg
for the region of interest around e
. Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.
Definition at line 1157 of file UniformSingleLayer2d.h.
|
inlineoverridevirtual |
Select values in the region of interest around a plastic element.
arg | Integration point tensor. |
e | Index of the plastic element. |
arg
for the region of interest around e
. Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.
Definition at line 1170 of file UniformSingleLayer2d.h.
|
protected |
Region-of-interest (ROI) per plastic element.
Definition at line 1201 of file UniformSingleLayer2d.h.
|
protected |
LocalTriggerFineLayerFull::m_Eps_p for the ROI only.
Definition at line 1205 of file UniformSingleLayer2d.h.
|
protected |
LocalTriggerFineLayerFull::m_Eps_s for the ROI only.
Definition at line 1203 of file UniformSingleLayer2d.h.
|
protected |
LocalTriggerFineLayerFull::m_Sig_p for the ROI only.
Definition at line 1209 of file UniformSingleLayer2d.h.
|
protected |
LocalTriggerFineLayerFull::m_Sig_s for the ROI only.
Definition at line 1207 of file UniformSingleLayer2d.h.