To build element equations for 3-D beam equations using 2-node lines. More...

#include <Beam3DL2.h>

Inheritance diagram for Beam3DL2:
Equa_Solid< 2, 12, 1, 6 > Equation< NEN_, NEE_, NSN_, NSE_ > Equa

Public Member Functions

 Beam3DL2 ()
 Default Constructor.
 
 Beam3DL2 (Mesh &ms, real_t A, real_t I1, real_t I2)
 Constructor using mesh and constant beam properties.
 
 Beam3DL2 (Mesh &ms)
 Constructor using a Mesh instance.
 
 Beam3DL2 (Mesh &ms, Vect< real_t > &u)
 Constructor using a Mesh instance and solution vector.
 
 ~Beam3DL2 ()
 Destructor.
 
void set (real_t A, real_t I1, real_t I2)
 Set constant beam properties.
 
void set (const Vect< real_t > &A, const Vect< real_t > &I1, const Vect< real_t > &I2)
 Set nonconstant beam properties.
 
void getDisp (Vect< real_t > &d)
 Get vector of displacements at nodes.
 
void LMass (real_t coef=1.)
 Add element lumped Mass contribution to element matrix after multiplication by coef
 
void Mass (real_t coef=1.)
 Add element consistent Mass contribution to RHS after multiplication by coef (not implemented)
 
void Stiffness (real_t coef=1.)
 Add element stiffness to element matrix.
 
void Load (const Vect< real_t > &f)
 Add contributions for loads.
 
void setBending ()
 Set bending contribution to stiffness.
 
void setAxial ()
 Set axial contribution to stiffness.
 
void setShear ()
 Set shear contribution to stiffness.
 
void setTorsion ()
 Set torsion contribution to stiffness.
 
void setNoBending ()
 Set no bending contribution.
 
void setNoAxial ()
 Set no axial contribution.
 
void setNoShear ()
 Set no shear contribution.
 
void setNoTorsion ()
 Set no torsion contribution.
 
void setReducedIntegration ()
 Set reduced integration.
 
void AxialForce (Vect< real_t > &f)
 Return axial force in element.
 
void ShearForce (Vect< real_t > &sh)
 Return shear force in element.
 
void BendingMoment (Vect< real_t > &m)
 Return bending moment in element.
 
void TwistingMoment (Vect< real_t > &m)
 Return twisting moments.
 
void build ()
 Build the linear system of equations.
 
void buildEigen (SkSMatrix< real_t > &K, Vect< real_t > &M)
 Build global stiffness and mass matrices for the eigen system.
 
- Public Member Functions inherited from Equa_Solid< 2, 12, 1, 6 >
 Equa_Solid ()
 Default constructor.
 
virtual ~Equa_Solid ()
 Destructor.
 
virtual void Deviator (real_t coef=1)
 Add deviator matrix to left-hand side taking into account time integration scheme, after multiplication by coef [Default: 1].
 
virtual void Dilatation (real_t coef=1)
 Add dilatation matrix to left-hand side taking into account time integration scheme, after multiplication by coef [Default: 1].
 
void setInput (EType opt, Vect< real_t > &u)
 Set specific input data to solid mechanics.
 
- Public Member Functions inherited from Equation< NEN_, NEE_, NSN_, NSE_ >
 Equation ()
 
 Equation (Mesh &mesh)
 Constructor with mesh instance.
 
 Equation (Mesh &mesh, Vect< real_t > &u)
 Constructor with mesh instance and solution vector.
 
 Equation (Mesh &mesh, Vect< real_t > &u, real_t &init_time, real_t &final_time, real_t &time_step)
 Constructor with mesh instance, matrix and right-hand side.
 
 ~Equation ()
 Destructor.
 
void updateBC (const Element &el, const Vect< real_t > &bc)
 Update Right-Hand side by taking into account essential boundary conditions.
 
void DiagBC (DOFSupport dof_type=NODE_DOF, int dof=0)
 Update element matrix to impose bc by diagonalization technique.
 
void LocalNodeVector (Vect< real_t > &b)
 Localize element vector from a Vect instance.
 
void ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEE_ > &be)
 Localize element vector from a Vect instance.
 
void SideNodeVector (const Vect< real_t > &b, LocalVect< real_t, NSE_ > &bs)
 Localize side vector from a Vect instance.
 
void SideSideVector (const Vect< real_t > &b, vector< real_t > &bs)
 Localize side vector from a Vect instance.
 
void ElementNodeVectorSingleDOF (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be)
 Localize Element Vector from a Vect instance.
 
void ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be, int dof)
 Localize Element Vector from a Vect instance.
 
void ElementSideVector (const Vect< real_t > &b, LocalVect< real_t, NSE_ > &be)
 Localize Element Vector from a Vect instance.
 
void ElementVector (const Vect< real_t > &b, DOFSupport dof_type=NODE_DOF, int flag=0)
 Localize element vector.
 
void SideVector (const Vect< real_t > &b, vector< real_t > &sb)
 Localize side vector.
 
void ElementNodeCoordinates ()
 Localize coordinates of element nodes.
 
void SideNodeCoordinates ()
 Localize coordinates of side nodes.
 
void ElementAssembly (Matrix< real_t > *A)
 Assemble element matrix into global one.
 
void ElementAssembly (BMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void ElementAssembly (SkSMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void ElementAssembly (SkMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void ElementAssembly (SpMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void ElementAssembly (TrMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void DGElementAssembly (Matrix< real_t > *A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void DGElementAssembly (SkSMatrix< real_t > &A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void DGElementAssembly (SkMatrix< real_t > &A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void DGElementAssembly (SpMatrix< real_t > &A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void DGElementAssembly (TrMatrix< real_t > &A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void SideAssembly (Matrix< real_t > *A)
 Assemble side (edge or face) matrix into global one.
 
void SideAssembly (SkSMatrix< real_t > &A)
 Assemble side (edge or face) matrix into global one.
 
void SideAssembly (SkMatrix< real_t > &A)
 Assemble side (edge or face) matrix into global one.
 
void SideAssembly (SpMatrix< real_t > &A)
 Assemble side (edge or face) matrix into global one.
 
void ElementAssembly (Vect< real_t > &v)
 Assemble element vector into global one.
 
void SideAssembly (Vect< real_t > &v)
 Assemble side (edge or face) vector into global one.
 
void AxbAssembly (const Element &el, const Vect< real_t > &x, Vect< real_t > &b)
 Assemble product of element matrix by element vector into global vector.
 
void AxbAssembly (const Side &sd, const Vect< real_t > &x, Vect< real_t > &b)
 Assemble product of side matrix by side vector into global vector.
 
size_t getNbNodes () const
 Return number of element nodes.
 
size_t getNbEq () const
 Return number of element equations.
 
real_t setMaterialProperty (const string &exp, const string &prop)
 Define a material property by an algebraic expression.
 
- Public Member Functions inherited from Equa
 Equa ()
 Default constructor.
 
virtual ~Equa ()
 Destructor.
 
void setMesh (Mesh &m)
 Define mesh and renumber DOFs after removing imposed ones.
 
MeshgetMesh () const
 Return reference to Mesh instance.
 
LinearSolvergetLinearSolver ()
 Return reference to linear solver instance.
 
Matrix< real_t > * getMatrix () const
 Return pointer to matrix.
 
void setSolver (Iteration ls, Preconditioner pc=IDENT_PREC)
 Choose solver for the linear system.
 
void setMatrixType (int t)
 Choose type of matrix.
 
int solveLinearSystem (Matrix< real_t > *A, Vect< real_t > &b, Vect< real_t > &x)
 Solve the linear system with given matrix and right-hand side.
 
int solveLinearSystem (Vect< real_t > &b, Vect< real_t > &x)
 Solve the linear system with given right-hand side.
 
void LinearSystemInfo ()
 Print info on linear system solver.
 

Additional Inherited Members

- Protected Member Functions inherited from Equa_Solid< 2, 12, 1, 6 >
void Young (const real_t &E)
 Set (constant) Young modulus.
 
void Young (const string &exp)
 Set Young modulus given by an algebraic expression.
 
void Poisson (const real_t &nu)
 Set (constant) Poisson ratio.
 
void Poisson (const string &exp)
 Set Poisson ratio given by an algebraic expression.
 
void Density (const real_t &rho)
 Set (constant) density.
 
void Density (const string &exp)
 Set density given by an algebraic expression.
 
void setMaterial ()
 Set material properties.
 

Detailed Description

To build element equations for 3-D beam equations using 2-node lines.

This class enables building finite element arrays for 3-D beam elements using 6 degrees of freedom per node and 2-Node line elements.

Constructor & Destructor Documentation

◆ Beam3DL2() [1/3]

Beam3DL2 ( Mesh ms,
real_t  A,
real_t  I1,
real_t  I2 
)

Constructor using mesh and constant beam properties.

Parameters
[in]msMesh instance
[in]ASection area of the beam
[in]I1first (x) momentum of inertia
[in]I2second (y) momentum of inertia

◆ Beam3DL2() [2/3]

Beam3DL2 ( Mesh ms)

Constructor using a Mesh instance.

Parameters
[in]msReference to Mesh instance

◆ Beam3DL2() [3/3]

Beam3DL2 ( Mesh ms,
Vect< real_t > &  u 
)

Constructor using a Mesh instance and solution vector.

Parameters
[in]msReference to Mesh instance
[in,out]uSolution vector

Member Function Documentation

◆ AxialForce()

void AxialForce ( Vect< real_t > &  f)

Return axial force in element.

Parameters
[out]fVector containing axial force in each element. This vector is resized in the function

◆ BendingMoment()

void BendingMoment ( Vect< real_t > &  m)

Return bending moment in element.

Parameters
[out]mVector containing bending moments (2 components) in each element. This vector is resized in the function

◆ buildEigen()

void buildEigen ( SkSMatrix< real_t > &  K,
Vect< real_t > &  M 
)

Build global stiffness and mass matrices for the eigen system.

Case where the mass matrix is lumped

Parameters
[in]KStiffness matrix
[in]MVector containing diagonal mass matrix

◆ getDisp()

void getDisp ( Vect< real_t > &  d)

Get vector of displacements at nodes.

Parameters
[out]dVector containing three components for each node that are x, y and z displacements.

◆ set() [1/2]

void set ( const Vect< real_t > &  A,
const Vect< real_t > &  I1,
const Vect< real_t > &  I2 
)

Set nonconstant beam properties.

Parameters
[in]AVector containing section areas of the beam (for each element)
[in]I1Vector containing first (x) momentum of inertia (for each element)
[in]I2Vector containing second (y) momentum of inertia (for each element)

◆ set() [2/2]

void set ( real_t  A,
real_t  I1,
real_t  I2 
)

Set constant beam properties.

Parameters
[in]ASection area of the beam
[in]I1first (x) momentum of inertia
[in]I2second (y) momentum of inertia

◆ ShearForce()

void ShearForce ( Vect< real_t > &  sh)

Return shear force in element.

Parameters
[out]shVector containing shear forces (2 components) in each element. This vector is resized in the function

◆ TwistingMoment()

void TwistingMoment ( Vect< real_t > &  m)

Return twisting moments.

Parameters
[out]mVector containing twisting moment in each element. This vector is resized in the function