KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
non_linear_hencky_plastic_plane_strain_2D_law.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosPfemSolidMechanicsApplication $
3 // Created by: $Author: LMonforte $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: July 2015 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined (KRATOS_NON_LINEAR_HENCKY_PLASTIC_PLANE_STRAIN_2D_LAW_H_INCLUDED)
11 #define KRATOS_NON_LINEAR_HENCKY_PLASTIC_PLANE_STRAIN_2D_LAW_H_INCLUDED
12 
13 
14 // System includes
15 
16 // External includes
17 
18 // Project includes
20 
21 
22 namespace Kratos
23 {
30 class KRATOS_API(PFEM_SOLID_MECHANICS_APPLICATION) NonLinearHenckyElasticPlasticPlaneStrain2DLaw: public NonLinearHenckyElasticPlastic3DLaw
31 {
32 
33 public:
39  typedef std::size_t SizeType;
40 
41  typedef FlowRule::Pointer FlowRulePointer;
42  typedef YieldCriterion::Pointer YieldCriterionPointer;
43  typedef HardeningLaw::Pointer HardeningLawPointer;
44  typedef Properties::Pointer PropertiesPointer;
45 
51 
60 
61 
63 
68 
69 
74  //HyperElasticPlastic3DLaw& operator=(const HyperElasticPlastic3DLaw& rOther);
75 
80  ConstitutiveLaw::Pointer Clone() const override;
81 
86 
99  {
100  return 2;
101  };
102 
106  SizeType GetStrainSize() const override
107  {
108  return 3;
109  };
110 
111  void GetLawFeatures(Features& rFeatures) override;
112 
113 
114 /* bool Has( const Variable<double>& rThisVariable );
115  bool Has( const Variable<Vector>& rThisVariable );
116  bool Has( const Variable<Matrix>& rThisVariable );
117 
118  double& GetValue( const Variable<double>& rThisVariable, double& rValue );
119  Vector& GetValue( const Variable<Vector>& rThisVariable, Vector& rValue );
120  Matrix& GetValue( const Variable<Matrix>& rThisVariable, Matrix& rValue );
121 
122 
123  void SetValue( const Variable<double>& rVariable,
124  const double& Value,
125  const ProcessInfo& rCurrentProcessInfo );
126  void SetValue( const Variable<Vector>& rThisVariable,
127  const Vector& rValue,
128  const ProcessInfo& rCurrentProcessInfo );
129  void SetValue( const Variable<Matrix>& rThisVariable,
130  const Matrix& rValue,
131  const ProcessInfo& rCurrentProcessInfo );
132 */
141 // void CalculateMaterialResponsePK1 (Parameters & rValues);
142 // Esta función sirve como está definida en la clase madre
143 
150 // void CalculateMaterialResponsePK2 (Parameters & rValues);
151 // Esta función sirve como está definida en la clase madre
152 
159 // void CalculateMaterialResponseKirchhoff (Parameters & rValues);
160 
161 
168 // void CalculateMaterialResponseCauchy (Parameters & rValues);
169 // Esta función sirve como está definida
170 
177 // void FinalizeMaterialResponsePK1 (Parameters & rValues);
178 
185 // void FinalizeMaterialResponsePK2 (Parameters & rValues);
186 
200 // void FinalizeMaterialResponseCauchy (Parameters & rValues);
201 
211 // int Check(const Properties& rProperties, const GeometryType& rGeometry, const ProcessInfo& rCurrentProcessInfo);
212 
213 
214 
221  //String Info() const override;
225  //void PrintInfo(std::ostream& rOStream) const override;
229  //void PrintData(std::ostream& rOStream) const override;
230 
231 protected:
232 
238 
239 // Matrix mElasticLeftCauchyGreen;
240 
241 // FlowRulePointer mpFlowRule;
242 
243 // YieldCriterionPointer mpYieldCriterion;
244 
245 // HardeningLawPointer mpHardeningLaw;
246 
253 
254  Matrix SetConstitutiveMatrixToAppropiateDimension(const Matrix& rElastoPlasticTangentMatrix) override;
255 
256 
260 // Matrix& DeformationGradient3D (Matrix & Matrix2D);
261 
267  void CalculateGreenLagrangeStrain( const Matrix & rRightCauchyGreen,
268  Vector& rStrainVector ) override;
269 
270 
276  void CalculateAlmansiStrain( const Matrix & rLeftCauchyGreen,
277  Vector& rStrainVector ) override;
304 /* virtual void CalculateIsochoricConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
305  const Matrix & rInverseDeformationGradientF,
306  const Vector & rIsoStressVector,
307  Matrix& rConstitutiveMatrix);
308 */
309 
314 /* double& IsochoricConstitutiveComponent( double & rCabcd,
315  const MaterialResponseVariables& rElasticVariables,
316  const Matrix & rIsoStressMatrix,
317  const unsigned int& a, const unsigned int& b,
318  const unsigned int& c, const unsigned int& d);
319 */
324 /* double& IsochoricConstitutiveComponent( double & rCabcd,
325  const MaterialResponseVariables& rElasticVariables,
326  const Matrix & rInverseDeformationGradientF,
327  const Matrix & rIsoStressMatrix,
328  const unsigned int& a, const unsigned int& b,
329  const unsigned int& c, const unsigned int& d);
330 
331 */
332 
339 /* virtual void CalculateVolumetricConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
340  Matrix& rConstitutiveMatrix);
341 
342 */
352 /* virtual void CalculateVolumetricConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
353  const Matrix & rInverseDeformationGradientF,
354  Matrix& rConstitutiveMatrix);
355 */
356 
361 /* double& VolumetricConstitutiveComponent( double & rCabcd,
362  const MaterialResponseVariables& rElasticVariables,
363  const Vector& rFactors,
364  const unsigned int& a, const unsigned int& b,
365  const unsigned int& c, const unsigned int& d);
366 */
371 /* double& VolumetricConstitutiveComponent( double & rCabcd,
372  const MaterialResponseVariables& rElasticVariables,
373  const Matrix & rInverseDeformationGradientF,
374  const Vector & rFactors,
375  const unsigned int& a, const unsigned int& b,
376  const unsigned int& c, const unsigned int& d);
377 
378 */
386 /* virtual void CalculatePlasticConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
387  FlowRule::RadialReturnVariables & rReturnMappingVariables,
388  Matrix& rConstitutiveMatrix);
389 */
390 
399 /* virtual void CalculatePlasticConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
400  const Matrix & rInverseDeformationGradientF,
401  FlowRule::RadialReturnVariables & rReturnMappingVariables,
402  Matrix& rConstitutiveMatrix);
403 */
404 
409 /* double& PlasticConstitutiveComponent( double & rCabcd,
410  const MaterialResponseVariables& rElasticVariables,
411  const Matrix & rIsoStressMatrix,
412  const FlowRule::PlasticFactors & rScalingFactors,
413  const unsigned int& a, const unsigned int& b,
414  const unsigned int& c, const unsigned int& d);
415 */
420 /* double& PlasticConstitutiveComponent( double & rCabcd,
421  const MaterialResponseVariables& rElasticVariables,
422  const Matrix & rInverseDeformationGradientF,
423  const Matrix & rIsoStressMatrix,
424  const FlowRule::PlasticFactors & rScalingFactors,
425  const unsigned int& a, const unsigned int& b,
426  const unsigned int& c, const unsigned int& d);
427 */
428 
436 /* virtual void CalculatePlasticIsochoricStress( MaterialResponseVariables & rElasticVariables,
437  FlowRule::RadialReturnVariables & rReturnMappingVariables,
438  StressMeasure rStressMeasure,
439  Matrix& rIsoStressMatrix,
440  Vector& rIsoStressVector);
441 */
449 /* virtual void CalculateVolumetricStress( const MaterialResponseVariables & rElasticVariables,
450  Vector& rVolStressVector );
451 */
452 
453 
460 // virtual double& CalculateDomainPressure (const MaterialResponseVariables & rElasticVariables,
461 // double & rPressure);
462 
468 // virtual Vector& CalculateDomainPressureFactors (const MaterialResponseVariables & rElasticVariables,
469 // Vector & rFactors);
470 
471 
478 // virtual bool CheckParameters(Parameters& rValues);
479 //Ll: a pensar què s'ha de fer amb els constructors, els CheckParameters i alguna altra funció virtual
480 private:
481 
484 
485 
489 
490 
494 
495 
499 
500 
505 
506 
510  friend class Serializer;
511 
512  void save(Serializer& rSerializer) const override
513  {
515  }
516 
517  void load(Serializer& rSerializer) override
518  {
520  }
521 
522 
523 
524 
525 }; // Class HenckyElasticPlastic3DLaw
526 
527 } //namespace Kratos
528 
529 #endif //KRATOS_HENCKY_PLASTIC_3D_LAW_H_INCLUDED
Definition: constitutive_law.h:47
std::size_t SizeType
Definition: constitutive_law.h:82
Definition: non_linear_hencky_plastic_3D_law.hpp:32
HardeningLaw::Pointer HardeningLawPointer
Definition: non_linear_hencky_plastic_3D_law.hpp:44
FlowRule::Pointer FlowRulePointer
Definition: non_linear_hencky_plastic_3D_law.hpp:42
YieldCriterion::Pointer YieldCriterionPointer
Definition: non_linear_hencky_plastic_3D_law.hpp:43
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:31
Properties::Pointer PropertiesPointer
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:44
ConstitutiveLaw BaseType
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:38
YieldCriterion::Pointer YieldCriterionPointer
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:42
FlowRule::Pointer FlowRulePointer
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:41
SizeType GetStrainSize() const override
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:106
std::size_t SizeType
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:39
KRATOS_CLASS_POINTER_DEFINITION(NonLinearHenckyElasticPlasticPlaneStrain2DLaw)
HardeningLaw::Pointer HardeningLawPointer
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:43
SizeType WorkingSpaceDimension() override
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:98
ProcessInfo ProcessInfoType
Definition: non_linear_hencky_plastic_plane_strain_2D_law.hpp:37
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307