32 #ifndef _LIN3DWIDEFLANGE_HPP_ 33 #define _LIN3DWIDEFLANGE_HPP_ 37 #include <Eigen/Dense> 62 Lin3DWideFlange(
double h,
double b,
double tw,
double tf, std::unique_ptr<Material> &material,
double theta=0.0,
unsigned int ip=10);
97 Eigen::VectorXd
GetStrainAt(
double x3=0,
double x2=0);
103 Eigen::VectorXd
GetStressAt(
double x3=0,
double x2=0);
121 void UpdateState(
const Eigen::VectorXd strain,
const unsigned int cond);
Eigen::MatrixXd GetDensity()
Access the section density matrix.
void ReverseState()
Reverse the section states to previous converged state.
double GetShearArea2()
Computes the Angle shear area.
Eigen::VectorXd GetStress()
Returns the resultant (generalised) stress vector over the section.
Eigen::VectorXd GetStressAt(double x3=0, double x2=0)
Returns the section stress at given position.
double b
Total width.
Definition: Lin3DWideFlange.hpp:165
double GetInertiaAxis3()
Computes the Angle flexural inertia.
Virtual class for creating a section object.
Definition: Section.hpp:45
This file contains the abstract "Material object" declarations, which computes the strain...
void CommitState()
Perform converged section state update.
double GetInertiaAxis2()
Computes the Angle flexural inertia.
unsigned int InsertPoint
Local axis coordinate.
Definition: Lin3DWideFlange.hpp:177
This file contains the abstract "Section object" declarations, which computes the strain...
double h
Total height.
Definition: Lin3DWideFlange.hpp:162
double tf
Flange thickness.
Definition: Lin3DWideFlange.hpp:171
Eigen::VectorXd GetStrain()
Returns the resultant (generalised) strain vector over the section.
double GetArea()
Computes the Angle area.
std::unique_ptr< Material > theMaterial
The section's material.
Definition: Lin3DWideFlange.hpp:183
std::unique_ptr< Section > CopySection()
Clone the 'Lin3DWideFlange' section.
void ComputeSectionCenter(double &zcm, double &ycm)
Gets the section centroid.
double GetShearArea3()
Computes the Angle shear area.
Eigen::VectorXd Strain
Generalized Strain vector.
Definition: Lin3DWideFlange.hpp:180
void InitialState()
Brings the section states to its initial state.
Eigen::VectorXd GetStrainAt(double x3=0, double x2=0)
Returns the section strain at given position.
double Theta
Rotation angle.
Definition: Lin3DWideFlange.hpp:174
double tw
Web thickness.
Definition: Lin3DWideFlange.hpp:168
Lin3DWideFlange(double h, double b, double tw, double tf, std::unique_ptr< Material > &material, double theta=0.0, unsigned int ip=10)
Creates a Section to be specified at a Gauss-point in an Element.
Class for creating a wide flange section for 3D analysis with linear elastic material for a frame ele...
Definition: Lin3DWideFlange.hpp:49
Eigen::MatrixXd GetTangentStiffness()
Returns the section stiffness matrix.
void UpdateState(const Eigen::VectorXd strain, const unsigned int cond)
Update the section state for this iteration.
~Lin3DWideFlange()
Destroys this Lin3DWideFlange object.
Eigen::MatrixXd GetInitialTangentStiffness()
Returns the section initial stiffness matrix.