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_associative_plastic_flow_rule.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosSolidMechanicsApplication $
3 // Created by: $Author: JMCarbonell $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: July 2013 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_NON_LINEAR_ASSOCIATIVE_PLASTIC_FLOW_RULE_H_INCLUDED)
11 #define KRATOS_NON_LINEAR_ASSOCIATIVE_PLASTIC_FLOW_RULE_H_INCLUDED
12 
13 
14 // System includes
15 
16 // External includes
17 
18 // Project includes
19 #include "custom_constitutive/custom_flow_rules/flow_rule.hpp"
20 
21 namespace Kratos
22 {
25 
28 
32 
36 
40 
44 
46 
48  class KRATOS_API(SOLID_MECHANICS_APPLICATION) NonLinearAssociativePlasticFlowRule
49  :public FlowRule
50  {
51  public:
54 
57 
61 
64 
67 
70 
73 
76 
77 
81 
86  FlowRule::Pointer Clone() const override;
87 
91 
92  bool CalculateReturnMapping( RadialReturnVariables& rReturnMappingVariables, Matrix& rIsoStressMatrix ) override;
93 
94  void CalculateScalingFactors( const RadialReturnVariables& rReturnMappingVariables, PlasticFactors& rScalingFactors ) override;
95 
96  bool UpdateInternalVariables( RadialReturnVariables& rReturnMappingVariables ) override;
97 
98 
102 
103 
107 
108 
112 
113  // /// Turn back information as a string.
114  // virtual std::string Info() const;
115 
116  // /// Print information about this object.
117  // virtual void PrintInfo(std::ostream& rOStream) const;
118 
119  // /// Print object's data.
120  // virtual void PrintData(std::ostream& rOStream) const;
121 
122 
126 
127 
129 
130  protected:
133 
134 
138 
139 
143 
144 
148 
149  double& CalculateStressNorm ( Matrix & rStressMatrix, double& rStressNorm ) override;
150 
151 
152  virtual void SetCriterionParameters( RadialReturnVariables& rReturnMappingVariables, InternalVariables& rPlasticVariables, YieldCriterion::Parameters& rCriterionParameters );
153 
154 
155  virtual bool CalculateConsistencyCondition( RadialReturnVariables& rReturnMappingVariables, InternalVariables& rPlasticVariables, YieldCriterion::Parameters& rCriterionParameters);
156 
157 
158  void UpdateConfiguration( RadialReturnVariables& rReturnMappingVariables, Matrix & rIsoStressMatrix );
159 
160 
161  void CalculateThermalDissipation( YieldCriterion::Parameters& rCriterionParameters, ThermalVariables& rThermalVariables );
162 
163 
164  //implex protected methods
165 
166  virtual void CalculateImplexReturnMapping( RadialReturnVariables& rReturnMappingVariables, InternalVariables& rPlasticVariables, YieldCriterion::Parameters& rCriterionParameters, Matrix& rIsoStressMatrix );
167 
168  void CalculateImplexThermalDissipation( YieldCriterion::Parameters& rCriterionParameters );
169 
170 
174 
175 
179 
180 
184 
185 
187 
188  private:
191 
192 
196 
197 
201 
202 
206 
207 
211 
212 
216  friend class Serializer;
217 
218  // A private default constructor necessary for serialization
219 
220  void save(Serializer& rSerializer) const override;
221 
222  void load(Serializer& rSerializer) override;
223 
227 
228 
232 
234 
235  }; // Class NonLinearAssociativePlasticFlowRule
236 
238 
241 
242 
246 
247 
249  // inline std::istream& operator >> (std::istream& rIStream,
250  // NonLinearAssociativePlasticFlowRule& rThis);
251 
252  // /// output stream function
253  // inline std::ostream& operator << (std::ostream& rOStream,
254  // const NonLinearAssociativePlasticFlowRule& rThis)
255  // {
256  // rThis.PrintInfo(rOStream);
257  // rOStream << std::endl;
258  // rThis.PrintData(rOStream);
259 
260  // return rOStream;
261  // }
263 
265 
266 
267 
271 
272 
274 
275 
276 } // namespace Kratos.
277 
278 #endif // KRATOS_NON_LINEAR_ASSOCIATIVE_PLASTIC_FLOW_RULE_H_INCLUDED defined
279 
280 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: flow_rule.hpp:51
YieldCriterion::Pointer YieldCriterionPointer
Definition: flow_rule.hpp:56
Short class definition.
Definition: non_linear_associative_plastic_flow_rule.hpp:50
KRATOS_CLASS_POINTER_DEFINITION(NonLinearAssociativePlasticFlowRule)
Pointer definition of NonLinearAssociativePlasticFlowRule.
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: flow_rule.hpp:175
Definition: flow_rule.hpp:68
Definition: flow_rule.hpp:121
Definition: flow_rule.hpp:80
Definition: yield_criterion.hpp:54