![]() |
Class for implementation of triangular elements. More...
#include <TriangularElement.h>
Public Member Functions | |
virtual MatrixXd | getNMatrix (double zeta1, double zeta2, double zeta3)=0 |
virtual MatrixXd | getBMatrix (double zeta1, double zeta2, double zeta3)=0 |
virtual void | calculateStiffnessMatrix ()=0 |
virtual void | calculateElementLoadTorsion ()=0 |
virtual void | calculateElementLoadShearX ()=0 |
virtual void | calculateElementLoadShearY ()=0 |
virtual double | calculateDeltaGIt ()=0 |
virtual void | computeTauTorsion (double rateOfTwist)=0 |
virtual void | computeTauShear (double Cx, double Cy)=0 |
MatrixXd | getNxMatrix () |
Returns the first row of the B matrix, i.e. N differentiated with respect to x. | |
MatrixXd | getNyMatrix () |
Returns the second row of the B matrix, i.e. N differentiated with respect to y. | |
void | calculateInitialStrain () |
Calculates the initial strain of the element. More... | |
MatrixXd | getN1Matrix (double zeta1, double zeta2, double zeta3) |
Gets the \( \textbf{N}1 \) matrix. More... | |
double | xOfZeta (double zeta1, double zeta2) |
Calculates and returns the the distance in the x-direction between the integration point in the element and the element area centre. More... | |
double | yOfZeta (double zeta1, double zeta2) |
Calculates and returns the the distance in the y-direction between the integration point in the element and the element area centre. More... | |
void | calculateArea () |
Calculates the area of the element. More... | |
void | calculateAreaCentre () |
Calculates the area centre of the element. More... | |
double | getBendingStiffnessX (double Ay) |
Calculates the second moment of area about the x-axis for the element. More... | |
double | getBendingStiffnessY (double Ax) |
Calculates the second moment of area about the y-axis for the element. More... | |
double | getBendingStiffnessProduct (double Ax, double Ay) |
Calculating the product of moment of inertia. More... | |
double | getShearFactorContributionX () |
Gets the shear deformation factor contribution from the element, in x-direction. More... | |
double | getShearFactorContributionY () |
Gets the shear deformation factor contribution from the element, in y-direction. More... | |
void | calculateTorsionShearCenter () |
Calculates the shear center for the element, based on torsional analysis. More... | |
void | calculateElementLoadComposite (double C_x, double C_y, double rateOfTwist) |
Calculates the element load for composite analysis. More... | |
void | computeTauComposite (double C_x, double C_y, double rateOfTwist) |
Calculates the element stresses at the integration points for composite analysis. More... | |
![]() | |
Element () | |
Constructor. | |
void | calculateConstants (int type) |
Initiates XoverY, xCoordinates, and yCoordinates for all massive element types. More... | |
void | setElementValue (MatrixXd &system, MatrixXd &local) |
Uses getIEG() to assign system values to corresponding local parameters. | |
MatrixXd | getZeroVector () |
Initate a vector with numer of columns equal to number of nodes. | |
Public Attributes | |
const double | zeta [3][3] = { { 0.5, 0.5, 0.0 },{ 0.0, 0.5, 0.5 },{ 0.5, 0.0, 0.5 } } |
Zeta values for integration ponts, used for computing values at integration points. | |
double | zetaNode [3][3] = { { 1., 0., 0. },{ 0., 1., 0. },{ 0., 0., 1. } } |
Zeta values for corner nodes, used for computing values at nodes. | |
const double | weight [3] = { 1.0 / 3, 1.0 / 3, 1.0 / 3 } |
Weighting of each integration point. | |
![]() | |
std::vector< Node > | nodes |
Vector containing nodes of the element. | |
double | area |
Elements total area. | |
Material | material |
Elements material with Youngs modulus, poisson's ratio and shear modulus. | |
int | elementType |
Defines what type of element this element is (value '2' for T3,'9' for T6, '3' for Q4 and '10' for Q9) | |
int | numberOfCorners |
Number of corner nodes for the element. 3 for triangular and 4 for quadrilateral. | |
double | Iex |
Elements second area moment about x-axis. | |
double | Iey |
Elements second area moment about y-axis. | |
double | Iexy |
Elements second area moment product. | |
double | ecx |
Elements area centre in x-direction. | |
double | ecy |
Elements area centre in y-direction. | |
double | dx |
Distance in x-direction between mesh- and node area centre. | |
double | dy |
Distance in y-direction between mesh- and node area centre. | |
double | deltaGIt |
Contribution to St.Venant stiffness of the cross-section ( \( GI_t\)) from this element. | |
double | torsion_xs |
Shear center in x-direction derived from torsional analysis. | |
double | torsion_ys |
Shear center in y-direction derived from torsional analysis. | |
MatrixXd | B |
Matrix containing differentials of shapefunction with respect to x and y respectively. 2 rows , number of columns equals number of nodes. | |
MatrixXd | G |
Matrix with shear module used to determine initial element loads in torsional analysis. 2x2 matrix. | |
MatrixXd | XoverY |
Matrix with all x-coordinates followed by all y-coordinates for the nodes in order. Number of rows equal number of nodes times two. | |
MatrixXd | xCoordinates |
Matrix with x-coordinates for the nodes in order. Number of rows equal number of nodes. | |
MatrixXd | yCoordinates |
Matrix with y-coordinates for the nodes in order. Number of rows equal number of nodes. | |
MatrixXd | cornerCoordinatesX |
x-position of corner nodes | |
MatrixXd | cornerCoordinatesY |
y-position of corner nodes | |
MatrixXd | elementStiffness |
Matrix used to temporarily hold element stiffnes coefficients, \(\boldsymbol{K}_e\). | |
MatrixXd | elementLoad |
Matrix used to temporarily hold element load coefficients, \(\boldsymbol{S}^0\). | |
MatrixXd | elementDisplacement |
Matrix used to temporarily hold element displacement values, \( \boldsymbol{v} \). | |
MatrixXd | initialStrain |
Matrix used to temporarily hold element initial strain coefficients, \( \boldsymbol{\epsilon}_0 \). | |
MatrixXd | tauResult |
Stores the tau values of the element temporarily, before it's written to file. | |
MatrixXd | extrapolationMatrix |
Matrix used for extrapolating stress results. | |
Class for implementation of triangular elements.
|
virtual |
|
virtual |
Calculates the area centre of the element.
\( ecx = \frac{x1 + x2 + x3}{3} \)
\( ecy = \frac{y1 + y2 + y3}{3} \)
Implements Element.
|
virtual |
Calculates the element load for composite analysis.
\( \boldsymbol{S}_e^0 = \int_{A_e} \big(\boldsymbol{d}_e^T \boldsymbol{c} - \boldsymbol{B}_e^T \boldsymbol{C}_e \; \boldsymbol{\overline{\epsilon}}_{0,e} \; \big ) dA \)
with
\( \boldsymbol{c} = \begin{bmatrix} C_x \\ C_y \\ \end{bmatrix} \) , \( \boldsymbol{e} = E \begin{bmatrix} x \\ y \\ \end{bmatrix} \), \( \overline{\boldsymbol{\epsilon}}_{0,e} = \overline{\boldsymbol{\epsilon}}_{0_s} + \overline{\boldsymbol{\epsilon}}_{0_t} = \begin{bmatrix} (C_x x + C_y y)\\ -\nu \left ( \frac{1}{2} C_x (x^2 - y^2) + C_y x y \right ) - \boldsymbol{Ny}\theta \\ -\nu \left ( \frac{1}{2} C_y (y^2 - x^2) + C_x x y \right ) + \boldsymbol{Nx}\theta\\ \end{bmatrix} \)
C_x | shear load factor in x-direction |
C_y | shear load factor in y-direction |
rateOfTwist | precalculated rate of twist \( \theta \) |
Implements Element.
void TriangularElement::calculateInitialStrain | ( | ) |
Calculates the initial strain of the element.
\( \textbf{e}_0 = \begin{bmatrix} \textbf{0} & -\textbf{N}\\ \textbf{N} & \textbf{0} \end{bmatrix} \begin{bmatrix} \textbf{x}\\ \textbf{y} \end{bmatrix} \)
|
virtual |
Calculates the shear center for the element, based on torsional analysis.
\( x_s = -\sum E \textbf{y}^T \int_{A_e} \textbf{N}^T \textbf{N} dA \textbf{v} \)
\( y_s = \sum E \textbf{x}^T \int_{A_e} \textbf{N}^T \textbf{N} dA \textbf{v} \)
Implements Element.
|
virtual |
Calculates the element stresses at the integration points for composite analysis.
\( \boldsymbol{\tau}_e = \boldsymbol{C}_e \big ( \boldsymbol{B}_e \boldsymbol{v}_e + \boldsymbol{\epsilon}_{0,e} \big) \)
with
\( \boldsymbol{\epsilon}_{0,e} = \boldsymbol{\epsilon}_{0_s} + \boldsymbol{\epsilon}_{0_t} = \begin{bmatrix} (C_x x + C_y y)\\ -\nu \left ( \frac{1}{2} C_x (x^2 - y^2) + C_y x y \right ) - \boldsymbol{Ny}\theta \\ -\nu \left ( \frac{1}{2} C_y (y^2 - x^2) + C_x x y \right ) + \boldsymbol{Nx}\theta\\ \end{bmatrix} \) , \( \boldsymbol{C}_e = \begin{bmatrix} E_e & 0 & 0 \\ 0 & G_e & 0 \\ 0 & 0 & G_e \\ \end{bmatrix} \)
C_x | shear load factor in x-direction |
C_y | shear load factor in y-direction |
rateOfTwist | precalculated rate of twist \( \theta \) |
Implements Element.
|
virtual |
Calculating the product of moment of inertia.
\( dx_e = Ac_x - Ac_{ex} \)
\( dy_e = Ac_y - Ac_{ey} \)
\( I_{xy} = \sum{E(I_{xy_e} + dx_e*dy_e*A_e)} \)
Ax | Area centre x-direction of the mesh |
Ay | Area centre y-direction of the mesh |
Implements Element.
|
virtual |
Calculates the second moment of area about the x-axis for the element.
\( dy_e = A_y - Ac_{ey} \)
\( I_x = \sum{( E(I_{x_e} + dy_e^2*A_e)) } \)
Ay | Area centre of the mesh |
Implements Element.
|
virtual |
Calculates the second moment of area about the y-axis for the element.
\( dx_e = A_x - Ac_{ex} \)
\( I_y = \sum{(E(I_{y_e} + dx_e^2*A_e))} \)
Ax | Area centre of the mesh |
Implements Element.
MatrixXd TriangularElement::getN1Matrix | ( | double | zeta1, |
double | zeta2, | ||
double | zeta3 | ||
) |
Gets the \( \textbf{N}1 \) matrix.
The \( \textbf{N}1 \) matrix contains the linear shape functions used to interpolate x and y between the corner coordinates
zeta1 | area coordinate with value between -1 and 1 |
zeta2 | area coordinate with value between -1 and 1 |
zeta3 | area coordinate with value between -1 and 1 |
|
virtual |
Gets the shear deformation factor contribution from the element, in x-direction.
\( xContribution = E_e \textbf{x}^T \int_{A_e} \textbf{N}^T \textbf{N} dA \textbf{v}_x \)
Implements Element.
|
virtual |
Gets the shear deformation factor contribution from the element, in y-direction.
\( yContribution = E_e \textbf{y}^T \int_{A_e} \textbf{N}^T \textbf{N} dA \textbf{v}_y \)
Implements Element.
|
virtual |
Calculates and returns the the distance in the x-direction between the integration point in the element and the element area centre.
\( | x = \boldsymbol{N} \boldsymbol{x} - ecx | \)
zeta1 | area coordinate with value between -1 and 1 |
zeta2 | area coordinate with value between -1 and 1 |
Implements Element.
|
virtual |
Calculates and returns the the distance in the y-direction between the integration point in the element and the element area centre.
\( | y = \boldsymbol{N} \boldsymbol{y} - ecy | \)
zeta1 | area coordinate with value between -1 and 1 |
zeta2 | area coordinate with value between -1 and 1 |
Implements Element.