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