Skip to content

Namespace ae108::elements::two_node_corotational_beam

Namespace List > ae108 > elements > two_node_corotational_beam

Namespaces

Type Name
namespace traits

Classes

Type Name
struct AxialStiffnessCoefficients
Holds the coefficients k1 and k2 for the decomposed axial stiffness matrix of the beam.

Public Types

Type Name
typedef typename traits::RotationType< Dimension >::Type Rotation

Public Functions

Type Name
double angular_energy (const TwoNodeCorotationalBeamProperties< double, 2 > & properties, const std::array< double, 2 > & axis, const std::array< double, 2 > & nodal_rotations, const double L, const tensor::Tensor< double, 2, 3 > & u) noexcept
Angular contribution to the energy.
double angular_energy (const TwoNodeCorotationalBeamProperties< double, 3 > & properties, const tensor::Tensor< double, 3 > & axis, const std::array< std::array< double, 3 >, 2 > & nodal_rotations, const double L, const tensor::Tensor< double, 2, 6 > & u) noexcept
double axial_energy_density (const MaterialModel & material_model, const double L, const std::array< double, Dimension > & axis, const Displacement & u, const double time)
Compute the axial energy density along the beam using a material model.
Eigen::Matrix< double, 3, 3 > axial_stiffness (const double k1, const double k2, const Eigen::Vector< double, 3 > & e1)
AxialStiffnessCoefficients axial_stiffness_coefficients (const MaterialModel & material_model, const double L, const std::array< double, Dimension > & axis, const Displacement & u, const double time)
Compute the coefficients k1 and k2 for the decomposed axial stiffness matrix of the beam.
double axial_strain (const tensor::Tensor< double, 2 > & axis, const tensor::Tensor< double, 2, 3 > & u, const double L)
Compute the axial strain of the beam.
double axial_strain (const tensor::Tensor< double, 3 > & axis, const tensor::Tensor< double, 2, 6 > & u, const double L)
Compute the axial strain of the beam.
double axial_stress (const MaterialModel & material_model, const double L, const std::array< double, Dimension > & axis, const Displacement & u, const double time)
Compute the axial stress along the beam using a material model.
std::array< double, 2 > axis (const tensor::Tensor< double, 2, 2 > & nodal_positions)
Vector distance of the 2 nodes.
std::array< double, 3 > axis (const tensor::Tensor< double, 2, 3 > & nodal_positions)
std::array< Eigen::Vector< double, 3 >, 3 > compute_beam_triad (const std::array< double, 3 > & displaced_axis, const Eigen::Matrix< double, 3, 3 > & avg)
Eigen::Matrix< double, 3, 3 > compute_d_e1 (const double L_displaced, const Eigen::Vector< double, 3 > & e1)
1st derivative of the beam axis vector e1.
std::array< Eigen::Matrix< double, 3, 3 >, 4 > compute_d_e23 (const Eigen::Vector< double, 3 > & e1, const so3::Quaternion & a, const so3::Quaternion & b, const Eigen::Matrix< double, 3, 3 > & y_a, const Eigen::Matrix< double, 3, 3 > & y_b, const Eigen::Matrix< double, 3, 3 > & avg)
1st derivative of the beam triad vectors e2, e3 as obtained by compute_beam_triad.
tensor::NDArray< double, 3, 3, 3 > compute_dd_e1 (const Eigen::Vector< double, 3 > & e1, const double L_displaced)
2nd derivative of the beam axis unit vector e1.
tensor::Tensor< tensor::NDArray< double, 3, 3, 3 >, 2, 6 > compute_dd_e23 (const so3::Quaternion & a, const so3::Quaternion & b, const double L_displaced, const Eigen::Vector< double, 3 > & e1, const Eigen::Matrix< double, 3, 3 > & avg, const Eigen::Matrix< double, 3, 3 > & y_a, const Eigen::Matrix< double, 3, 3 > & y_b, const tensor::NDArray< double, 3, 3, 3 > & dy_a, const tensor::NDArray< double, 3, 3, 3 > & dy_b, const tensor::NDArray< double, 3, 3, 3 > & e1_xx)
2nd derivative of the beam triad vectors e2, e3 as obtained by compute_beam_triad.
std::array< Eigen::Matrix< double, 3, 3 >, 3 > compute_dx_e (const double L_displaced, const Eigen::Vector< double, 3 > & e1, const Eigen::Matrix< double, 3, 3 > & avg)
1st spatial derivative of the beam axis unit vector e1.
std::array< double, 2 > compute_flex_angles (const std::array< double, 2 > & axis, const std::array< double, 2 > & nodal_rotations, const tensor::Tensor< double, 2, 3 > & u)
Flex angles.
std::array< double, 6 > compute_local_angles (const Eigen::Matrix< double, 3, 3 > & t, const Eigen::Matrix< double, 3, 3 > & q, const std::array< Eigen::Vector< double, 3 >, 3 > & e)
Eigen::Matrix< double, 2 *(2+1), 2 *(2+1), Eigen::RowMajor > consistent_mass_matrix (const double area, const double density, const double area_moment, const double L) noexcept
Consistent mass matrix.
Eigen::Matrix< double, 6, 6, Eigen::RowMajor > consistent_mass_matrix (const TwoNodeCorotationalBeamProperties< double, 2 > & properties, const double L) noexcept
tensor::Tensor< double, 2, 3 > d_axis (const double dx, const double dy)
Partial derivatives of the angle (dx, dy) by the components of the displacement.
tensor::Tensor< double, 2, 2 > d_axis_angle_spatial (const double dx, const double dy)
Partial derivatives of the angle arctan(dy/dx) of the axis(dx, dy) by the spatial components of the displacement.
tensor::Tensor< double, 2, 2, 3 > d_flex_angles (const double dx, const double dy)
Partial derivatives of flex angles by the components of the displacement.
Eigen::Matrix< double, 12, 6, Eigen::RowMajor > d_sin_local_angles (const Eigen::Matrix< double, 3, 3 > & T, const Eigen::Matrix< double, 3, 3 > & Q, const Eigen::Matrix< double, 3, 3 > & avg, const std::array< Eigen::Vector< double, 3 >, 3 > & E, const std::array< RotationCoordinates, 2 > & displaced_nodal_rotations, const double L_displaced)
Compute the derivatives of sin(l[i]), where l[i] are the components of compute_local_angles().
Eigen::Matrix< double, 6, 6, Eigen::RowMajor > dd_axis (const double dx, const double dy)
2nd partial derivatives of the axis (dx, dy) by the components of the displacement.
Eigen::Matrix< double, 6, 6, Eigen::RowMajor > dd_axis_angle (const double dx, const double dy)
2nd partial derivatives of the angle arctan(dy/dx) of the axis(dx, dy) by the components of the displacement.
Eigen::Matrix< double, 4, 4, Eigen::RowMajor > dd_axis_angle_spatial (const double dx, const double dy)
2nd partial derivatives of the angle arctan(dy/dx) of the axis(dx, dy) by the spatial components of the displacement.
Eigen::Matrix< double, 12, 12 > dd_sin_local_angles (const std::array< double, 6 > & lambda, const Eigen::Matrix< double, 3, 3 > & T, const Eigen::Matrix< double, 3, 3 > & Q, const Eigen::Matrix< double, 3, 3 > & avg, const std::array< Eigen::Vector< double, 3 >, 3 > & E, const std::array< RotationCoordinates, 2 > & displaced_nodal_rotations, const double L_displaced)
Compute the 2nd derivatives of sin(l[i]), where l[i] are the components of compute_local_angles().
tensor::Tensor< double, 2 > delta_u (const tensor::Tensor< double, 2, 3 > & u)
Spatial relative displacement of node b relative to node a.
tensor::Tensor< double, 3 > delta_u (const tensor::Tensor< double, 2, 6 > & u)
Spatial relative displacement of node b relative to node a.
std::array< double, 2 > displaced_axis (const std::array< double, 2 > & axis, const tensor::Tensor< double, 2, 3 > & u)
Displaced vector distance of the 2 nodes.
tensor::Tensor< double, 2, 3 > forces (const TwoNodeCorotationalBeamProperties< double, 2 > & properties, const std::array< double, 2 > & axis, const std::array< double, 2 > & nodal_rotations, const double L, const tensor::Tensor< double, 2, 3 > & u, const double axial_force)
Forces as a function of the material dependent axial force.
tensor::Tensor< double, 2, 6 > forces (const TwoNodeCorotationalBeamProperties< double, 3 > & properties, const tensor::Tensor< double, 3 > & axis, const std::array< std::array< double, 3 >, 2 > & nodal_rotations, const double L, const tensor::Tensor< double, 2, 6 > & u, const double axial_force)
Eigen::Matrix< double, Dimension_ *(Dimension_+1), Dimension_ *(Dimension_+1), Eigen::RowMajor > lumped_mass_matrix (const double area, double density, const double nodal_distance) noexcept
Lumped mass matrix.
Eigen::Matrix< double, 12, 12, Eigen::RowMajor > lumped_mass_matrix (const double area, double density, const double nodal_distance) noexcept
Lumped mass matrix.
Eigen::Matrix< double, 6, 6, Eigen::RowMajor > lumped_mass_matrix< 2 > (const double area, double density, const double nodal_distance) noexcept
Eigen::Matrix< double, 12, 12, Eigen::RowMajor > lumped_mass_matrix< 3 > (const double area, double density, const double nodal_distance) noexcept
Rotation< 2 > rotation_from_axis (const std::array< double, 2 > & a, const std::array< double, 2 > & b)
Return the rotation angle which rotates e_x into(b - a)/|b-a| .
Rotation< 3 > rotation_from_axis (const std::array< double, 3 > & a, const std::array< double, 3 > & b)
Return the rotation vector representing the rotation which rotates e_x into(b - a)/|b-a| around an axis orthogonal toe_x andb-a .
std::array< Rotation< 2 >, 2 > rotations_from_axis (const std::array< double, 2 > & a, const std::array< double, 2 > & b)
Return {rotation_from_axis(a, b), rotation_from_axis(a, b)} as initial rotation angles for both nodes.
std::array< Rotation< 3 >, 2 > rotations_from_axis (const std::array< double, 3 > & a, const std::array< double, 3 > & b)
Return {rotation_from_axis(a, b), rotation_from_axis(a, b)} as initial rotation angles for both nodes.
Eigen::Matrix< double, 6, 6 > stiffness_matrix (const TwoNodeCorotationalBeamProperties< double, 2 > & properties, const std::array< double, 2 > & axis, const std::array< double, 2 > & nodal_rotations, const double L, const double k1, const double k2, const tensor::Tensor< double, 2, 3 > & u)
Stiffness matrix as a function of the material dependent axial force.
Eigen::Matrix< double, 12, 12 > stiffness_matrix (const TwoNodeCorotationalBeamProperties< double, 3 > & properties, const tensor::Tensor< double, 3 > & axis, const std::array< std::array< double, 3 >, 2 > & nodal_rotations, const double L, const double k1, const double axial_force, const tensor::Tensor< double, 2, 6 > & u)

Public Types Documentation

typedef Rotation

using ae108::elements::two_node_corotational_beam::Rotation = typedef typename traits::RotationType<Dimension>::Type;

Public Functions Documentation

function angular_energy

Angular contribution to the energy.

double ae108::elements::two_node_corotational_beam::angular_energy (
    const TwoNodeCorotationalBeamProperties < double, 2 > & properties,
    const std::array< double, 2 > & axis,
    const std::array< double, 2 > & nodal_rotations,
    const double L,
    const tensor::Tensor < double, 2, 3 > & u
) noexcept


function angular_energy

double ae108::elements::two_node_corotational_beam::angular_energy (
    const TwoNodeCorotationalBeamProperties < double, 3 > & properties,
    const tensor::Tensor < double, 3 > & axis,
    const std::array< std::array< double, 3 >, 2 > & nodal_rotations,
    const double L,
    const tensor::Tensor < double, 2, 6 > & u
) noexcept

function axial_energy_density

Compute the axial energy density along the beam using a material model.

template<std::size_t Dimension, class MaterialModel, class Displacement>
double ae108::elements::two_node_corotational_beam::axial_energy_density (
    const MaterialModel & material_model,
    const double L,
    const std::array< double, Dimension > & axis,
    const Displacement & u,
    const double time
) 


function axial_stiffness

Eigen::Matrix< double, 3, 3 > ae108::elements::two_node_corotational_beam::axial_stiffness (
    const double k1,
    const double k2,
    const Eigen::Vector< double, 3 > & e1
) 

function axial_stiffness_coefficients

Compute the coefficients k1 and k2 for the decomposed axial stiffness matrix of the beam.

template<std::size_t Dimension, class MaterialModel, class Displacement>
AxialStiffnessCoefficients ae108::elements::two_node_corotational_beam::axial_stiffness_coefficients (
    const MaterialModel & material_model,
    const double L,
    const std::array< double, Dimension > & axis,
    const Displacement & u,
    const double time
) 

The stiffness matrix for the beam has the form S = A (k1 dl^T dl + k2 J J^T), where A is the area of the beam, dl := d|y_0+y-x_0-x|/du and J = (-id(dim), 0, ..., 0, id(dim), 0, .., 0)^T.

l := |ax(u)| F_ax = A e'(l/L) (dy-dx) ax(u) / l d F_ax / du = A (e''(l/L)/L dl dl^T + e'(l/L) d^2 l) dl = (dy - dx) ax(u) / l d^2 l = (-dl / l^2)^T ((dy - dx) ax(u)) + (dy - dx)(dy - dx)^T/l = -dl dl^T / l + (dy - dx)(dy - dx)^T/l d F_ax / du = A [(e''(l/L)/L - e'(l/L)/l) dl dl^T + e'(l/L)/l J J^T]


function axial_strain

Compute the axial strain of the beam.

double ae108::elements::two_node_corotational_beam::axial_strain (
    const tensor::Tensor < double, 2 > & axis,
    const tensor::Tensor < double, 2, 3 > & u,
    const double L
) 


function axial_strain

Compute the axial strain of the beam.

double ae108::elements::two_node_corotational_beam::axial_strain (
    const tensor::Tensor < double, 3 > & axis,
    const tensor::Tensor < double, 2, 6 > & u,
    const double L
) 


function axial_stress

Compute the axial stress along the beam using a material model.

template<std::size_t Dimension, class MaterialModel, class Displacement>
double ae108::elements::two_node_corotational_beam::axial_stress (
    const MaterialModel & material_model,
    const double L,
    const std::array< double, Dimension > & axis,
    const Displacement & u,
    const double time
) 

See [Crisfield], (27)

Consistent with the derivative of the axial energy:

l := |ax(u)| E_ax = L A e(l/L) ax(u) = y_0 + y - x_0 - x F_ax = A e'(l/L) dl dl = d ax(u)/du ax(u) / l dax(u) = dy - dx F_ax = A e'(l/L) (dy-dx) ax(u) / l Hookean: e(eps) = 1/2 E eps^2 => e'(eps) = E eps


function axis

Vector distance of the 2 nodes.

std::array< double, 2 > ae108::elements::two_node_corotational_beam::axis (
    const tensor::Tensor < double, 2, 2 > & nodal_positions
) 


function axis

std::array< double, 3 > ae108::elements::two_node_corotational_beam::axis (
    const tensor::Tensor < double, 2, 3 > & nodal_positions
) 

function compute_beam_triad

std::array< Eigen::Vector< double, 3 >, 3 > ae108::elements::two_node_corotational_beam::compute_beam_triad (
    const std::array< double, 3 > & displaced_axis,
    const Eigen::Matrix< double, 3, 3 > & avg
) 

function compute_d_e1

1st derivative of the beam axis vector e1.

Eigen::Matrix< double, 3, 3 > ae108::elements::two_node_corotational_beam::compute_d_e1 (
    const double L_displaced,
    const Eigen::Vector< double, 3 > & e1
) 

The derivative is w.r.t y (in |y-x|, y does not generate a "-" sign).


function compute_d_e23

1st derivative of the beam triad vectors e2, e3 as obtained by compute_beam_triad.

std::array< Eigen::Matrix< double, 3, 3 >, 4 > ae108::elements::two_node_corotational_beam::compute_d_e23 (
    const Eigen::Vector< double, 3 > & e1,
    const so3::Quaternion & a,
    const so3::Quaternion & b,
    const Eigen::Matrix< double, 3, 3 > & y_a,
    const Eigen::Matrix< double, 3, 3 > & y_b,
    const Eigen::Matrix< double, 3, 3 > & avg
) 


function compute_dd_e1

2nd derivative of the beam axis unit vector e1.

tensor::NDArray < double, 3, 3, 3 > ae108::elements::two_node_corotational_beam::compute_dd_e1 (
    const Eigen::Vector< double, 3 > & e1,
    const double L_displaced
) 


function compute_dd_e23

2nd derivative of the beam triad vectors e2, e3 as obtained by compute_beam_triad.

tensor::Tensor < tensor::NDArray < double, 3, 3, 3 >, 2, 6 > ae108::elements::two_node_corotational_beam::compute_dd_e23 (
    const so3::Quaternion & a,
    const so3::Quaternion & b,
    const double L_displaced,
    const Eigen::Vector< double, 3 > & e1,
    const Eigen::Matrix< double, 3, 3 > & avg,
    const Eigen::Matrix< double, 3, 3 > & y_a,
    const Eigen::Matrix< double, 3, 3 > & y_b,
    const tensor::NDArray < double, 3, 3, 3 > & dy_a,
    const tensor::NDArray < double, 3, 3, 3 > & dy_b,
    const tensor::NDArray < double, 3, 3, 3 > & e1_xx
) 

Due to symmetry, only 6 out of 4*4=16 are required: * xx (xx = yy = -xy) * xa (ya = -xa) * xb (yb = -xb) * aa * ab * bb (lower diagonal blocks are transpose of corresponding upper diagonal block)


function compute_dx_e

1st spatial derivative of the beam axis unit vector e1.

std::array< Eigen::Matrix< double, 3, 3 >, 3 > ae108::elements::two_node_corotational_beam::compute_dx_e (
    const double L_displaced,
    const Eigen::Vector< double, 3 > & e1,
    const Eigen::Matrix< double, 3, 3 > & avg
) 

The derivative is w.r.t y (in |y-x|, y does not generate a "-" sign).


function compute_flex_angles

Flex angles.

std::array< double, 2 > ae108::elements::two_node_corotational_beam::compute_flex_angles (
    const std::array< double, 2 > & axis,
    const std::array< double, 2 > & nodal_rotations,
    const tensor::Tensor < double, 2, 3 > & u
) 


function compute_local_angles

std::array< double, 6 > ae108::elements::two_node_corotational_beam::compute_local_angles (
    const Eigen::Matrix< double, 3, 3 > & t,
    const Eigen::Matrix< double, 3, 3 > & q,
    const std::array< Eigen::Vector< double, 3 >, 3 > & e
) 

function consistent_mass_matrix

Consistent mass matrix.

Eigen::Matrix< double, 2 *(2+1), 2 *(2+1), Eigen::RowMajor > ae108::elements::two_node_corotational_beam::consistent_mass_matrix (
    const double area,
    const double density,
    const double area_moment,
    const double L
) noexcept

Mass matrix to be used with ElementWithMass.


function consistent_mass_matrix

Eigen::Matrix< double, 6, 6, Eigen::RowMajor > ae108::elements::two_node_corotational_beam::consistent_mass_matrix (
    const TwoNodeCorotationalBeamProperties < double, 2 > & properties,
    const double L
) noexcept

function d_axis

Partial derivatives of the angle (dx, dy) by the components of the displacement.

tensor::Tensor < double, 2, 3 > ae108::elements::two_node_corotational_beam::d_axis (
    const double dx,
    const double dy
) 


function d_axis_angle_spatial

Partial derivatives of the angle arctan(dy/dx) of the axis(dx, dy) by the spatial components of the displacement.

tensor::Tensor < double, 2, 2 > ae108::elements::two_node_corotational_beam::d_axis_angle_spatial (
    const double dx,
    const double dy
) 


function d_flex_angles

Partial derivatives of flex angles by the components of the displacement.

tensor::Tensor < double, 2, 2, 3 > ae108::elements::two_node_corotational_beam::d_flex_angles (
    const double dx,
    const double dy
) 


function d_sin_local_angles

Compute the derivatives of sin(l[i]), where l[i] are the components of compute_local_angles().

Eigen::Matrix< double, 12, 6, Eigen::RowMajor > ae108::elements::two_node_corotational_beam::d_sin_local_angles (
    const Eigen::Matrix< double, 3, 3 > & T,
    const Eigen::Matrix< double, 3, 3 > & Q,
    const Eigen::Matrix< double, 3, 3 > & avg,
    const std::array< Eigen::Vector< double, 3 >, 3 > & E,
    const std::array< RotationCoordinates, 2 > & displaced_nodal_rotations,
    const double L_displaced
) 

Returns:

A matrix containing the derivative of each local angle as columns.


function dd_axis

2nd partial derivatives of the axis (dx, dy) by the components of the displacement.

Eigen::Matrix< double, 6, 6, Eigen::RowMajor > ae108::elements::two_node_corotational_beam::dd_axis (
    const double dx,
    const double dy
) 

The inner dimensions (2, 3) are flattened.


function dd_axis_angle

2nd partial derivatives of the angle arctan(dy/dx) of the axis(dx, dy) by the components of the displacement.

Eigen::Matrix< double, 6, 6, Eigen::RowMajor > ae108::elements::two_node_corotational_beam::dd_axis_angle (
    const double dx,
    const double dy
) 

The inner dimensions (2, 3) are flattened.


function dd_axis_angle_spatial

2nd partial derivatives of the angle arctan(dy/dx) of the axis(dx, dy) by the spatial components of the displacement.

Eigen::Matrix< double, 4, 4, Eigen::RowMajor > ae108::elements::two_node_corotational_beam::dd_axis_angle_spatial (
    const double dx,
    const double dy
) 

The inner dimensions (2, 2) are flattened.


function dd_sin_local_angles

Compute the 2nd derivatives of sin(l[i]), where l[i] are the components of compute_local_angles().

Eigen::Matrix< double, 12, 12 > ae108::elements::two_node_corotational_beam::dd_sin_local_angles (
    const std::array< double, 6 > & lambda,
    const Eigen::Matrix< double, 3, 3 > & T,
    const Eigen::Matrix< double, 3, 3 > & Q,
    const Eigen::Matrix< double, 3, 3 > & avg,
    const std::array< Eigen::Vector< double, 3 >, 3 > & E,
    const std::array< RotationCoordinates, 2 > & displaced_nodal_rotations,
    const double L_displaced
) 

Returns:

A matrix containing the derivative of each local angle as columns.


function delta_u

Spatial relative displacement of node b relative to node a.

tensor::Tensor < double, 2 > ae108::elements::two_node_corotational_beam::delta_u (
    const tensor::Tensor < double, 2, 3 > & u
) 


function delta_u

Spatial relative displacement of node b relative to node a.

tensor::Tensor < double, 3 > ae108::elements::two_node_corotational_beam::delta_u (
    const tensor::Tensor < double, 2, 6 > & u
) 


function displaced_axis

Displaced vector distance of the 2 nodes.

std::array< double, 2 > ae108::elements::two_node_corotational_beam::displaced_axis (
    const std::array< double, 2 > & axis,
    const tensor::Tensor < double, 2, 3 > & u
) 


function forces

Forces as a function of the material dependent axial force.

tensor::Tensor < double, 2, 3 > ae108::elements::two_node_corotational_beam::forces (
    const TwoNodeCorotationalBeamProperties < double, 2 > & properties,
    const std::array< double, 2 > & axis,
    const std::array< double, 2 > & nodal_rotations,
    const double L,
    const tensor::Tensor < double, 2, 3 > & u,
    const double axial_force
) 


function forces

tensor::Tensor < double, 2, 6 > ae108::elements::two_node_corotational_beam::forces (
    const TwoNodeCorotationalBeamProperties < double, 3 > & properties,
    const tensor::Tensor < double, 3 > & axis,
    const std::array< std::array< double, 3 >, 2 > & nodal_rotations,
    const double L,
    const tensor::Tensor < double, 2, 6 > & u,
    const double axial_force
) 

function lumped_mass_matrix

Lumped mass matrix.

template<std::size_t Dimension_>
Eigen::Matrix< double, Dimension_ *(Dimension_+1), Dimension_ *(Dimension_+1), Eigen::RowMajor > ae108::elements::two_node_corotational_beam::lumped_mass_matrix (
    const double area,
    double density,
    const double nodal_distance
) noexcept

Mass matrix to be used with ElementWithMass.


function lumped_mass_matrix

Lumped mass matrix.

Eigen::Matrix< double, 12, 12, Eigen::RowMajor > ae108::elements::two_node_corotational_beam::lumped_mass_matrix (
    const double area,
    double density,
    const double nodal_distance
) noexcept

Mass matrix to be used with ElementWithMass.


function lumped_mass_matrix< 2 >

template<>
Eigen::Matrix< double, 6, 6, Eigen::RowMajor > ae108::elements::two_node_corotational_beam::lumped_mass_matrix< 2 > (
    const double area,
    double density,
    const double nodal_distance
) noexcept

function lumped_mass_matrix< 3 >

template<>
Eigen::Matrix< double, 12, 12, Eigen::RowMajor > ae108::elements::two_node_corotational_beam::lumped_mass_matrix< 3 > (
    const double area,
    double density,
    const double nodal_distance
) noexcept

function rotation_from_axis

Return the rotation angle which rotates e_x into(b - a)/|b-a| .

Rotation< 2 > ae108::elements::two_node_corotational_beam::rotation_from_axis (
    const std::array< double, 2 > & a,
    const std::array< double, 2 > & b
) 


function rotation_from_axis

Return the rotation vector representing the rotation which rotates e_x into(b - a)/|b-a| around an axis orthogonal toe_x andb-a .

Rotation< 3 > ae108::elements::two_node_corotational_beam::rotation_from_axis (
    const std::array< double, 3 > & a,
    const std::array< double, 3 > & b
) 


function rotations_from_axis

Return {rotation_from_axis(a, b), rotation_from_axis(a, b)} as initial rotation angles for both nodes.

std::array< Rotation< 2 >, 2 > ae108::elements::two_node_corotational_beam::rotations_from_axis (
    const std::array< double, 2 > & a,
    const std::array< double, 2 > & b
) 


function rotations_from_axis

Return {rotation_from_axis(a, b), rotation_from_axis(a, b)} as initial rotation angles for both nodes.

std::array< Rotation< 3 >, 2 > ae108::elements::two_node_corotational_beam::rotations_from_axis (
    const std::array< double, 3 > & a,
    const std::array< double, 3 > & b
) 


function stiffness_matrix

Stiffness matrix as a function of the material dependent axial force.

Eigen::Matrix< double, 6, 6 > ae108::elements::two_node_corotational_beam::stiffness_matrix (
    const TwoNodeCorotationalBeamProperties < double, 2 > & properties,
    const std::array< double, 2 > & axis,
    const std::array< double, 2 > & nodal_rotations,
    const double L,
    const double k1,
    const double k2,
    const tensor::Tensor < double, 2, 3 > & u
) 


function stiffness_matrix

Eigen::Matrix< double, 12, 12 > ae108::elements::two_node_corotational_beam::stiffness_matrix (
    const TwoNodeCorotationalBeamProperties < double, 3 > & properties,
    const tensor::Tensor < double, 3 > & axis,
    const std::array< std::array< double, 3 >, 2 > & nodal_rotations,
    const double L,
    const double k1,
    const double axial_force,
    const tensor::Tensor < double, 2, 6 > & u
) 


The documentation for this class was generated from the following file elements/src/include/ae108/elements/TwoNodeCorotationalBeamElement.h