36 #include <Eigen/Dense>    86         virtual Eigen::VectorXd 
GetStrainAt(
double x3=0, 
double x2=0) = 0;
    92         virtual Eigen::VectorXd 
GetStressAt(
double x3=0, 
double x2=0) = 0;
   110         virtual void UpdateState(Eigen::VectorXd strain, 
unsigned int cond=0) = 0;
   159         Eigen::MatrixXd 
ComputeLineLocalAxes(
double h, 
double b, 
double zcm, 
double ycm, 
double angle, 
unsigned int ip);
 virtual Eigen::MatrixXd GetDensity()=0
Access the section density matrix. 
 
std::string Name
Section Name. 
Definition: Section.hpp:163
 
Eigen::MatrixXd ComputeLineLocalAxes(double h, double b, double zcm, double ycm, double angle, unsigned int ip)
Transforms generalised strain/stresses from Element to Section local coordinate. 
 
virtual void InitialState()=0
Brings the section states to its initial state. 
 
Virtual class for creating a section object. 
Definition: Section.hpp:45
 
virtual void ReverseState()=0
Reverse the section states to previous converged state. 
 
virtual Eigen::VectorXd GetStrain()=0
Returns the resultant (generalised) strain vector over the section. 
 
virtual void CommitState()=0
Perform converged section state update. 
 
virtual Eigen::VectorXd GetStrainAt(double x3=0, double x2=0)=0
Returns the section strain at given position. 
 
virtual std::unique_ptr< Section > CopySection()=0
Clone the selected Section. 
 
Eigen::MatrixXd GetAreaRotationMatrix(double Theta)
Gets Local Axis Rotation for Area Section according to provided angle. 
 
Eigen::MatrixXd GetLineTranslationMatrix(double h, double b, double zc, double yc, unsigned int ip)
Gets centroid translation axis for Line Section according to insertion point. 
 
Eigen::MatrixXd GetLineRotationMatrix(double theta)
Gets Local Axis Rotation for Line Section according to provided angle. 
 
virtual ~Section()=0
Destroys this Section object. 
 
std::string GetName()
Gets Section name. 
 
virtual void UpdateState(Eigen::VectorXd strain, unsigned int cond=0)=0
Update the section state for this iteration. 
 
Section(std::string name)
Creates a Section to be specified at a Gauss-point in an Element. 
 
void InsertionPointCoordinates(double &x3, double &x2, double h, double b, double zc, double yc, unsigned int ip)
Gets the coordinate according to insertion point. 
 
virtual Eigen::VectorXd GetStressAt(double x3=0, double x2=0)=0
Returns the section stress at given position. 
 
virtual Eigen::VectorXd GetStress()=0
Returns the resultant (generalised) stress vector over the section. 
 
virtual Eigen::MatrixXd GetTangentStiffness()=0
Returns the section stiffness matrix. 
 
virtual Eigen::MatrixXd GetInitialTangentStiffness()=0
Returns the section initial stiffness matrix.