MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
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
28
29#include <gmpFemPhysicsCommonLuaMaterial.h>
30
32class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMechanicalMaterialLua
33 : public GmpFemPhysicsCommonLuaMaterial<GmpMechanicalMaterial>
34{
35public:
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
52private:
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
Definition gmpMechanicPoint.h:33
A Mechanical material whose behaviour is implemented through Lua functions.
Definition gmpMaterialLua.h:34
static QMap< QString, int > _mpNameMap
Maps mechanic point data names used in the user functions to their internal id.
Definition gmpMaterialLua.h:44
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpMechanicalMaterial class.