FrictionQPotFEM 0.23.3
Loading...
Searching...
No Matches
FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer Class Reference

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>

Inheritance diagram for FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer:
Collaboration diagram for FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer:

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...
 
- Public Member Functions inherited from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull
 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...
 
- Protected Attributes inherited from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull
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

- Protected Member Functions inherited from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull
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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LocalTriggerFineLayer()

FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::LocalTriggerFineLayer ( const System sys,
size_t  roi = 5 
)
inline

Constructor.

Parameters
sysSystem.
roiEdge 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.

Member Function Documentation

◆ Eps_p()

array_type::tensor< double, 4 > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::Eps_p ( size_t  trigger_plastic) const
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.

Parameters
trigger_plasticIndex of the plastic element.
Returns
Integration point tensor. Shape [System::m_nelem, System::m_nip, 2, 2].

Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.

Definition at line 1181 of file UniformSingleLayer2d.h.

◆ Eps_s()

array_type::tensor< double, 4 > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::Eps_s ( size_t  trigger_plastic) const
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.

Parameters
trigger_plasticIndex of the plastic element.
Returns
Integration point tensor. Shape [System::m_nelem, System::m_nip, 2, 2].

Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.

Definition at line 1175 of file UniformSingleLayer2d.h.

◆ Sig_p()

array_type::tensor< double, 4 > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::Sig_p ( size_t  trigger_plastic) const
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.

Parameters
trigger_plasticIndex of the plastic element.
Returns
Integration point tensor. Shape [System::m_nelem, System::m_nip, 2, 2].

Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.

Definition at line 1193 of file UniformSingleLayer2d.h.

◆ Sig_s()

array_type::tensor< double, 4 > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::Sig_s ( size_t  trigger_plastic) const
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.

Parameters
trigger_plasticIndex of the plastic element.
Returns
Integration point tensor. Shape [System::m_nelem, System::m_nip, 2, 2].

Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.

Definition at line 1187 of file UniformSingleLayer2d.h.

◆ slice() [1/2]

array_type::tensor< double, 2 > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::slice ( const array_type::tensor< double, 2 > &  arg,
size_t  e 
) const
inlineoverridevirtual

Select values in the region of interest around a plastic element.

Parameters
argIntegration point scalar.
eIndex of the plastic element.
Returns
Slice of arg for the region of interest around e.

Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.

Definition at line 1157 of file UniformSingleLayer2d.h.

◆ slice() [2/2]

array_type::tensor< double, 4 > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::slice ( const array_type::tensor< double, 4 > &  arg,
size_t  e 
) const
inlineoverridevirtual

Select values in the region of interest around a plastic element.

Parameters
argIntegration point tensor.
eIndex of the plastic element.
Returns
Slice of arg for the region of interest around e.

Reimplemented from FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayerFull.

Definition at line 1170 of file UniformSingleLayer2d.h.

Member Data Documentation

◆ m_elemslice

std::vector<array_type::tensor<size_t, 1> > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::m_elemslice
protected

Region-of-interest (ROI) per plastic element.

Definition at line 1201 of file UniformSingleLayer2d.h.

◆ m_Eps_p_slice

std::vector<array_type::tensor<double, 4> > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::m_Eps_p_slice
protected

LocalTriggerFineLayerFull::m_Eps_p for the ROI only.

Definition at line 1205 of file UniformSingleLayer2d.h.

◆ m_Eps_s_slice

std::vector<array_type::tensor<double, 4> > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::m_Eps_s_slice
protected

LocalTriggerFineLayerFull::m_Eps_s for the ROI only.

Definition at line 1203 of file UniformSingleLayer2d.h.

◆ m_Sig_p_slice

std::vector<array_type::tensor<double, 4> > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::m_Sig_p_slice
protected

LocalTriggerFineLayerFull::m_Sig_p for the ROI only.

Definition at line 1209 of file UniformSingleLayer2d.h.

◆ m_Sig_s_slice

std::vector<array_type::tensor<double, 4> > FrictionQPotFEM::UniformSingleLayer2d::LocalTriggerFineLayer::m_Sig_s_slice
protected

LocalTriggerFineLayerFull::m_Sig_s for the ROI only.

Definition at line 1207 of file UniformSingleLayer2d.h.


The documentation for this class was generated from the following file: