NeoPZ
TPZVonMises.h
Go to the documentation of this file.
1 /*
2  * TPZVonMises.h
3  * ElastoPlasticModels
4  *
5  * Created by Diogo Cecilio on 12/17/10.
6  * Copyright 2010 __MyCompanyName__. All rights reserved.
7  *
8  */
9 
10 #ifndef TPZVONMISES_H
11 #define TPZVONMISES_H
12 
13 #include "pzlog.h"
14 #include "TPZPlasticStep.h"
15 #include "TPZYCVonMises.h"
16 #include "TPZThermoForceA.h"
17 #include "TPZElasticResponse.h"
18 #include "pzvec_extras.h"
19 #include "TPZPlasticStepID.h"
20 
21 #define VONMISESPARENT TPZPlasticStep<TPZYCVonMises, TPZThermoForceA, TPZElasticResponse>
22 
23 
24 class TPZVonMises : public VONMISESPARENT {
25 
26 public:
27 
28  enum {NYield =1};
29 
30 public:
31 
33  {
34  fMaterialTensionSign = 1; // internally in this material tension is negative
35  fInterfaceTensionSign = 1; // by default
36  }
37 
38  TPZVonMises(const TPZVonMises & source):VONMISESPARENT(source)
39  {
40  }
41 
42  TPZVonMises & operator=(const TPZVonMises & source)
43  {
44  VONMISESPARENT::operator=(source);
45  return *this;
46  }
47 
48  virtual const char * Name() const override
49  {
50  return "TPZVonMises";
51  }
52 
53  virtual void SetUp(const TPZTensor<REAL> & epsTotal) override {
54  VONMISESPARENT::SetUp(epsTotal);
55  }
56 
57  void SetUp()
58  {
59 
60  //VONMISESPARENT::fYC.SetUp();
61  //VONMISESPARENT::fTFA.SetUp(210./* sigmaY = MPa */, 1164./*endurecimento para cada 0.1% de deformacao em MPa(290/0.249)*/);
62  //VONMISESPARENT::fER.SetUp(/*young*/ 210000., /*poisson*/ 0.3);
63 
64  }
65 
67  {
68  REAL radius = VONMISESPARENT::fTFA.fSigmaYield0;
69  return radius;
70  }
71 
72 
73  virtual void Print(std::ostream & out) const override
74  {
75  out << "\n" << this->Name();
76  out << "\n Base Class Data:\n";
77  VONMISESPARENT::Print(out);
78  }
79 
80  public:
81 int ClassId() const override;
82 
83  void Write(TPZStream &buf, int withclassid) const override{
84  }
85 
86  void Read(TPZStream& buf, void* context) override {
87  }
88 
89  static void Steel(TPZVonMises & material)
90  {
91  material.fTFA.SetUp(210./* sigmaY = MPa */, 32222.2222/*endurecimento para cada 0.1% de deformacao em MPa(290/0.249)*/);
92  material.fER.SetEngineeringData(/*young*/ 210000., /*poisson*/ 0.);
93  }
94 
95 
96 public:
97 
98  virtual int GetNYield() const {
99  return as_integer(NYield);
100  }
101 };
102 
103 
104 #endif //TPZVonMises_H
Contains definitions to LOGPZ_DEBUG, LOGPZ_INFO, LOGPZ_WARN, LOGPZ_ERROR and LOGPZ_FATAL, and the implementation of the inline InitializePZLOG(string) function using log4cxx library or not. It must to be called out of "#ifdef LOG4CXX" scope.
std::underlying_type< Enumeration >::type as_integer(const Enumeration value)
Definition: pzreal.h:37
#define VONMISESPARENT
Definition: TPZVonMises.h:21
void Read(TPZStream &buf, void *context) override
Definition: TPZVonMises.h:86
virtual void Print(std::ostream &out) const override
Definition: TPZVonMises.h:73
void SetUp()
Definition: TPZVonMises.h:57
virtual int GetNYield() const
Definition: TPZVonMises.h:98
static void Steel(TPZVonMises &material)
Definition: TPZVonMises.h:89
TPZVonMises(const TPZVonMises &source)
Definition: TPZVonMises.h:38
TPZVonMises & operator=(const TPZVonMises &source)
Definition: TPZVonMises.h:42
int ClassId() const override
Definition: TPZVonMises.cpp:12
virtual const char * Name() const override
Definition: TPZVonMises.h:48
virtual void SetUp(const TPZTensor< REAL > &epsTotal) override
Definition: TPZVonMises.h:53
void Write(TPZStream &buf, int withclassid) const override
Definition: TPZVonMises.h:83
REAL YieldRadius(TPZPlasticState< REAL > state)
Definition: TPZVonMises.h:66
Defines the interface for saving and reading data. Persistency.
Definition: TPZStream.h:50
Extra utilities for TPZVec. Implementations of the saxpy, sscal, sdot, intercept, max and min functio...