Lem
The Lem Plugin
lemMechanicalMaterial.h
Go to the documentation of this file.
1 /************************************************************************
2 **
3 ** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4 ** All rights reserved.
5 **
6 ** This file is part of the "GeMA" software. It's use should respect
7 ** the terms in the license agreement that can be found together
8 ** with this source code.
9 ** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10 ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11 ** A PARTICULAR PURPOSE.
12 **
13 ************************************************************************/
14 
25 #ifndef _GEMA_LEM_MECHANICAL_MATERIAL_H_
26 #define _GEMA_LEM_MECHANICAL_MATERIAL_H_
27 
28 
29 #include <gmpFemPhysicsCommonMaterial.h>
30 #include <gmpFemPhysicsCommon.h>
31 #include <gmpFemPhysics.h>
32 #include <gmVector.h>
33 #include <gmMatrix.h>
34 #include <gmTrace.h>
35 
36 #include "lemMechanicPoint.h"
37 
40 class LemMechanicalMaterial : public GmpFemPhysicsCommonMaterial
41 {
42 
43 public:
44 
46  LemMechanicalMaterial(int typeIndex, QString typeName, const GmLogCategory& logger)
47  : GmpFemPhysicsCommonMaterial(typeIndex, typeName, logger)
48  {
49  }
50 
53 
55  virtual const QVariantMap* materialMetaDataMap() = 0;
56 
58  virtual bool returnMapping(const GmElement* e, GmMatrix& Dep, const lemMechanicPoint* mp, const GmVector* coord, unsigned nc, unsigned ips = false) const = 0;
59 
61  virtual void tangentModulus(const GmElement* e, GmMatrix& Dep, const lemMechanicPoint* mp, const GmVector* coord, unsigned nc, unsigned ips = false) const = 0;
62 
64  virtual bool isIsotropic() const = 0;
65 
66 
69 };
70 
71 namespace LemMechanicUtils
72 {
73  //stress state
74  void setStressStateVector(const double[6], GmVector&, unsigned, double = 1.0);
75  void setStressStateMatrix(const double[6][6], GmMatrix&, unsigned, double = 1.0);
76 
77 
78 
79 };
80 #endif
virtual ~LemMechanicalMaterial()
Virtual destructor.
Definition: lemMechanicalMaterial.h:52
Definition: lemMechanicPoint.h:30
virtual bool returnMapping(const GmElement *e, GmMatrix &Dep, const lemMechanicPoint *mp, const GmVector *coord, unsigned nc, unsigned ips=false) const =0
Returns the stresses according to the material behavior adopted.
Basic class providing the interface for a mechanical material.
Definition: lemMechanicalMaterial.h:40
LemMechanicalMaterial(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition: lemMechanicalMaterial.h:46
virtual void tangentModulus(const GmElement *e, GmMatrix &Dep, const lemMechanicPoint *mp, const GmVector *coord, unsigned nc, unsigned ips=false) const =0
Returns the constitutive tangent matrix.
Declaration of the lemMechanicPoint class.
virtual bool isIsotropic() const =0
Returns true if the material is isotropic, false otherwise.
arma::vec GmVector
arma::mat GmMatrix
virtual const QVariantMap * materialMetaDataMap()=0
Returns a map with material associated properties.