Go to the documentation of this file.
16 #ifndef SURGSIM_PHYSICS_FEM1DELEMENTBEAM_H
17 #define SURGSIM_PHYSICS_FEM1DELEMENTBEAM_H
29 SURGSIM_STATIC_REGISTRATION(Fem1DElementBeam);
52 explicit Fem1DElementBeam(std::shared_ptr<FemElementStructs::FemElementParameter> elementData);
109 Eigen::Matrix<double, 12, 1>
m_x0;
112 Eigen::Matrix<double, 12, 12>
m_R0;
148 #endif // SURGSIM_PHYSICS_FEM1DELEMENTBEAM_H
void computeStiffness(const SurgSim::Math::OdeState &state)
Computes the beam's stiffness matrix.
Definition: Fem1DElementBeam.cpp:209
void setShearingEnabled(bool enabled)
Enables or disables shearing for the element.
Definition: Fem1DElementBeam.cpp:79
The state of an ode of 2nd order of the form with boundary conditions.
Definition: OdeState.h:39
double m_G
Physical shear modulus G = E/( 2(1+mu) )
Definition: Fem1DElementBeam.h:120
double m_restLength
Rest length.
Definition: Fem1DElementBeam.h:123
void computeInitialRotation(const SurgSim::Math::OdeState &state)
Computes the beam element's initial rotation.
Definition: Fem1DElementBeam.cpp:291
double getVolume(const SurgSim::Math::OdeState &state) const override
Gets the element volume based on the input state (in m-3)
Definition: Fem1DElementBeam.cpp:84
void computeMass(const SurgSim::Math::OdeState &state)
Computes the beam's mass matrix.
Definition: Fem1DElementBeam.cpp:143
Definition: CompoundShapeToGraphics.cpp:30
double m_shearFactor
Shear factor (usually 5/8)
Definition: Fem1DElementBeam.h:131
Eigen::Matrix< double, 12, 12 > m_KLocal
Stiffness matrix (in local coordinate frame)
Definition: Fem1DElementBeam.h:117
double m_Iy
Cross sectional moment of inertia.
Definition: Fem1DElementBeam.h:139
void setRadius(double radius)
Sets the beam's circular cross-section radius.
Definition: Fem1DElementBeam.cpp:61
Eigen::Matrix< double, 3, 3, Eigen::RowMajor > Matrix33d
A 3x3 matrix of doubles.
Definition: Matrix.h:51
SurgSim::Math::Matrix33d getInitialRotation() const
Definition: Fem1DElementBeam.cpp:138
double m_J
Polar moment of inertia.
Definition: Fem1DElementBeam.h:141
double m_A
Cross sectional area = PI.radius.radius if circular.
Definition: Fem1DElementBeam.h:127
void initializeMembers()
Initializes variables needed before Initialize() is called.
Definition: Fem1DElementBeam.cpp:92
Fem1DElementBeam()
Constructor.
Definition: Fem1DElementBeam.cpp:36
double m_Phi_z
Definition: Fem1DElementBeam.h:137
bool m_haveShear
Does this beam element have shear.
Definition: Fem1DElementBeam.h:129
Eigen::Matrix< double, 12, 12 > m_MLocal
Stiffness matrix (in local coordinate frame)
Definition: Fem1DElementBeam.h:115
void doUpdateFMDK(const Math::OdeState &state, int options) override
Update the FemElement based on the given state.
Definition: Fem1DElementBeam.cpp:334
SurgSim::Math::Vector computeCartesianCoordinate(const SurgSim::Math::OdeState &state, const SurgSim::Math::Vector &naturalCoordinate) const override
Computes a given natural coordinate in cartesian coordinates.
Definition: Fem1DElementBeam.cpp:316
double m_radius
radius for a circular Beam
Definition: Fem1DElementBeam.h:125
Eigen::Matrix< double, Eigen::Dynamic, 1 > Vector
A dynamic size column vector.
Definition: Vector.h:68
Base class for all Fem Element (1D, 2D, 3D) It handles the node ids to which it is connected and requ...
Definition: FemElement.h:46
double getRadius() const
Gets the beam's circular cross-section radius.
Definition: Fem1DElementBeam.cpp:69
double m_Asz
Definition: Fem1DElementBeam.h:133
Eigen::Matrix< double, 12, 1 > m_x0
The element's rest state.
Definition: Fem1DElementBeam.h:109
double m_Phi_y
Shear deformation parameters Phi_y=12.E.Iz/(G.Asy.L^2) or 0 if As?=0 Phi_z=12.E.Iy/(G....
Definition: Fem1DElementBeam.h:137
double m_Asy
The shear area in the y and z directions (=0 => no shear) http://en.wikipedia.org/wiki/Timoshenko_bea...
Definition: Fem1DElementBeam.h:133
bool getShearingEnabled() const
Gets whether shearing is enabled for the element.
Definition: Fem1DElementBeam.cpp:74
double m_Iz
Definition: Fem1DElementBeam.h:139
void initialize(const SurgSim::Math::OdeState &state) override
Initialize the FemElement once everything has been set.
Definition: Fem1DElementBeam.cpp:112
SurgSim::Math::Vector computeNaturalCoordinate(const SurgSim::Math::OdeState &state, const SurgSim::Math::Vector &cartesianCoordinate) const override
Computes a natural coordinate given a global coordinate.
Definition: Fem1DElementBeam.cpp:348
Eigen::Matrix< double, 12, 12 > m_R0
Initial rotation matrix for the element.
Definition: Fem1DElementBeam.h:112
1D FemElement based on a beam volume discretization with a fixed cross section
Definition: Fem1DElementBeam.h:38
#define SURGSIM_CLASSNAME(ClassName)
Declare the class name of a class with the appropriate function header, do not use quotes.
Definition: Macros.h:21