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_U_P_axisym_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_AXISYM_U_P_2D_LAW_H_INCLUDED)
11 #define KRATOS_NON_LINEAR_HENCKY_PLASTIC_AXISYM_U_P_2D_LAW_H_INCLUDED
12 
13 
14 // System includes
15 
16 // External includes
17 
18 // Project includes
20 
21 namespace Kratos
22 {
29 class KRATOS_API(PFEM_SOLID_MECHANICS_APPLICATION) NonLinearHenckyElasticPlasticUPAxisym2DLaw: public NonLinearHenckyElasticPlasticUP3DLaw
30 {
31 
32 public:
38  typedef std::size_t SizeType;
39 
40  typedef FlowRule::Pointer FlowRulePointer;
41  typedef YieldCriterion::Pointer YieldCriterionPointer;
42  typedef HardeningLaw::Pointer HardeningLawPointer;
43  typedef Properties::Pointer PropertiesPointer;
44 
50 
59 
60 
62 
67 
68 
73  //HyperElasticPlastic3DLaw& operator=(const HyperElasticPlastic3DLaw& rOther);
74 
79  ConstitutiveLaw::Pointer Clone() const override;
80 
85 
98  {
99  return 2;
100  };
101 
105  SizeType GetStrainSize() const override
106  {
107  return 4;
108  };
109 
110 
111  void GetLawFeatures(Features& rFeatures) override;
112 
113 /* bool Has( const Variable<double>& rThisVariable );
114  bool Has( const Variable<Vector>& rThisVariable );
115  bool Has( const Variable<Matrix>& rThisVariable );
116 
117  double& GetValue( const Variable<double>& rThisVariable, double& rValue );
118  Vector& GetValue( const Variable<Vector>& rThisVariable, Vector& rValue );
119  Matrix& GetValue( const Variable<Matrix>& rThisVariable, Matrix& rValue );
120 
121 
122  void SetValue( const Variable<double>& rVariable,
123  const double& Value,
124  const ProcessInfo& rCurrentProcessInfo );
125  void SetValue( const Variable<Vector>& rThisVariable,
126  const Vector& rValue,
127  const ProcessInfo& rCurrentProcessInfo );
128  void SetValue( const Variable<Matrix>& rThisVariable,
129  const Matrix& rValue,
130  const ProcessInfo& rCurrentProcessInfo );
131 */
140 // void CalculateMaterialResponsePK1 (Parameters & rValues);
141 // Esta función sirve como está definida en la clase madre
142 
149 // void CalculateMaterialResponsePK2 (Parameters & rValues);
150 // Esta función sirve como está definida en la clase madre
151 
158 // void CalculateMaterialResponseKirchhoff (Parameters & rValues);
159 
160 
167 // void CalculateMaterialResponseCauchy (Parameters & rValues);
168 // Esta función sirve como está definida
169 
176 // void FinalizeMaterialResponsePK1 (Parameters & rValues);
177 
184 // void FinalizeMaterialResponsePK2 (Parameters & rValues);
185 
199 // void FinalizeMaterialResponseCauchy (Parameters & rValues);
200 
210 // int Check(const Properties& rProperties, const GeometryType& rGeometry, const ProcessInfo& rCurrentProcessInfo);
211 
212 
213 
220  //String Info() const override;
224  //void PrintInfo(std::ostream& rOStream) const override;
228  //void PrintData(std::ostream& rOStream) const override;
229 
230 protected:
231 
237 
238 // Matrix mElasticLeftCauchyGreen;
239 
240 // FlowRulePointer mpFlowRule;
241 
242 // YieldCriterionPointer mpYieldCriterion;
243 
244 // HardeningLawPointer mpHardeningLaw;
245 
252 
253  Matrix SetConstitutiveMatrixToAppropiateDimension(const Matrix& rElastoPlasticTangentMatrix) override;
254 
255 
259 // Matrix& DeformationGradient3D (Matrix & Matrix2D);
260 
266  void CalculateGreenLagrangeStrain( const Matrix & rRightCauchyGreen,
267  Vector& rStrainVector ) override;
268 
269 
275  void CalculateAlmansiStrain( const Matrix & rLeftCauchyGreen,
276  Vector& rStrainVector ) override;
303 /* virtual void CalculateIsochoricConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
304  const Matrix & rInverseDeformationGradientF,
305  const Vector & rIsoStressVector,
306  Matrix& rConstitutiveMatrix);
307 */
308 
313 /* double& IsochoricConstitutiveComponent( double & rCabcd,
314  const MaterialResponseVariables& rElasticVariables,
315  const Matrix & rIsoStressMatrix,
316  const unsigned int& a, const unsigned int& b,
317  const unsigned int& c, const unsigned int& d);
318 */
323 /* double& IsochoricConstitutiveComponent( double & rCabcd,
324  const MaterialResponseVariables& rElasticVariables,
325  const Matrix & rInverseDeformationGradientF,
326  const Matrix & rIsoStressMatrix,
327  const unsigned int& a, const unsigned int& b,
328  const unsigned int& c, const unsigned int& d);
329 
330 */
331 
338 /* virtual void CalculateVolumetricConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
339  Matrix& rConstitutiveMatrix);
340 
341 */
351 /* virtual void CalculateVolumetricConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
352  const Matrix & rInverseDeformationGradientF,
353  Matrix& rConstitutiveMatrix);
354 */
355 
360 /* double& VolumetricConstitutiveComponent( double & rCabcd,
361  const MaterialResponseVariables& rElasticVariables,
362  const Vector& rFactors,
363  const unsigned int& a, const unsigned int& b,
364  const unsigned int& c, const unsigned int& d);
365 */
370 /* double& VolumetricConstitutiveComponent( double & rCabcd,
371  const MaterialResponseVariables& rElasticVariables,
372  const Matrix & rInverseDeformationGradientF,
373  const Vector & rFactors,
374  const unsigned int& a, const unsigned int& b,
375  const unsigned int& c, const unsigned int& d);
376 
377 */
385 /* virtual void CalculatePlasticConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
386  FlowRule::RadialReturnVariables & rReturnMappingVariables,
387  Matrix& rConstitutiveMatrix);
388 */
389 
398 /* virtual void CalculatePlasticConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
399  const Matrix & rInverseDeformationGradientF,
400  FlowRule::RadialReturnVariables & rReturnMappingVariables,
401  Matrix& rConstitutiveMatrix);
402 */
403 
408 /* double& PlasticConstitutiveComponent( double & rCabcd,
409  const MaterialResponseVariables& rElasticVariables,
410  const Matrix & rIsoStressMatrix,
411  const FlowRule::PlasticFactors & rScalingFactors,
412  const unsigned int& a, const unsigned int& b,
413  const unsigned int& c, const unsigned int& d);
414 */
419 /* double& PlasticConstitutiveComponent( double & rCabcd,
420  const MaterialResponseVariables& rElasticVariables,
421  const Matrix & rInverseDeformationGradientF,
422  const Matrix & rIsoStressMatrix,
423  const FlowRule::PlasticFactors & rScalingFactors,
424  const unsigned int& a, const unsigned int& b,
425  const unsigned int& c, const unsigned int& d);
426 */
427 
435 /* virtual void CalculatePlasticIsochoricStress( MaterialResponseVariables & rElasticVariables,
436  FlowRule::RadialReturnVariables & rReturnMappingVariables,
437  StressMeasure rStressMeasure,
438  Matrix& rIsoStressMatrix,
439  Vector& rIsoStressVector);
440 */
448 /* virtual void CalculateVolumetricStress( const MaterialResponseVariables & rElasticVariables,
449  Vector& rVolStressVector );
450 */
451 
452 
459 // virtual double& CalculateDomainPressure (const MaterialResponseVariables & rElasticVariables,
460 // double & rPressure);
461 
467 // virtual Vector& CalculateDomainPressureFactors (const MaterialResponseVariables & rElasticVariables,
468 // Vector & rFactors);
469 
470 
477 // virtual bool CheckParameters(Parameters& rValues);
478 //Ll: a pensar què s'ha de fer amb els constructors, els CheckParameters i alguna altra funció virtual
479 private:
480 
483 
484 
488 
489 
493 
494 
498 
499 
504 
505 
509  friend class Serializer;
510 
511  void save(Serializer& rSerializer) const override
512  {
514  }
515 
516  void load(Serializer& rSerializer) override
517  {
519  }
520 
521 
522 
523 
524 }; // Class HenckyElasticPlastic3DLaw
525 
526 } //namespace Kratos
527 
528 #endif //KRATOS_HENCKY_PLASTIC_3D_LAW_H_INCLUDED
Definition: constitutive_law.h:47
std::size_t SizeType
Definition: constitutive_law.h:82
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_U_P_3D_law.hpp:31
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:30
std::size_t SizeType
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:38
ProcessInfo ProcessInfoType
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:36
YieldCriterion::Pointer YieldCriterionPointer
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:41
Properties::Pointer PropertiesPointer
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:43
KRATOS_CLASS_POINTER_DEFINITION(NonLinearHenckyElasticPlasticUPAxisym2DLaw)
FlowRule::Pointer FlowRulePointer
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:40
SizeType WorkingSpaceDimension() override
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:97
ConstitutiveLaw BaseType
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:37
HardeningLaw::Pointer HardeningLawPointer
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:42
SizeType GetStrainSize() const override
Definition: non_linear_hencky_plastic_U_P_axisym_2D_law.hpp:105
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