My Project
QuadraticElement.h
1 #pragma once
2 #include "Element.h"
3 
6  public Element
7 {
8 public:
9 
10  double xiCoord[2][2] = { { -sqrt(1 / 3.0), sqrt(1 / 3.0) } ,{ sqrt(1 / 3.0), -sqrt(1 / 3.0) } }; //<! \f$ \xi\f$ values of 2x2 integration points
11  double etaCoord[2][2] = { { -sqrt(1 / 3.0), -sqrt(1 / 3.0) } ,{ sqrt(1 / 3.0), sqrt(1 / 3.0) } }; //<! \f$ \eta\f$ values of 2x2 integration points
12  double xiCorner[2][2] = { { -1.0, 1.0 },{ 1.0, -1.0 } }; //<! \f$ \xi\f$ values of the nodes
13  double etaCorner[2][2] = { { -1.0, -1.0 } ,{ 1.0, 1.0 } }; //<! \f$ \eta\f$ values of the nodes
14  double weights[2][2] = { { 1, 1 } ,{ 1, 1 } }; //<! Weights used in 2x2 numerical integration
15  double xiExtrapolation[2][2] = { { -sqrt(3), sqrt(3) },{ sqrt(3), -sqrt(3) } }; //<! Extrapolation values of \f$ \xi\f$
16  double etaExtrapolation[2][2] = { { -sqrt(3), -sqrt(3) } ,{ sqrt(3), sqrt(3) } }; //<! Extrapolation values of \f$ \eta\f$
17  double xiCoord3x3[3][3] = { { -sqrt(0.6), sqrt(0.6) , sqrt(0.6) },{ -sqrt(0.6), 0, sqrt(0.6) },{ 0, -sqrt(0.6), 0 } }; //<! \f$ \xi\f$ values of 3x3 integration points
18  double etaCoord3x3[3][3] = { { -sqrt(0.6), -sqrt(0.6), sqrt(0.6) },{ sqrt(0.6), -sqrt(0.6), 0 },{ sqrt(0.6), 0, 0 } }; //<! \f$ \eta\f$ values of 3x3 integration points
19  double weights3x3[3][3] = { { 25.0 / 81 , 25.0 / 81 , 25.0 / 81 },{ 25.0 / 81 , 40.0 / 81, 40.0 / 81 },{ 40.0 / 81, 40.0 / 81, 64.0 / 81 } }; //<! Weights used in 3x3 numerical integration
20 
23 
24  virtual MatrixXd getNMatrix(double zeta1, double zeta2) = 0;
25  virtual MatrixXd getN_etaMatrix(double xi, double eta) = 0;
26  virtual MatrixXd getN_xiMatrix(double xi, double eta) = 0;
27  virtual MatrixXd getJacobi(double xi, double eta) = 0;
28  virtual MatrixXd getBMatrix(MatrixXd jacobi, double xi, double eta) = 0;
29 
41 
42 
43  void resetElementLoad();
44 
45 
46 
53 
60 
73 
74 
81  void checkBMatrix();
82 
88  void checkNMatrix();
89 
97  void computeTauTorsion(double rateOfTwist);
98 
99 
100  void computeTauShear(double Cx, double Cy);
101 
102 
103 
112  double xOfZeta(double xi, double eta);
113 
122  double yOfZeta(double xi, double eta);
123 
129  void calculateArea();
130 
139  void calculateAreaCentre();
140 
148  double getBendingStiffnessX(double Ay);
149 
159  double getBendingStiffnessY(double Ax);
160 
168  double getBendingStiffnessProduct(double Ax, double Ay);
169 
204  double calculateDeltaGIt();
205 
215 
216 
226  MatrixXd getN1Matrix(double xi, double eta);
227 
228  double getShearFactorContributionX();
229  double getShearFactorContributionY();
230 
231 
232 };
233 
double calculateDeltaGIt()
Calculates delta GIt for the element, used to find gloal GIt for torsional analysis.
Definition: QuadraticElement.cpp:282
Contains element data and relevant functions.
Definition: Element.h:12
Class for implementation of quadratic elements.
Definition: QuadraticElement.h:5
void calculateElementLoadShearY()
Calculates the initial load vector for applied shear along y-axis.
Definition: QuadraticElement.cpp:188
void calculateElementLoadShearX()
Calculates the initial load vector for applied shear along x-axis.
Definition: QuadraticElement.cpp:164
void setExtrapolationMatrix()
Creates the matrix used for extrapolating results.
Definition: QuadraticElement.cpp:315
MatrixXd getN1Matrix(double xi, double eta)
Gets the .
Definition: QuadraticElement.cpp:438
double getBendingStiffnessY(double Ax)
Calculates the second moment of area about the y-axis for the element.
Definition: QuadraticElement.cpp:96
void calculateElementLoadTorsion()
Calculates the initial load vector for torsion .
Definition: QuadraticElement.cpp:137
double getBendingStiffnessX(double Ay)
Calculates the second moment of area about the x-axis for the element.
Definition: QuadraticElement.cpp:76
void calculateArea()
Calculates the area of the element.
Definition: QuadraticElement.cpp:34
void calculateTorsionShearCenter()
Calculates the shear center derived from torsional analysis.
Definition: QuadraticElement.cpp:414
double getBendingStiffnessProduct(double Ax, double Ay)
Calculating the product of moment of inertia.
Definition: QuadraticElement.cpp:114
void calculateAreaCentre()
Calculates the area centre of the element.
Definition: QuadraticElement.cpp:51
double yOfZeta(double xi, double eta)
Calculates and returns the the distance in the y-direction between the integration point in the eleme...
Definition: QuadraticElement.cpp:27
void resetElementLoad()
Resets element load to all zeros.
Definition: QuadraticElement.cpp:332
double xOfZeta(double xi, double eta)
Calculates and returns the the distance in the x-direction between the integration point in the eleme...
Definition: QuadraticElement.cpp:17
void checkBMatrix()
Method verifies Used in debugging of the program. Calculates for each node. First component should ...
Definition: QuadraticElement.cpp:340
void computeTauTorsion(double rateOfTwist)
Calculates shear stresses at nodes using initialStrain and elementsDisplacement.
Definition: QuadraticElement.cpp:213
void checkNMatrix()
Method verifies Used in debugging of the program. Checks if /f$ x = {N} {x} for all integration poi...
Definition: QuadraticElement.cpp:400