Virtual class for creating a section object. More...
#include <Section.hpp>
Public Member Functions | |
Section (std::string name) | |
Creates a Section to be specified at a Gauss-point in an Element. More... | |
virtual | ~Section ()=0 |
Destroys this Section object. More... | |
virtual std::unique_ptr< Section > | CopySection ()=0 |
Clone the selected Section. More... | |
virtual Eigen::VectorXd | GetStrain ()=0 |
Returns the resultant (generalised) strain vector over the section. More... | |
virtual Eigen::VectorXd | GetStress ()=0 |
Returns the resultant (generalised) stress vector over the section. More... | |
virtual Eigen::MatrixXd | GetDensity ()=0 |
Access the section density matrix. More... | |
virtual Eigen::MatrixXd | GetTangentStiffness ()=0 |
Returns the section stiffness matrix. More... | |
virtual Eigen::MatrixXd | GetInitialTangentStiffness ()=0 |
Returns the section initial stiffness matrix. More... | |
virtual Eigen::VectorXd | GetStrainAt (double x3=0, double x2=0)=0 |
Returns the section strain at given position. More... | |
virtual Eigen::VectorXd | GetStressAt (double x3=0, double x2=0)=0 |
Returns the section stress at given position. More... | |
virtual void | CommitState ()=0 |
Perform converged section state update. More... | |
virtual void | ReverseState ()=0 |
Reverse the section states to previous converged state. More... | |
virtual void | InitialState ()=0 |
Brings the section states to its initial state. More... | |
virtual void | UpdateState (Eigen::VectorXd strain, unsigned int cond=0)=0 |
Update the section state for this iteration. More... | |
std::string | GetName () |
Gets Section name. More... | |
Protected Member Functions | |
Eigen::MatrixXd | GetLineRotationMatrix (double theta) |
Gets Local Axis Rotation for Line Section according to provided angle. More... | |
Eigen::MatrixXd | GetAreaRotationMatrix (double Theta) |
Gets Local Axis Rotation for Area Section according to provided angle. More... | |
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. More... | |
void | InsertionPointCoordinates (double &x3, double &x2, double h, double b, double zc, double yc, unsigned int ip) |
Gets the coordinate according to insertion point. More... | |
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. More... | |
Private Attributes | |
std::string | Name |
Section Name. More... | |
Virtual class for creating a section object.
Section::Section | ( | std::string | name | ) |
Creates a Section to be specified at a Gauss-point in an Element.
name | Name of the derived class. |
|
pure virtual |
Destroys this Section object.
|
pure virtual |
Perform converged section state update.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
protected |
Transforms generalised strain/stresses from Element to Section local coordinate.
h | The total height of the section. |
b | The total width of the section. |
zcm | Position of the section axis along x3-axis. |
ycm | Position of the section axis along x2-axis. |
ip | The insertion point where the section axes are located. |
|
pure virtual |
Clone the selected Section.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
protected |
Gets Local Axis Rotation for Area Section according to provided angle.
theta | The angle of rotation about x3-axis. |
|
pure virtual |
Access the section density matrix.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
pure virtual |
Returns the section initial stiffness matrix.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
protected |
Gets Local Axis Rotation for Line Section according to provided angle.
theta | The angle of rotation about x1-axis. |
|
protected |
Gets centroid translation axis for Line Section according to insertion point.
h | The total height of the section. |
b | The total width of the section. |
zc | Position of the section axis along x3-axis. |
yc | Position of the section axis along x2-axis. |
ip | The insertion point where the section axes are located. |
std::string Section::GetName | ( | ) |
Gets Section name.
|
pure virtual |
Returns the resultant (generalised) strain vector over the section.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
pure virtual |
Returns the section strain at given position.
x3 | Position on the x3-axis where the strain is evaluated. |
x2 | Position on the x2-axis where the strain is evaluated. |
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
pure virtual |
Returns the resultant (generalised) stress vector over the section.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
pure virtual |
Returns the section stress at given position.
x3 | Position on the x3-axis where the stress is evaluated. |
x2 | Position on the x2-axis where the stress is evaluated. |
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
pure virtual |
Returns the section stiffness matrix.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
pure virtual |
Brings the section states to its initial state.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
protected |
Gets the coordinate according to insertion point.
x3 | The coordinate along the 3-axis. |
x2 | The coordinate along the 2-axis. |
h | The total height of the section. |
b | The total width of the section. |
zc | Position of the section axis along x3-axis. |
yc | Position of the section axis along x2-axis. |
ip | The insertion point where the section axes are located. |
|
pure virtual |
Reverse the section states to previous converged state.
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
pure virtual |
Update the section state for this iteration.
strain | Vector with the strain components at this Gauss-point. |
cond | If the the elastic/plastic material components will be updated. |
Implemented in Fib3DLineSection, Lin2DAngle, Lin2DChannel, Lin2DRectangularTube, Lin2DTee, Lin2DWideFlange, Lin3DAngle, Lin3DChannel, Lin3DRectangularTube, Lin3DTee, Lin3DWideFlange, Lin2DRectangular, Lin3DCircularTube, Lin3DRectangular, Lin2DCircular, Lin2DCircularTube, Lin2DUserDefined, Lin3DCircular, Lin3DUserDefined, and Lin3DThinArea.
|
private |
Section Name.