Public Member Functions | List of all members
T6Element Class Reference

Class for implementation of T6 elements. More...

#include <T6Element.h>

Inheritance diagram for T6Element:
TriangularElement Element

Public Member Functions

 T6Element ()
 Constructor.
 
void calculateElementLoadTorsion ()
 Calculates the initial load vector for torsion \(\boldsymbol{S}^0\). Load vector is negative for torsion loading to match global load vector. More...
 
void calculateElementLoadShearX ()
 Calculates the initial load vector \(\boldsymbol{S}_x^0\) for applied shear along x-axis. More...
 
void calculateElementLoadShearY ()
 Calculates the initial load vector \(\boldsymbol{S}_y^0\) for applied shear along y-axis. More...
 
MatrixXd getNMatrix (double zeta1, double zeta2, double zeta3)
 Calculates shapefunctions. More...
 
void calculateStiffnessMatrix ()
 Calculates element stiffness matrix \(\boldsymbol{K}\). More...
 
void calculateBMatrix (double zeta1, double zeta2, double zeta3)
 Calculates the \(\boldsymbol{B}\) for T6 elements. More...
 
MatrixXd getBMatrix (double zeta1, double zeta2, double zeta3)
 Returns the \(\boldsymbol{B}\) for the specified integration point. More...
 
void checkBMatrix ()
 Method verifies \( \boldsymbol{B} \). More...
 
void computeTauTorsion (double rateOfTwist)
 Calculates shear stresses from torsion load at nodes using initialStrain and elementsDisplacement The stress values are computed directly at the nodes (unline quadrilateral elements) by calling \(\boldsymbol{B}\) and \(\boldsymbol{N}\) of zetaNode rather than just zeta. More...
 
void computeTauShear (double Cx, double Cy)
 Calculates shear stresses from shear loading at nodes using elementsDisplacement The stress values are computed directly at the nodes (unline quadrilateral elements) by calling \(\boldsymbol{B}\) and \(\boldsymbol{N}\) of zetaNode rather than just zeta. More...
 
double calculateDeltaGIt ()
 Calculates delta GIt for the element, used to find gloal GIt for torsional analysis. More...
 
- Public Member Functions inherited from TriangularElement
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...
 
- Public Member Functions inherited from Element
 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.
 

Additional Inherited Members

- Public Attributes inherited from TriangularElement
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.
 
- Public Attributes inherited from Element
std::vector< Nodenodes
 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.
 

Detailed Description

Class for implementation of T6 elements.

Member Function Documentation

void T6Element::calculateBMatrix ( double  zeta1,
double  zeta2,
double  zeta3 
)

Calculates the \(\boldsymbol{B}\) for T6 elements.

\( \begin{equation} \textbf{B} = \frac{1}{2A} \begin{bmatrix} y_{23}&y_{31}& y_{12}\\ x_{32}& x_{13} & x_{21} \\ \end{bmatrix} \begin{bmatrix} (2\zeta_1 -1) & 0 & 0 & 4 \zeta_2 & 0 & 4 \zeta_3 \\ 0 & (2\zeta_2 -1)& 0 & 4 \zeta_1 & 4\zeta_3 & 0 \\ 0 & 0 & (2\zeta_3-1) & 0 & 4\zeta_2 & 4\zeta_1 \\ \end{bmatrix} \end{equation} \)

Parameters
zeta1zeta1-value of integration point
zeta2zeta2-value of integration point
zeta3zeta3-value of integration point
double T6Element::calculateDeltaGIt ( )
virtual

Calculates delta GIt for the element, used to find gloal GIt for torsional analysis.

\( \begin{equation} \Delta GI_t \; = \; \int_A \begin{bmatrix} \boldsymbol{x^T} \\ \boldsymbol{y^T} \end{bmatrix} \begin{bmatrix} \boldsymbol{0} & \boldsymbol{N}^T \\ \boldsymbol{N}^T & \boldsymbol{0} \end{bmatrix} \left( \begin{bmatrix} \textbf{-N}_{,x} \\ \textbf{N}_{,y} \end{bmatrix} \textbf{v} + \begin{bmatrix} \textbf{0} & \textbf{N} \\ \textbf{N} & \textbf{0} \end{bmatrix} \begin{bmatrix} \textbf{x} \\ \textbf{y} \end{bmatrix} \right ) \end{equation} \)

Implements TriangularElement.

void T6Element::calculateElementLoadShearX ( void  )
virtual

Calculates the initial load vector \(\boldsymbol{S}_x^0\) for applied shear along x-axis.

\( \boldsymbol{S}^0_x = \frac{E_eV_x}{EI_y} \left[\int_{A_e} \boldsymbol{N}^TxdA + \frac{\nu_e}{4(1+\nu_e)}\int_{A_e}(\boldsymbol{N}^T_{,x}(x^2 - y^2) + 2\boldsymbol{N}^T_{,y}xy)dA \right] \)

Implements TriangularElement.

void T6Element::calculateElementLoadShearY ( )
virtual

Calculates the initial load vector \(\boldsymbol{S}_y^0\) for applied shear along y-axis.

\( \boldsymbol{S}^0_y = \frac{E_eV_y}{EI_x} \left[ \int_{A_e} \boldsymbol{N}^TydA + \frac{\nu_e}{4(1+\nu_e)}\int_{A_e}(\boldsymbol{N}^T_{,y}(y^2 - x^2) + 2\boldsymbol{N}^T_{,x}xy)dA \right]\)

Implements TriangularElement.

void T6Element::calculateElementLoadTorsion ( )
virtual

Calculates the initial load vector for torsion \(\boldsymbol{S}^0\). Load vector is negative for torsion loading to match global load vector.

\( \boldsymbol{S}^0 = - \int_A \boldsymbol{B}^T \boldsymbol{G} \boldsymbol{\epsilon}_0 dA \)Calculates the initial load vector for torsion.

Implements TriangularElement.

void T6Element::calculateStiffnessMatrix ( )
virtual

Calculates element stiffness matrix \(\boldsymbol{K}\).

\( \begin{equation} \boldsymbol{K} = \int_{A} \boldsymbol{B}^T \boldsymbol{G} \boldsymbol{B} dA \end{equation} \)

Implements TriangularElement.

void T6Element::checkBMatrix ( )

Method verifies \( \boldsymbol{B} \).

Used in debugging of the program. Calculates \(\boldsymbol{\epsilon}\) for each node. First component should be 1, second should be zero. If not, B is wrong. User must verify values (non-automatic). \( \boldsymbol{\epsilon} = \boldsymbol{B}\boldsymbol{x}\)

void T6Element::computeTauShear ( double  Cx,
double  Cy 
)
virtual

Calculates shear stresses from shear loading at nodes using elementsDisplacement The stress values are computed directly at the nodes (unline quadrilateral elements) by calling \(\boldsymbol{B}\) and \(\boldsymbol{N}\) of zetaNode rather than just zeta.

\( \tau = \boldsymbol{G}(\boldsymbol{Bv} + \boldsymbol{A})\)
where \( A = \begin{bmatrix} -\nu(\frac{1}{2}C_x(x^2-y^2) + C_y xy) \\ -\nu(C_x xy + \frac{1}{2}C_y (y^2 - z^2)) \end{bmatrix} \)
with \( C_x = \frac{V_x}{EIyp} \)
and \( C_y = \frac{V_y}{EIxp} \)

Parameters
Cxcoefficient for \(V_x\)
Cycoefficient for \(V_y\)

Implements TriangularElement.

void T6Element::computeTauTorsion ( double  rateOfTwist)
virtual

Calculates shear stresses from torsion load at nodes using initialStrain and elementsDisplacement The stress values are computed directly at the nodes (unline quadrilateral elements) by calling \(\boldsymbol{B}\) and \(\boldsymbol{N}\) of zetaNode rather than just zeta.

\( \boldsymbol{\tau} = \boldsymbol{B}\boldsymbol{v} + \boldsymbol{\epsilon_0} \)

Parameters
rateOfTWistprecomputed rateOfTwist \(\theta\)

Implements TriangularElement.

MatrixXd T6Element::getBMatrix ( double  zeta1,
double  zeta2,
double  zeta3 
)
virtual

Returns the \(\boldsymbol{B}\) for the specified integration point.

Parameters
zeta1zeta1-value of integration point
zeta2zeta2-value of integration point
zeta3zeta3-value of integration point
Returns
MatrixXd(2,6) with shape functions

Implements TriangularElement.

MatrixXd T6Element::getNMatrix ( double  zeta1,
double  zeta2,
double  zeta3 
)
virtual

Calculates shapefunctions.

\(\begin{equation} \textbf{N} = \begin{bmatrix} \zeta_1 (2\zeta_1 -1) & \zeta_2(2\zeta_2-1) & \zeta_3(2\zeta_3-1) & 4\zeta_1 \zeta_2 & 4\zeta_2\zeta_3 & 4 \zeta_1 \zeta_3 \end{bmatrix} \end{equation} \)

Parameters
zeta1zeta1-value of integration point
zeta2zeta2-value of integration point
zeta3zeta3-value of integration point
Returns
MatrixXd(1,6) with shape functions

Implements TriangularElement.


The documentation for this class was generated from the following files: