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.