8 #include <Eigen/Sparse> 9 #include <Eigen/SparseCholesky> 10 #include <Eigen/SparseLU> 17 using namespace Eigen;
26 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
29 static const int meshType = 1;
118 void calculateComposite();
119 double getAnglePrincipalAxes();
121 Node getNodeAt(
int n);
125 void SetSmoothNodalTau();
134 void solveBendingMoments();
149 void applyShearFactor(MatrixXd &S, std::string shearType);
157 void constrainNodeNearCenter(SparseMatrix<double> &K, MatrixXd &R);
168 void calculateMeshProperties();
176 void transformCoordinates();
184 void calculateMeshBendingStiffness();
193 void calculatePrincipalBendingStiffness();
202 void calculateMeshSecondMomentsOfArea();
212 void calculateAnglePrincipalAxes();
224 void solveEquations(SparseMatrix<double> &A, MatrixXd &b, MatrixXd &C);
251 void constrainDOF(SparseMatrix<double> &K, MatrixXd &R,
int nNumber);
261 void calculatePrincipalSecondMomentsOfArea();
271 void calculateSigmaZfromShearLoad();
277 void calculateSigmaResulting();
283 void calculateTauResulting();
291 void calculateEffectiveStress();
322 void systemEquations(SparseMatrix<double> &K, MatrixXd &R);
330 void systemLoadVector(MatrixXd &R);
338 void addLocalToGlobalSparse(SparseMatrix<double> &K,
int e);
346 void addLocalToGlobalVector(MatrixXd &R,
int e);
356 void addSubMatrix(SparseMatrix<double> &systemMatrix,
int n1,
int n2,
double value);
361 int getNodeNearCenter();
372 void findSurroundingElementsForNodes();
381 void calculateShearDeformationFactorX();
390 void calculateShearDeformationFactorY();
MatrixXd tauYZResulting
Stores nodal from axial, torsion and shear load in both directions.
Definition: Mesh.h:83
MatrixXd tauTorsion
Stores nodal , and respectively from torsional load.
Definition: Mesh.h:77
Contains mesh data for massive analysis. Performs stress analysis on this mesh.
Definition: Mesh.h:21
Contains element data and relevant functions for massive analysis.
Definition: Element.h:13
double My
Bending moment in y-direction to be applied to the cross section.
Definition: Mesh.h:62
int getNumElements()
Returns total number of elements.
Definition: Mesh.h:124
double Vy
Shear force in y-direction to be applied to the cross section.
Definition: Mesh.h:65
double EImax
Maximum bending stiffness for mesh along principal axis.
Definition: Mesh.h:39
Struct that holds nodal properties.
Definition: Node.h:10
MatrixXd torsion_displacement
Stores values for displacement for the case of torsion. Only used for validation during testing...
Definition: Mesh.h:91
double N
Normal force to be applied to the cross section.
Definition: Mesh.h:60
MatrixXd load
system load vector
Definition: Mesh.h:299
Material baseMaterial
Material with values for Youngs modulus, Poisson's ratio and shear modulus.
Definition: Mesh.h:71
SparseMatrix< double > stiffness
System stiffness matrix.
Definition: Mesh.h:298
MatrixXd displacement
system displacement vector
Definition: Mesh.h:300
MatrixXd tauComposite
Stores nodal and respectively from torsion and shear load in both directions.
Definition: Mesh.h:86
std::string shearType
Variable used in applyShearLoad, that is dependent on the shear analysis being in x or y directions...
Definition: Mesh.h:69
double EIx
Bending stiffness about x-direction.
Definition: Mesh.h:36
double torsion_xs
Shear center in x-direction, due to torsion load.
Definition: Mesh.h:57
double EIy
Bending stiffness about y-direction.
Definition: Mesh.h:37
MatrixXd tauShearX
Stores nodal , and respectively from shear load in x-direction.
Definition: Mesh.h:78
double Imax
Maximum second area moment for mesh along principal axis.
Definition: Mesh.h:47
MatrixXd effectiveStress
Stores nodal from axial, torsion and shear load in both directions.
Definition: Mesh.h:88
double rateOfTwist
Rate of twist, used for torsion analysis.
Definition: Mesh.h:54
double It
St. Venant torsion constant.
Definition: Mesh.h:51
double Ax
Area centre for mesh in X-direction.
Definition: Mesh.h:30
double shearStiffness
Sum of all Ai * Gi.
Definition: Mesh.h:34
MatrixXd shearY_displacement
Stores values for displacement for the case of shearY. Only used for validation during testing...
Definition: Mesh.h:97
MatrixXd shearX_load
Stores values for load for the case of shearX.
Definition: Mesh.h:93
double totalArea
Total area of the mesh.
Definition: Mesh.h:32
double areaStiffness
Sum of all Ai * Ei.
Definition: Mesh.h:33
Contains material data such as Young's Modulus, Shear Modulus and Poisson's ratio, and if needed could include additional material properties.
Definition: Material.h:3
MatrixXd tauResulting
Stores nodal from axial, torsion and shear load in both directions.
Definition: Mesh.h:84
MatrixXd sigmaShearXY
Stores nodal from shear load in x- and y-direction respectively.
Definition: Mesh.h:75
double Mz
Torsion moment about z-axis to be applied to the cross-section.
Definition: Mesh.h:63
MatrixXd sigmaAxial
Stores nodal stress from axial force.
Definition: Mesh.h:73
std::vector< Node > nodes
List of all nodes in mesh.
Definition: Mesh.h:113
MatrixXd printTemp2
Used in testing to store desired value for printing.
Definition: Mesh.h:100
MatrixXd sigmaTorsion
Stores all nodal stresses from moment about x- and y-axis respectively.
Definition: Mesh.h:74
MatrixXd tauShearY
Stores nodal , and respectively from shear load in y-direction.
Definition: Mesh.h:79
double Mx
Bending moment in x-direction to be applied to the cross section.
Definition: Mesh.h:61
std::vector< Element * > elements
List of all elements in mesh.
Definition: Mesh.h:112
double Kx
Shear factor x.
Definition: Mesh.h:55
double Ixp
Second area moment for mesh in principal x-direction.
Definition: Mesh.h:49
double Ixy
Second area moment product.
Definition: Mesh.h:46
double Vx
Shear force in x-direction to be applied to the cross section.
Definition: Mesh.h:64
double Ky
Shear factor y.
Definition: Mesh.h:56
double EIyp
Bending stiffness about principal y-direction.
Definition: Mesh.h:42
double Iyp
Second area moment for mesh in principal y-direction.
Definition: Mesh.h:50
double Ay
Area centre for mesh in Y-direction.
Definition: Mesh.h:31
MatrixXd sigmaResulting
Stores nodal from axial, torsion and shear load in both directions.
Definition: Mesh.h:81
double GIt
St.Venant stiffness.
Definition: Mesh.h:53
double Ix
Second area moment for mesh in x-direction.
Definition: Mesh.h:44
MatrixXd tauXZResulting
Stores nodal from axial, torsion and shear load in both directions.
Definition: Mesh.h:82
int getNumNodes()
Returns total number of nodes.
Definition: Mesh.h:123
MatrixXd shearY_load
Stores values for load for the case of shearY.
Definition: Mesh.h:96
double Iy
Second area moment for mesh in y-direction.
Definition: Mesh.h:45
double torsion_ys
Shear center in y-direction, due to torsion load.
Definition: Mesh.h:58
double anglePrincipalAxes
Stores the angle of the principal axes in degrees.
Definition: Mesh.h:67
double EIxp
Bending stiffness about principal x-direction.
Definition: Mesh.h:41
MatrixXd shearX_displacement
Stores values for displacement for the case of shearX. Only used for validation during testing...
Definition: Mesh.h:94
MatrixXd torsion_load
Stores values for load for the case of torsion.
Definition: Mesh.h:90
double EIxy
Bending stiffness product.
Definition: Mesh.h:38
MatrixXd printTemp1
Used in testing to store desired value for printing.
Definition: Mesh.h:99
double anglePrincipalAxesRad
Stores the angle of the principal axes in radians.
Definition: Mesh.h:68