Class for creating a generic fiber section for 3D analysis with linear/nonlinear material for a frame elements.
More...
#include <Fib3DLineSection.hpp>
|
| | Fib3DLineSection (double h, double b, const std::vector< std::unique_ptr< Material > > &fibers, const std::vector< double > &zi, const std::vector< double > &yi, const std::vector< double > &Ai, double k2=1.0, double k3=1.0, double theta=0.0, unsigned int ip=10) |
| | Creates a Section to be specified at a Gauss-point in an Element. More...
|
| |
| | ~Fib3DLineSection () |
| | Destroys this Fib3DLineSection object. More...
|
| |
| std::unique_ptr< Section > | CopySection () |
| | Clone the 'Fib3DLineSection' section. More...
|
| |
| Eigen::VectorXd | GetStrain () |
| | Returns the resultant (generalised) strain vector over the section. More...
|
| |
| Eigen::VectorXd | GetStress () |
| | Returns the resultant (generalised) stress vector over the section. More...
|
| |
| Eigen::MatrixXd | GetDensity () |
| | Access the section density matrix. More...
|
| |
| Eigen::MatrixXd | GetTangentStiffness () |
| | Returns the section stiffness matrix. More...
|
| |
| Eigen::MatrixXd | GetInitialTangentStiffness () |
| | Returns the section initial stiffness matrix. More...
|
| |
| Eigen::VectorXd | GetStrainAt (double x3=0, double x2=0) |
| | Returns the section strain at given position. More...
|
| |
| Eigen::VectorXd | GetStressAt (double x3=0, double x2=0) |
| | Returns the section stress at given position. More...
|
| |
| void | CommitState () |
| | Perform converged section state update. More...
|
| |
| void | ReverseState () |
| | Reverse the section states to previous converged state. More...
|
| |
| void | InitialState () |
| | Brings the section states to its initial state. More...
|
| |
| void | UpdateState (const Eigen::VectorXd strain, const unsigned int cond=0) |
| | Update the section state for this iteration. More...
|
| |
| | 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...
|
| |
| std::string | GetName () |
| | Gets Section name. More...
|
| |
|
| void | ComputeSectionCenter () |
| | Gets the section centroid. More...
|
| |
| unsigned int | FiberIndexAt (double x3=0, double x2=0) |
| | Return the fiber strain closer to (x3, x2) More...
|
| |
| 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...
|
| |
Class for creating a generic fiber section for 3D analysis with linear/nonlinear material for a frame elements.
- See also
- Section.hpp
◆ Fib3DLineSection()
| Fib3DLineSection::Fib3DLineSection |
( |
double |
h, |
|
|
double |
b, |
|
|
const std::vector< std::unique_ptr< Material > > & |
fibers, |
|
|
const std::vector< double > & |
zi, |
|
|
const std::vector< double > & |
yi, |
|
|
const std::vector< double > & |
Ai, |
|
|
double |
k2 = 1.0, |
|
|
double |
k3 = 1.0, |
|
|
double |
theta = 0.0, |
|
|
unsigned int |
ip = 10 |
|
) |
| |
Creates a Section to be specified at a Gauss-point in an Element.
- Parameters
-
| fibers | A vector of fibers for each discretized area. |
| zi | A vector with horizontal coordinate (x3) of each fiber. |
| yi | A vector with vertical coordinate (x2) of each fiber. |
| Ai | A vector with the area values of each fiber. |
| k2 | Shear area factor along the x2-axis. |
| k3 | Shear area factor along the x2-axis. |
| theta | The angle of rotation about x3-axis. |
| ip | The insertion point where the section axes are located. |
- Note
- Details about insertion point and local axis rotation can be found at Insertion Point and Local Axes.
- See also
- Fib3DLineSection::h, Fib3DLineSection::b, Fib3DLineSection::theMaterial, Fib3DLineSection::Theta, Fib3DLineSection::InsertPoint.
◆ ~Fib3DLineSection()
| Fib3DLineSection::~Fib3DLineSection |
( |
| ) |
|
◆ CommitState()
| void Fib3DLineSection::CommitState |
( |
| ) |
|
|
virtual |
Perform converged section state update.
- Note
- This function sets the trail stress and strain as converged.
Implements Section.
◆ ComputeSectionCenter()
| void Fib3DLineSection::ComputeSectionCenter |
( |
| ) |
|
|
protected |
Gets the section centroid.
- See also
- The geometric properties can be revisited at Fib3DLineSection.
◆ CopySection()
| std::unique_ptr<Section> Fib3DLineSection::CopySection |
( |
| ) |
|
|
virtual |
◆ FiberIndexAt()
| unsigned int Fib3DLineSection::FiberIndexAt |
( |
double |
x3 = 0, |
|
|
double |
x2 = 0 |
|
) |
| |
|
protected |
Return the fiber strain closer to (x3, x2)
- Parameters
-
| x3 | Position on the x3-axis where the stress is evaluated. |
| x2 | Position on the x2-axis where the stress is evaluated. |
- Returns
- Index of the fiber closer to coordinate (x3,x2).
◆ GetDensity()
| Eigen::MatrixXd Fib3DLineSection::GetDensity |
( |
| ) |
|
|
virtual |
Access the section density matrix.
- Returns
- The section density matrix.
Implements Section.
◆ GetInitialTangentStiffness()
| Eigen::MatrixXd Fib3DLineSection::GetInitialTangentStiffness |
( |
| ) |
|
|
virtual |
Returns the section initial stiffness matrix.
- Returns
- Matrix with the initial section tangent stiffness matrix.
- Note
- The initial tangent stiffness matrix is computed when the generalized strain vector is zero.
Implements Section.
◆ GetStrain()
| Eigen::VectorXd Fib3DLineSection::GetStrain |
( |
| ) |
|
|
virtual |
Returns the resultant (generalised) strain vector over the section.
- Returns
- Vector with the resultant strain components.
Implements Section.
◆ GetStrainAt()
| Eigen::VectorXd Fib3DLineSection::GetStrainAt |
( |
double |
x3 = 0, |
|
|
double |
x2 = 0 |
|
) |
| |
|
virtual |
Returns the section strain at given position.
- Parameters
-
| x3 | Position on the x3-axis where the strain is evaluated. |
| x2 | Position on the x2-axis where the strain is evaluated. |
- Returns
- Vector with the strain components at coordinate (x3,x2).
Implements Section.
◆ GetStress()
| Eigen::VectorXd Fib3DLineSection::GetStress |
( |
| ) |
|
|
virtual |
Returns the resultant (generalised) stress vector over the section.
- Returns
- Vector with the resultant stress components.
Implements Section.
◆ GetStressAt()
| Eigen::VectorXd Fib3DLineSection::GetStressAt |
( |
double |
x3 = 0, |
|
|
double |
x2 = 0 |
|
) |
| |
|
virtual |
Returns the section stress at given position.
- Parameters
-
| x3 | Position on the x3-axis where the stress is evaluated. |
| x2 | Position on the x2-axis where the stress is evaluated. |
- Returns
- Vector with the stress components at coordinate (x3,x2).
Implements Section.
◆ GetTangentStiffness()
| Eigen::MatrixXd Fib3DLineSection::GetTangentStiffness |
( |
| ) |
|
|
virtual |
Returns the section stiffness matrix.
- Returns
- Matrix with the section consistent tangent stiffness matrix.
Implements Section.
◆ InitialState()
| void Fib3DLineSection::InitialState |
( |
| ) |
|
|
virtual |
Brings the section states to its initial state.
- Note
- This function returns the fiber states to the beginning.
Implements Section.
◆ ReverseState()
| void Fib3DLineSection::ReverseState |
( |
| ) |
|
|
virtual |
Reverse the section states to previous converged state.
- Note
- This function returns the fiber states to previous converged states.
Implements Section.
◆ UpdateState()
| void Fib3DLineSection::UpdateState |
( |
const Eigen::VectorXd |
strain, |
|
|
const unsigned int |
cond = 0 |
|
) |
| |
|
virtual |
Update the section state for this iteration.
- Parameters
-
| strain | Vector with the strain components at this Gauss-point. |
| cond | If the the elastic/plastic fiber components will be updated. |
- Note
- This function computes the strain and tanget stiffness matrix once the trial strain converged.
Implements Section.
◆ Ai
| std::vector<double> Fib3DLineSection::Ai |
|
private |
The discretized area value of each fiber.
| double Fib3DLineSection::b |
|
private |
| double Fib3DLineSection::h |
|
private |
◆ InsertPoint
| unsigned int Fib3DLineSection::InsertPoint |
|
private |
◆ kappa2
| double Fib3DLineSection::kappa2 |
|
private |
Shear area factor (As2/A) along the x2-axis.
◆ kappa3
| double Fib3DLineSection::kappa3 |
|
private |
Shear area factor (As3/A) along the x3-axis.
◆ NumberOfFibers
| unsigned int Fib3DLineSection::NumberOfFibers |
|
private |
◆ Strain
| Eigen::VectorXd Fib3DLineSection::Strain |
|
private |
Generalized Strain vector.
◆ theFiber
| std::vector<std::unique_ptr<Material> > Fib3DLineSection::theFiber |
|
private |
The section's fiber list.
◆ Theta
| double Fib3DLineSection::Theta |
|
private |
◆ ycm
| double Fib3DLineSection::ycm |
|
private |
◆ yi
| std::vector<double> Fib3DLineSection::yi |
|
private |
The vertical (x2) local coordinates of each fiber.
◆ zcm
| double Fib3DLineSection::zcm |
|
private |
◆ zi
| std::vector<double> Fib3DLineSection::zi |
|
private |
The horizontal (x3) local coordinates of each fiber.