MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
gmpMechanicalSolid.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_MECHANICAL_PHYSICS_SOLID_H_
25#define _GEMA_PLUGIN_MECHANICAL_PHYSICS_SOLID_H_
26
28#include <gmpFemPhysicsCommon.h>
29#include <gmTrace.h>
30
31class GmGaussAccessor;
32
35class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMechanicalSolid: public GmpMechanicalPhysics
36{
37public:
38
39 // constructor
40 GmpMechanicalSolid(const char* pluginType, GmSimulationData* simulation, QString id, QString description,
41 const GmpFemPhysicsCommonMaterialFactory* matFactory, const GmLogCategory& logger);
42
43 // destructor
44 virtual ~GmpMechanicalSolid();
45
46 // set physic map
47 virtual const QVariantMap* physicsMetaDataMap();
48 virtual bool beforeElementStiffnessLoop(const GmpFemMatrixSet& elemMatrices, const GmpFemVectorSet& elemVectors);
49 virtual FemResultType fillElementData(const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
50 virtual void fillBodyForce(const GmElement* e, const GmVector* coord, int ip, GmVector& BFc, const GmVector& N, double c) const;
51 virtual void gravityForce(const GmElement* e, const GmVector* coord, int ip, GmVector& Fext_u, const GmVector& N, double c) const;
52 virtual void gravityVector(const GmElement* e, const GmVector* coord, int ip, GmVector& gravComp) const;
53 // See comments on the base class
54 virtual bool calcDerivedResults(bool nonLinearSolver);
55 // See comments on the base class
56 virtual bool checkLoadedData();
57 // See comments on the base class
58 virtual bool addStateItemsToGroup(GmStateDump* state, bool fixedHint, int groupId);
59
60protected:
61 // See comments on the base class
62 virtual bool checkAndLoadAttributeAccessors(LuaTable& nodeTable, LuaTable& cellTable, LuaTable& gaussTable);
63
64 // See comments on the base class
65 virtual void calcElementDerivedResultAtPoints(const GmElement* e, int resultId, const GmMatrix& evalPoints, bool evalAtIp, GmMatrix& result);
66
67 // See comments on the base class
68 virtual void calcElementResetStrains(const GmElement* e);
69
70 // Sets initial conditions
71 virtual bool setInitialConditions();
72
73 // Sets initial conditions
74 virtual bool updatesReturnMappingInfo();
75
76 // computes derived results used by the material
77 virtual bool calcMaterialDerivedResults();
78};
79
80#endif
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
virtual bool calcMaterialDerivedResults() const
The virtual function used by calcDerivedResults() to effectively calculate gauss attributes required ...
Definition gmpMechanicalPhysics.cpp:966
virtual bool calcDerivedResults(bool nonLinearSolver)
Calc stress component on nodes and/or Gauss points, ADDING the calculated value to the current result...
Definition gmpMechanicalPhysics.cpp:955
Basic class for the mechanical physics plugin object.
Definition gmpMechanicalSolid.h:36
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpMechanicalPhysics class.