MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
gmpMechanicalComposite.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_PLUGIN_MECHANICAL_PHYSICS_COMPOSITE_H_
26#define _GEMA_PLUGIN_MECHANICAL_PHYSICS_COMPOSITE_H_
27
28#include "gmpMechanicalSolid.h"
29#include <gmpFemPhysicsCommon.h>
30#include <gmpFemPhysicsData.h>
31#include <gmTrace.h>
32
33
34class GmGaussAccessor;
35
38class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMechanicalComposite: public GmpMechanicalSolid
39{
40public:
41
42 // constructor
43 GmpMechanicalComposite(const char* pluginType, GmSimulationData* simulation, QString id, QString description,
44 const GmpFemPhysicsCommonMaterialFactory* matFactory, const GmLogCategory& logger);
45
46 // destructor
48
49 // set physic map
50 virtual const QVariantMap* physicsMetaDataMap();
51 virtual FemResultType fillElementData(const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
52
53 // fill fiber contribution
54 virtual FemResultType fillFiberData(const GmElement* e, GmMatrix& K, GmVector& Fi, bool needsK, bool needsFi);
55
56 // Fills fiber element Data
57 virtual bool fillFiberElementData(const GmElement* e, GmMatrix& K, GmVector& Ff, GmVector& uf, bool needsKf, bool needsFi) const;
58
59 // Fills deformation-displacement matrix of fiber elements
60 virtual double fillBuMatrix(const GmElement* e, const GmShape* shape, const GmVector& ncoord, const GmMatrix& X, const GmVector& N, const GmMatrix& J, GmMatrix& Bp) const;
61
62 // Fills fiber condensation matrix
63 virtual bool fillCondensationMatrix(GmMatrix & Tg, GmMatrix& Xe, GmMatrix& Xf, const GmShape* eShape, int ne, int nf=2);
64
65 // Fills fiber nodal values
66 virtual bool fillFiberNodalValues(GmElement* e, GmValueAccessor* uAc);
67
68 // calculate derived results
69 virtual bool calcDerivedResults(bool nonLinear);
72 {
74
75 // --- NO ADDING BELOW THIS LINE
77 };
78
79protected:
80 // See comments on the base class
81 virtual bool checkAndLoadPrivateData(LuaTable& table);
82
83private:
84 GmpFemPhysicsData _fiberData;
85
86};
87
88#endif
Basic class for the mechanical physics plugin object.
Definition gmpMechanicalComposite.h:39
CompositePropertyIds
IDs for physics element properties.
Definition gmpMechanicalComposite.h:72
@ NUM_PROPER_IDS
The number of property ids above.
Definition gmpMechanicalComposite.h:76
GmpFemPhysicsData _fiberData
fiber data
Definition gmpMechanicalComposite.h:84
@ NUM_PROPER_IDS
The number of property ids above.
Definition gmpMechanicalPhysics.h:175
virtual double fillBuMatrix(const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmVector &N, const GmMatrix &J, GmMatrix &Bu)=0
Given a point 'ncood', the element coordinate matrix 'X', the point shape functions 'N' and the trans...
Basic class for the mechanical physics plugin object.
Definition gmpMechanicalSolid.h:36
virtual FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic elements.
Definition gmpMechanicalSolid.cpp:238
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the single mechanical physics attribute map, built when the function is calle...
Definition gmpMechanicalSolid.cpp:62
virtual bool calcDerivedResults(bool nonLinearSolver)
Calc stress component on nodes and/or Gauss points, ADDING the calculated value to the current result...
Definition gmpMechanicalSolid.cpp:615
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpMechanicalPhysics class.