My Project
Public Member Functions | Public Attributes | List of all members
TriangularElement Class Referenceabstract

Inherits Element.

Inherited by T3Element, and T6Element.

Public Member Functions

virtual MatrixXd getShapefunction (double zeta1, double zeta2, double zeta3)=0
 Calculates the Matrix containing shape functions
. More...
 
virtual MatrixXd getNMatrix (double zeta1, double zeta2, double zeta3)=0
 Returns a matrix of matrices with shape functions.
 
virtual void calculateConstants ()=0
 Calculates the constant vectors and matrices for the element; i.e. G, xCoordinates, and yCoordinates.
 
virtual void calculateStiffnessMatrix ()=0
 Calculates the element stiffness matrix K.
 
virtual void calculateElementLoadTorsion ()=0
 Calculates the initial load vector for torsion.
 
virtual void calculateElementLoadShearX ()=0
 Calculates the initial load vector for shear along X.
 
virtual void calculateElementLoadShearY ()=0
 Calculates the initial load vector for shear along Y.
 
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 ()
 
void calculateAreaCentre ()
 Calculates the area centre of the element. More...
 
double getBendingStiffnessX (double)
 Calculates the second moment of area about the x-axis for the element. More...
 
double getBendingStiffnessY (double)
 Calculates the second moment of area about the y-axis for the element. More...
 
double getBendingStiffnessProduct (double, double)
 Calculating the product of moment of inertia. More...
 
- Public Member Functions inherited from Element
 Element ()
 Constructor.
 
virtual void computeTau ()=0
 Calculates shear stresses at nodes using initialStrain and elementsDisplacement. More...
 
MatrixXd getNxMatrix ()
 Returns the shapefunction as a function of x and y. More...
 
MatrixXd getNyMatrix ()
 Returns the second row of the B matrix, i.e. N differentiated with respect to y.
 
std::vector< int > getIEG ()
 Creates a vector with node numbers that makes up the element. More...
 
void setElementValue (MatrixXd &system, MatrixXd &local)
 Uses getIEG() to assign system values to corresponding local parameters.
 

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.
 
const double weight [3] = { 1.0 / 3, 1.0 / 3, 1.0 / 3 }
 Weighting of each integration point.
 
double xl1
 Distance in x-direction from node to element area center.
 
double xl2
 Distance in x-direction from node to element area center.
 
double xl3
 Distance in x-direction from node to element area center.
 
double yl1
 Distance in y-direction from node to element area center.
 
double yl2
 Distance in y-direction from node to element area center.
 
double yl3
 Distance in y-direction from node to element area center.
 
- Public Attributes inherited from Element
std::vector< int > nodes
 Vector containing the nodes of the element.
 
double area
 Elements total area.
 
Material material
 Element material with Youngs modulus, poisson's ratio and shear modulus.
 
int elementType
 Defines what type of element this element is (value '2' for T3 and value '9' for T6)
 
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.
 
std::vector< double > xNodePositions
 Elements nodepositions in x-direction.
 
std::vector< double > yNodePositions
 Elements nodepositions in y-direction.
 
std::vector< double > xNodePositionPrincipal
 Nodal x-coordinates in principal axes.
 
std::vector< double > yNodePositionPrincipal
 Nodal y-coordinates in principal axes.
 
MatrixXd B
 2x3 Matrix containing differentials of shapefunction with respect to x and y respectively
 
MatrixXd G
 Matrix with shearmodule used to determine initial element loads in tortional analysis.
 
MatrixXd XoverY
 6x1 matrix with x1, x2, x3, y1, y2, and y3 of the element.
 
MatrixXd xCoordinates
 1x3 matrix with x-coordinates.
 
MatrixXd yCoordinates
 1X3 matrix with y-coordinates.
 
MatrixXd elementStiffness
 Matrix used to temporarily hold element stiffnes coefficients.
 
MatrixXd elementLoad
 Matrix used to temporarily hold element load coefficients.
 
MatrixXd elementDisplacement
 Matrix used to temporarily hold element displacement values.
 
MatrixXd initialStrain
 Matrix used to temporarily hold element initial strain coefficients.
 
std::vector< MatrixXd > tau
 Vector temporarily storing shear stresses during calculation.
 

Member Function Documentation

void TriangularElement::calculateAreaCentre ( )
virtual

Calculates the area centre of the element.

\( ec_x = \frac{x1 + x2 + x3}{3} \)
\( ec_y = \frac{y1 + y2 + y3}{3} \)

Implements Element.

double TriangularElement::getBendingStiffnessProduct ( double  Ax,
double  Ay 
)
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)} \)

Implements Element.

double TriangularElement::getBendingStiffnessX ( double  Ay)
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)) } \)

Parameters
AyArea centre of the mesh

Implements Element.

double TriangularElement::getBendingStiffnessY ( double  Ax)
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))} \)

Parameters
AxArea centre of the mesh

Implements Element.

virtual MatrixXd TriangularElement::getShapefunction ( double  zeta1,
double  zeta2,
double  zeta3 
)
pure virtual

Calculates the Matrix containing shape functions
.

Returns
MatrixXd(1,3) with shape functions

Implements Element.

Implemented in T3Element, and T6Element.

double TriangularElement::xOfZeta ( double  zeta1,
double  zeta2 
)
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}^T - ecx | \)

Parameters
zeta1area coordinate with value between -1 and 1
zeta2area coordinate with value between -1 and 1
Returns
distance in x-direction for integration point defiend by \(\zeta_1\) and \(\zeta_2\)

Implements Element.

double TriangularElement::yOfZeta ( double  zeta1,
double  zeta2 
)
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}^T - ecy | \)

Parameters
zeta1area coordinate with value between -1 and 1
zeta2area coordinate with value between -1 and 1
Returns
distance in y-direction for integration point defiend by \(\zeta_1\) and \(\zeta_2\)

Implements Element.


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