32 #ifndef _LIN3DUSERDEFINED_HPP_ 33 #define _LIN3DUSERDEFINED_HPP_ 38 #include <Eigen/Dense> 59 Lin3DUserDefined(std::vector<double> properties, std::unique_ptr<Material> &material,
double theta=0.0);
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 I33
Inertia 3-axis.
Definition: Lin3DUserDefined.hpp:137
void CommitState()
Perform converged section state update.
double A
Area.
Definition: Lin3DUserDefined.hpp:122
double As3
Shear area 3-axis.
Definition: Lin3DUserDefined.hpp:128
void UpdateState(const Eigen::VectorXd strain, const unsigned int cond)
Update the section state for this iteration.
Eigen::MatrixXd GetDensity()
Access the section density matrix.
Class for creating a general solid section for 3D analysis with linear elastic material for a frame e...
Definition: Lin3DUserDefined.hpp:50
Virtual class for creating a section object.
Definition: Section.hpp:45
Eigen::VectorXd Strain
Generalized Strain vector.
Definition: Lin3DUserDefined.hpp:146
void InitialState()
Brings the section states to its initial state.
Eigen::MatrixXd GetTangentStiffness()
Returns the section stiffness matrix.
This file contains the abstract "Material object" declarations, which computes the strain...
double J
Polar Inertia 1-axis.
Definition: Lin3DUserDefined.hpp:131
double As2
Shear area 2-axis.
Definition: Lin3DUserDefined.hpp:125
This file contains the abstract "Section object" declarations, which computes the strain...
~Lin3DUserDefined()
Destroys this Lin3DUserDefined object.
std::unique_ptr< Material > theMaterial
The section's material.
Definition: Lin3DUserDefined.hpp:149
double I23
Product of Inertia.
Definition: Lin3DUserDefined.hpp:140
Eigen::VectorXd GetStress()
Returns the resultant (generalised) stress vector over the section.
Eigen::MatrixXd GetInitialTangentStiffness()
Returns the section initial stiffness matrix.
std::unique_ptr< Section > CopySection()
Clone the 'Lin3DUserDefined' section.
double I22
Inertia 2-axis.
Definition: Lin3DUserDefined.hpp:134
void ReverseState()
Reverse the section states to previous converged state.
Lin3DUserDefined(std::vector< double > properties, std::unique_ptr< Material > &material, double theta=0.0)
Creates a Section to be specified at a Gauss-point in an Element.
double Theta
Rotation angle.
Definition: Lin3DUserDefined.hpp:143
Eigen::VectorXd GetStrainAt(double x3=0, double x2=0)
Returns the section strain at given position.
Eigen::VectorXd GetStrain()
Returns the resultant (generalised) strain vector over the section.
Eigen::VectorXd GetStressAt(double x3=0, double x2=0)
Returns the section stress at given position.