![]() |
Class for implementation of T6 elements. More...
#include <T6Element.h>
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... | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
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 T6 elements.
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} \)
zeta1 | zeta1-value of integration point |
zeta2 | zeta2-value of integration point |
zeta3 | zeta3-value of integration point |
|
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.
|
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.
|
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.
|
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.
|
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}\)
|
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} \)
Cx | coefficient for \(V_x\) |
Cy | coefficient for \(V_y\) |
Implements TriangularElement.
|
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} \)
rateOfTWist | precomputed rateOfTwist \(\theta\) |
Implements TriangularElement.
|
virtual |
Returns the \(\boldsymbol{B}\) for the specified integration point.
zeta1 | zeta1-value of integration point |
zeta2 | zeta2-value of integration point |
zeta3 | zeta3-value of integration point |
Implements TriangularElement.
|
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} \)
zeta1 | zeta1-value of integration point |
zeta2 | zeta2-value of integration point |
zeta3 | zeta3-value of integration point |
Implements TriangularElement.