32 #ifndef _LIN2DCIRCULAR_HPP_ 33 #define _LIN2DCIRCULAR_HPP_ 37 #include <Eigen/Dense> 59 Lin2DCircular(
double r, std::unique_ptr<Material> &material,
double theta=0.0,
unsigned int ip=10);
94 Eigen::VectorXd
GetStrainAt(
double x3=0,
double x2=0);
100 Eigen::VectorXd
GetStressAt(
double x3=0,
double x2=0);
118 void UpdateState(
const Eigen::VectorXd strain,
const unsigned int cond);
double r
Circle Radius.
Definition: Lin2DCircular.hpp:154
Virtual class for creating a section object.
Definition: Section.hpp:45
std::unique_ptr< Material > theMaterial
The section's material.
Definition: Lin2DCircular.hpp:166
double GetInertiaAxis2()
Computes the Angle flexural inertia.
Lin2DCircular(double r, 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 InitialState()
Brings the section states to its initial state.
void CommitState()
Perform converged section state update.
This file contains the abstract "Material object" declarations, which computes the strain...
This file contains the abstract "Section object" declarations, which computes the strain...
Eigen::MatrixXd GetInitialTangentStiffness()
Returns the section initial stiffness matrix.
void UpdateState(const Eigen::VectorXd strain, const unsigned int cond)
Update the section state for this iteration.
std::unique_ptr< Section > CopySection()
Clone the 'Lin2DCircular' section.
Class for creating a solid circular section for 2D analysis with linear elastic material for a frame ...
Definition: Lin2DCircular.hpp:49
double GetArea()
Computes the Angle area.
Eigen::MatrixXd GetTangentStiffness()
Returns the section stiffness matrix.
Eigen::VectorXd GetStrain()
Returns the resultant (generalised) strain vector over the section.
double GetInertiaAxis3()
Computes the Angle flexural inertia.
void ReverseState()
Reverse the section states to previous converged state.
Eigen::MatrixXd GetDensity()
Access the section density matrix.
Eigen::VectorXd GetStressAt(double x3=0, double x2=0)
Returns the section stress at given position.
double GetShearArea2()
Computes the Angle shear area.
Eigen::VectorXd GetStrainAt(double x3=0, double x2=0)
Returns the section strain at given position.
Eigen::VectorXd Strain
Generalized Strain vector.
Definition: Lin2DCircular.hpp:163
~Lin2DCircular()
Destroys this Lin2DCircular object.
void ComputeSectionCenter(double &zcm, double &ycm)
Gets the section centroid.
double GetShearArea3()
Computes the Angle shear area.
double Theta
Rotation angle.
Definition: Lin2DCircular.hpp:157
unsigned int InsertPoint
Local axis coordinate.
Definition: Lin2DCircular.hpp:160
Eigen::VectorXd GetStress()
Returns the resultant (generalised) stress vector over the section.