MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMaterialLua.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 
24 #ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_LUA_H_
25 #define _GEMA_PLUGIN_MECHANICALMATERIAL_LUA_H_
26 
27 #include "gmpMechanicalMaterial.h"
28 
29 #include <gmpFemPhysicsCommonLuaMaterial.h>
30 
32 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMechanicalMaterialLua
33  : public GmpFemPhysicsCommonLuaMaterial<GmpMechanicalMaterial>
34 {
35 public:
36  GmpMechanicalMaterialLua(const GmPluginData* pdata, int typeIndex, QString typeName, const GmLogCategory& logger)
37  : GmpFemPhysicsCommonLuaMaterial<GmpMechanicalMaterial>(pdata, typeIndex, typeName, logger) { }
38 
39 
40  static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger);
41 
42  virtual bool mechanicalConstitutiveModel(const GmElement* e, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, const GmVector& Time, unsigned nc, bool ips = false) const;
43 
44  virtual bool isIsotropic() const;
45 
46  virtual bool setInitialConditions(const GmElement* e, GmpMechanicPoint* mp, const GmVector* coord, unsigned sc) const;
47 
48  virtual bool updateDeformationGradient(GmMatrix& F, const GmElement* e, const GmVector* coord, int ip, bool ips = false) const;
49 
50  virtual bool calcDerivedResults(const GmElement* e, GmpMechanicPoint* mp, const GmVector* coord, unsigned sc) const;
51 
52 private:
53  static QVariant getMpValue(QString field, const void* context, const GmElement* e, int ip, const GmVector* coord, const GmLogCategory& logger);
54  static bool setMpValue(QString field, const void* context, const GmElement* e, int ip, const QVariant& v);
55 
57 };
58 
59 #endif
A Mechanical material whose behaviour is implemented through Lua functions.
Definition: gmpMaterialLua.h:32
Declaration of the GmpMechanicalMaterial class.
Definition: gmpMechanicPoint.h:32
static QMap< QString, int > _mpNameMap
Maps mechanic point data names used in the user functions to their internal id.
Definition: gmpMaterialLua.h:56
arma::vec GmVector
arma::mat GmMatrix