24#ifndef _GEMA_BAR_CELL_GEOMETRY_INFO_H_
25#define _GEMA_BAR_CELL_GEOMETRY_INFO_H_
The Bar2 implementation.
Definition gmBarCellGeometryInfo.h:71
virtual void centroidCartesian(const GmMatrix &X, GmVector &coord) const
Returns the Bar2 centroid by calculating the mean of the vertices (simplex centroid)
Definition gmBarCellGeometryInfo.h:84
virtual double dimension(const GmMatrix &X) const
Returns the Bar2 length.
Definition gmBarCellGeometryInfo.h:79
GmBar2CellGeometryInfo(GmCellGeometryMetadata &&metadata)
Protected constructor. Only a single Bar2 geometry info object is ever necessary, created by GmBarCel...
Definition gmBarCellGeometryInfo.h:90
virtual GmShape * shapeInstance(int P, int Q) const
Shape function factory. Should return a NEW instance of the shape function object for this type....
Definition gmBarCellGeometryInfo.h:76
virtual bool localAxis(const GmMatrix &X, GmMatrix &R) const
Computes the cell local axis system, with R = [X, Y, Z] and X, Y and Z being the local axis unit vect...
Definition gmBarCellGeometryInfo.h:81
GmShape specialization for a 2D Bar with 2 nodes object.
Definition gmBarShape.h:123
The Bar3 implementation.
Definition gmBarCellGeometryInfo.h:120
GmBar3CellGeometryInfo(GmCellGeometryMetadata &&metadata)
Protected constructor. Only a single Bar3 geometry info object is ever necessary, created by GmBarCel...
Definition gmBarCellGeometryInfo.h:141
virtual double dimension(const GmMatrix &X) const
Returns the Bar3 length by numeric integration.
Definition gmBarCellGeometryInfo.h:128
virtual bool localAxis(const GmMatrix &X, GmMatrix &R) const
Computes the cell local axis system, with R = [X, Y, Z] and X, Y and Z being the local axis unit vect...
Definition gmBarCellGeometryInfo.h:135
virtual GmShape * shapeInstance(int P, int Q) const
Shape function factory. Should return a NEW instance of the shape function object for this type....
Definition gmBarCellGeometryInfo.h:125
virtual void centroidCartesian(const GmMatrix &X, GmVector &coord) const
Returns the Bar3 centroid by returning the mid edge cell node coordinate. Is this correct?...
Definition gmBarCellGeometryInfo.h:133
The Bar3D2 implementation.
Definition gmBarCellGeometryInfo.h:100
virtual GmShape * shapeInstance(int P, int Q) const
Shape function factory. Should return a NEW instance of the shape function object for this type....
Definition gmBarCellGeometryInfo.h:105
GmBar3D2CellGeometryInfo(const GmBar2CellGeometryInfo &bar2)
Private constructor. Only a single Bar3D2 geometry info object is ever necessary, created by GmBarCel...
Definition gmBarCellGeometryInfo.h:109
GmShape specialization for a 3D Bar with 2 nodes object.
Definition gmBarShape.h:180
The Bar3D3 implementation.
Definition gmBarCellGeometryInfo.h:151
virtual GmShape * shapeInstance(int P, int Q) const
Shape function factory. Should return a NEW instance of the shape function object for this type....
Definition gmBarCellGeometryInfo.h:156
GmBar3D3CellGeometryInfo(const GmBar3CellGeometryInfo &bar3)
Private constructor. Only a single Bar3D2 geometry info object is ever necessary, created by GmBarCel...
Definition gmBarCellGeometryInfo.h:160
GmShape specialization for a 3D Bar with 3 nodes object.
Definition gmBarShape.h:206
GmShape specialization for a 2D Bar with 3 nodes object.
Definition gmBarShape.h:156
void centroidByIntegration(const GmMatrix &X, GmVector &coord, const GmIntegrationRule *ir=NULL) const
Given a cell geometry defined by matrix X (with node coordinates organized by column) performs a nume...
Definition gmCellGeometryInfo.cpp:114
double dimensionByIntegration(const GmMatrix &X, const GmIntegrationRule *ir=NULL) const
Given a cell geometry defined by matrix X (with node coordinates organized by column) performs a nume...
Definition gmCellGeometryInfo.cpp:76
An auxiliary class that can be used as base for line (bar) elements. Implements the needed integratio...
Definition gmCellGeometryInfo.h:375
A helper class used to store the default rules for each rule type. Template parameters are the defaul...
Definition gmCellGeometryIntegrationRuleSet.h:44
A helper class used to store the class types for each rule type. Template parameters are the implemen...
Definition gmCellGeometryIntegrationRuleSet.h:197
1D Gauss Integration rules (for bar elements)
Definition gmBarIntegrationRule.h:37
1D Lobatto Integration rules (for bar elements)
Definition gmBarIntegrationRule.h:84
1D Newton cotes Integration rules (for bar elements)
Definition gmBarIntegrationRule.h:60
Shape function handling base classe.
Definition gmShape.h:38
GmCellGeometryIntegrationRuleSetDefaultRules< GM_GAUSS_RULE_TYPE, 3, 3, 3, 3 > GmQuadraticBarIntegrationRuleSetDefaults
The set of default rules for a quadratic Bar ELEMENT. Template parameters 2 to 5 are the default rule...
Definition gmBarCellGeometryInfo.h:61
GmCellGeometryIntegrationRuleSet< GmLineGaussIntegrationRule, GmLineLobattoIntegrationRule, GmLineNewtonIntegrationRule, GmLineNewtonIntegrationRule > GmBarIntegrationRuleSet
The set of possible ELEMENT integration rules, per integration rule type, for the family of Bar eleme...
Definition gmBarCellGeometryInfo.h:41
GmCellGeometryIntegrationRuleSetDefaultRules< GM_GAUSS_RULE_TYPE, 2, 2, 2, 2 > GmLinearBarIntegrationRuleSetDefaults
The set of default rules for a linear Bar ELEMENT. Template parameters 2 to 5 are the default rule nu...
Definition gmBarCellGeometryInfo.h:51
Declaration of the GmLineXxxxIntegrationRule family of classes Content previously in gmIntegrationRul...
Declaration of the 1D Bar shapes inheriting from GmShape class Previosuly part of the gmShape1D....
Declaration of the GmCellGeometryInfo base class.
Declaration of the GmCellGeometryIntegrationRuleSet class & friends.
#define GMC_API_EXPORT
Macro for controlling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_L...
Definition gmCoreConfig.h:35
Utilitary functions for working with geometry.
arma::mat GmMatrix
The basic type for a GeMA matrix object. Currently based on an Armadillo matrix.
Definition gmMatrix.h:38
arma::vec GmVector
The basic type for a GeMA vector object. Currently based on an Armadillo vector.
Definition gmVector.h:34
void edgeCentroid(const GmVector &p1, const GmVector &p2, GmVector &coord)
Returns the cartesian coordinate of the edge centroid.
Definition gmGeometryUtils.cpp:252
double edgeLength(const GmVector &p1, const GmVector &p2)
Calculates the length of the edge determined by points p1 and p2.
Definition gmGeometryUtils.cpp:153