TriangularElement.h
1 #pragma once
2 #include "Element.h"
3 
4 
5 #ifndef TRIANGULARELEMENT
6 #define TRIANGULARELEMENT
7 
10  public Element
11 {
12 public:
15 
16  const double zeta[3][3] = { { 0.5, 0.5, 0.0 },{ 0.0, 0.5, 0.5 },{ 0.5, 0.0, 0.5 } };
17  double zetaNode[3][3] = { { 1., 0., 0. },{ 0., 1., 0. },{ 0., 0., 1. } };
18  const double weight[3] = { 1.0 / 3, 1.0 / 3, 1.0 / 3 };
19 
20  virtual MatrixXd getNMatrix(double zeta1, double zeta2, double zeta3) = 0;
21  virtual MatrixXd getBMatrix(double zeta1, double zeta2, double zeta3) = 0;
22  virtual void calculateStiffnessMatrix() = 0;
23  virtual void calculateElementLoadTorsion() = 0;
24  virtual void calculateElementLoadShearX() = 0;
25  virtual void calculateElementLoadShearY() = 0;
26  virtual double calculateDeltaGIt() = 0;
27  virtual void computeTauTorsion(double rateOfTwist) = 0;
28  virtual void computeTauShear(double Cx, double Cy) = 0;
29 
30 
31  MatrixXd getNxMatrix();
32  MatrixXd getNyMatrix();
33 
50 
61  MatrixXd getN1Matrix(double zeta1, double zeta2, double zeta3);
62 
71  double xOfZeta(double zeta1, double zeta2);
72 
81  double yOfZeta(double zeta1, double zeta2);
82 
88  void calculateArea();
89 
96  void calculateAreaCentre();
97 
106  double getBendingStiffnessX(double Ay);
107 
117  double getBendingStiffnessY(double Ax);
118 
119 
131  double getBendingStiffnessProduct(double Ax, double Ay);
132 
141 
150 
159 
185  void calculateElementLoadComposite(double C_x, double C_y, double rateOfTwist);
186 
213  void computeTauComposite(double C_x, double C_y, double rateOfTwist);
214 
215 };
216 
217 
218 
219 #endif
double getBendingStiffnessY(double Ax)
Calculates the second moment of area about the y-axis for the element.
Definition: TriangularElement.cpp:97
Contains element data and relevant functions for massive analysis.
Definition: Element.h:13
double getBendingStiffnessX(double Ay)
Calculates the second moment of area about the x-axis for the element.
Definition: TriangularElement.cpp:78
void calculateArea()
Calculates the area of the element.
Definition: TriangularElement.cpp:54
double getShearFactorContributionX()
Gets the shear deformation factor contribution from the element, in x-direction.
Definition: TriangularElement.cpp:134
double yOfZeta(double zeta1, double zeta2)
Calculates and returns the the distance in the y-direction between the integration point in the eleme...
Definition: TriangularElement.cpp:49
void computeTauComposite(double C_x, double C_y, double rateOfTwist)
Calculates the element stresses at the integration points for composite analysis. ...
Definition: TriangularElement.cpp:229
double getShearFactorContributionY()
Gets the shear deformation factor contribution from the element, in y-direction.
Definition: TriangularElement.cpp:145
const double weight[3]
Weighting of each integration point.
Definition: TriangularElement.h:18
const double zeta[3][3]
Zeta values for integration ponts, used for computing values at integration points.
Definition: TriangularElement.h:16
double zetaNode[3][3]
Zeta values for corner nodes, used for computing values at nodes.
Definition: TriangularElement.h:17
void calculateTorsionShearCenter()
Calculates the shear center for the element, based on torsional analysis.
Definition: TriangularElement.cpp:156
MatrixXd getNyMatrix()
Returns the second row of the B matrix, i.e. N differentiated with respect to y.
Definition: TriangularElement.cpp:39
void calculateInitialStrain()
Calculates the initial strain of the element.
Definition: TriangularElement.cpp:13
double xOfZeta(double zeta1, double zeta2)
Calculates and returns the the distance in the x-direction between the integration point in the eleme...
Definition: TriangularElement.cpp:44
void calculateElementLoadComposite(double C_x, double C_y, double rateOfTwist)
Calculates the element load for composite analysis.
Definition: TriangularElement.cpp:172
MatrixXd getNxMatrix()
Returns the first row of the B matrix, i.e. N differentiated with respect to x.
Definition: TriangularElement.cpp:34
void calculateAreaCentre()
Calculates the area centre of the element.
Definition: TriangularElement.cpp:71
double getBendingStiffnessProduct(double Ax, double Ay)
Calculating the product of moment of inertia.
Definition: TriangularElement.cpp:117
Class for implementation of triangular elements.
Definition: TriangularElement.h:9
MatrixXd getN1Matrix(double zeta1, double zeta2, double zeta3)
Gets the matrix.
Definition: TriangularElement.cpp:27