32 #ifndef _LIN2DRECTANGULARTUBE_HPP_    33 #define _LIN2DRECTANGULARTUBE_HPP_    37 #include <Eigen/Dense>    62         Lin2DRectangularTube(
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 GetTangentStiffness()
Returns the section stiffness matrix. 
void ReverseState()
Reverse the section states to previous converged state. 
Eigen::VectorXd GetStress()
Returns the resultant (generalised) stress vector over the section. 
double tf
Flange thickness. 
Definition: Lin2DRectangularTube.hpp:166
Eigen::VectorXd GetStrain()
Returns the resultant (generalised) strain vector over the section. 
double GetInertiaAxis3()
Computes the Angle flexural inertia. 
Virtual class for creating a section object. 
Definition: Section.hpp:45
Eigen::VectorXd Strain
Generalized Strain vector. 
Definition: Lin2DRectangularTube.hpp:175
This file contains the abstract "Material object" declarations, which computes the strain...
Class for creating a rectangular tube section for 2D analysis with linear elastic material for a fram...
Definition: Lin2DRectangularTube.hpp:49
void ComputeSectionCenter(double &zcm, double &ycm)
Gets the section centroid. 
This file contains the abstract "Section object" declarations, which computes the strain...
std::unique_ptr< Section > CopySection()
Clone the 'Lin2DRectangularTube' section. 
double GetShearArea3()
Computes the Angle shear area. 
Eigen::MatrixXd GetDensity()
Access the section density matrix. 
double b
Total width. 
Definition: Lin2DRectangularTube.hpp:160
double h
Total height. 
Definition: Lin2DRectangularTube.hpp:157
~Lin2DRectangularTube()
Destroys this Lin2DAngle object. 
unsigned int InsertPoint
Local axis coordinate. 
Definition: Lin2DRectangularTube.hpp:172
Eigen::MatrixXd GetInitialTangentStiffness()
Returns the section initial stiffness matrix. 
Eigen::VectorXd GetStrainAt(double x3=0, double x2=0)
Returns the section strain at given position. 
double GetInertiaAxis2()
Computes the Angle flexural inertia. 
Lin2DRectangularTube(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. 
void CommitState()
Perform converged section state update. 
double GetArea()
Computes the Angle area. 
void UpdateState(const Eigen::VectorXd strain, const unsigned int cond)
Update the section state for this iteration. 
double tw
Web thickness. 
Definition: Lin2DRectangularTube.hpp:163
void InitialState()
Brings the section states to its initial state. 
double Theta
Rotation angle. 
Definition: Lin2DRectangularTube.hpp:169
double GetShearArea2()
Computes the Angle shear area. 
std::unique_ptr< Material > theMaterial
The section's material. 
Definition: Lin2DRectangularTube.hpp:178
Eigen::VectorXd GetStressAt(double x3=0, double x2=0)
Returns the section stress at given position.