MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
gmpMechanicalInterface.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_MECHANICALINTERFACE_H_
25#define _GEMA_PLUGIN_MECHANICALINTERFACE_H_
26
27
29#include <gmpFemPhysicsCommon.h>
30#include <gmTrace.h>
31
32class GmGaussAccessor;
33
36class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMechanicalInterface : public GmpMechanicalPhysics
37{
38public:
39 // constructor
40 GmpMechanicalInterface(const char* pluginType, GmSimulationData* simulation, QString id, QString description,
41 const GmpFemPhysicsCommonMaterialFactory* matFactory, const GmLogCategory& logger);
42
43 // destructor
45
46 // set physic map
47 virtual const QVariantMap* physicsMetaDataMap();
48 // See comments on the base class
49 virtual bool checkAndLoadAttributeAccessors(LuaTable& nodeTable, LuaTable& cellTable, LuaTable& gaussTable);
50 // See comments on the base class
51 virtual bool beforeElementStiffnessLoop(const GmpFemMatrixSet& elemMatrices, const GmpFemVectorSet& elemVectors);
52 // See comments on the base class
53 virtual FemResultType fillElementData(const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
54
59 virtual void fillMiddlePressure(const GmElement* e, const GmVector& Pe, GmVector& Pm) const;
60
63 virtual void fillElementDisplacements(const GmElement* e, GmVector& ue) const;
64
68 virtual void updateNodalCoordinates(const GmElement* e, GmMatrix& Xe, const GmVector& ue) const;
69
70 virtual FemResultType fillElementDataForLoads(const GmElement* e, int loadId, GmpFemVectorSet& elemVectors);
71
72 // See comments on the base class
73 virtual bool addStateItemsToGroup(GmStateDump* state, bool fixedHint, int groupId);
74
77 {
82
83
84 // ------ NO ADDING BELOW THIS LINE
86 };
87
88protected:
91 virtual bool setInitialConditions();
92};
93
94#endif
Basic class for the mechanical interface element plugin object.
Definition gmpMechanicalInterface.h:37
InterfaceGaussAttributeIds
IDs for physics Gauss attributes.
Definition gmpMechanicalInterface.h:77
@ SDVOLD_GA_ID
Id for retrieving the damage variable accessor at the previous state.
Definition gmpMechanicalInterface.h:79
@ NUM_GA_IDS
The number of gauss attributes.
Definition gmpMechanicalInterface.h:85
@ IV_GA_ID
Base Id for Gauss attribute(s) used to store the internal variable at the current state.
Definition gmpMechanicalInterface.h:80
@ IVOLD_GA_ID
Id for retrieving the internal variable accessor at the previous state.
Definition gmpMechanicalInterface.h:81
Basic class for the mechanical physics plugin object.
Definition gmpMechanicalPhysics.h:38
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the single mechanical physics attribute map, built when the function is calle...
Definition gmpMechanicalPhysics.cpp:64
void fillElementDisplacements(const GmElement *e, GmVector &ue)
Given an element, fills the vector 'ue' with nodal displacements. The vector should have size equal t...
Definition gmpMechanicalPhysics.cpp:240
@ NUM_GA_IDS
The number of Gauss attribute ids above.
Definition gmpMechanicalPhysics.h:161
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpMechanicalPhysics class.