NeoPZ
pzthermicelast3d.h
Go to the documentation of this file.
1 
6 #ifndef PZTHERMICELAST3D
7 #define PZTHERMICELAST3D
8 
9 #include "pzelast3d.h"
10 
22 
23 private:
24 
29  bool fReferred;
30 
37 
38 public:
39 
42 
45 
55  TPZThermicElast3D(int nummat, STATE ThermalCoeff, STATE RefTemp, STATE E, STATE poisson, TPZVec<STATE> &force);
56 
58  virtual ~TPZThermicElast3D();
59 
60  void SetConstantTemperatureField(STATE FinalTemp){
61  this->fFinalTemperature = FinalTemp;
62  this->fReferred = false;
63  }
64 
66  this->fFinalTemperature = 0.; //any value, it will not be used
67  this->fReferred = true;
68  }
69 
71  return this->fReferred;
72  }
73 
75 
77  virtual void Contribute(TPZMaterialData &data,
78  REAL weight,
80  TPZFMatrix<STATE> &ef) override;
81 
82  virtual void Contribute(TPZMaterialData &data,
83  REAL weight,
84  TPZFMatrix<STATE> &ef) override
85  {
86  TPZElasticity3D::Contribute(data,weight,ef);
87  }
88 
89 protected:
90  virtual void Solution(TPZVec<STATE> &Sol, TPZFMatrix<STATE> &DSol,
91  TPZFMatrix<REAL> &axes, int var, TPZVec<STATE> &Solout) override;
92 public:
93  virtual void Solution(TPZMaterialData &data, int var, TPZVec<STATE> &Solout) override
94  {
95  int numbersol = data.sol.size();
96  if (numbersol != 1) {
97  DebugStop();
98  }
99  Solution(data.sol[0],data.dsol[0],data.axes,var,Solout);
100  }
101 
102 
103  public:
104 int ClassId() const override;
105 
106 };
107 
108 #endif
bool fReferred
Flag indicating a constant field of temperature (fReferred = false) or a field obtained in a previou...
virtual void Solution(TPZMaterialData &data, int var, TPZVec< STATE > &Solout) override
Returns the solution associated with the var index based on the finite element approximation.
This class implements a 3D isotropic elasticity material with thermal stress.
This class implements a 3D isotropic elasticity material.
Definition: pzelast3d.h:21
virtual void Contribute(TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override
It computes a contribution to the stiffness matrix and load vector at one integration point...
Definition: pzelast3d.cpp:88
TPZGradSolVec dsol
vector of the derivatives of the solution at the integration point
STATE fThermalCoeff
Thermal expansion coefficient of the material.
Contains the TPZElasticity3D class which implements a 3D isotropic elasticity material.
virtual void Contribute(TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef) override
It computes a contribution to the residual vector at one integration point.
bool IsReferredTemperatureField()
int64_t size() const
Returns the number of elements of the vector.
Definition: pzvec.h:196
#define DebugStop()
Returns a message to user put a breakpoint in.
Definition: pzerror.h:20
TPZThermicElast3D(int nummat, STATE ThermalCoeff, STATE RefTemp, STATE E, STATE poisson, TPZVec< STATE > &force)
Class constructor.
void ContributeThermalStress(TPZVec< STATE > &sol, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, REAL weight, TPZFMatrix< STATE > &ef)
TPZFNMatrix< 9, REAL > axes
axes indicating the directions of the derivatives of the shapefunctions
virtual void Contribute(TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override
Contribute to stiff matrix and load vector.
void SetReferredTemperatureField()
virtual ~TPZThermicElast3D()
Default destructor.
STATE fRefTemperature
Temperature of reference. The thermal stress is given by the difference of the temperature field to t...
int ClassId() const override
Define the class id associated with the class.
virtual void Solution(TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout) override
Post-processing method. Based on solution Sol and its derivatives DSol, it computes the post-processe...
STATE fFinalTemperature
When solving problem with a constant field of temperature (fReferred = false) fFinalTemperature is t...
TPZSolVec sol
vector of the solutions at the integration point
void SetConstantTemperatureField(STATE FinalTemp)