MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
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 
34 class GmGaussAccessor;
35 
38 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMechanicalComposite: public GmpMechanicalSolid
39 {
40 public:
41 
42  // constructor
43  GmpMechanicalComposite(const char* pluginType, GmSimulationData* simulation, QString id, QString description,
44  const GmpFemPhysicsCommonMaterialFactory* matFactory, const GmLogCategory& logger);
45 
46  // destructor
47  virtual ~GmpMechanicalComposite();
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 
79 protected:
80  // See comments on the base class
81  virtual bool checkAndLoadPrivateData(LuaTable& table);
82 
83 private:
84  GmpFemPhysicsData _fiberData;
85 
86 };
87 
88 #endif
Basic class for the mechanical physics plugin object.
Definition: gmpMechanicalComposite.h:38
The number of property ids above.
Definition: gmpMechanicalPhysics.h:171
GmpFemPhysicsData _fiberData
fiber data
Definition: gmpMechanicalComposite.h:84
CompositePropertyIds
IDs for physics element properties.
Definition: gmpMechanicalComposite.h:71
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:558
virtual FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic elements.
Definition: gmpMechanicalSolid.cpp:234
The number of property ids above.
Definition: gmpMechanicalComposite.h:76
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the single mechanical physics attribute map, built when the function is calle...
Definition: gmpMechanicalSolid.cpp:61
Basic class for the mechanical physics plugin object.
Definition: gmpMechanicalSolid.h:35
Declaration of the GmpMechanicalPhysics class.
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...
arma::vec GmVector
arma::mat GmMatrix