Private API
Math
GXBeam.tilde — Function
tilde(x)Construct the cross product operator matrix
GXBeam.transform_properties — Function
transform_properties(K, T)Applies the transformation T to the stiffness or mass matrix K
GXBeam.rotation_parameter_scaling — Function
rotation_parameter_scaling(θ)Extract a scaling parameter which may be multiplied by the angular parameters to yield the Wiener-Milenkovic rotation parameters. Use of this scaling parameter allows deflections greater than 360 degrees.
GXBeam.get_C — Function
get_C(θ)Returns the transformation matrix C given the three angular parameters in θ.
GXBeam.get_C_θ — Function
get_C_θ([C, ] θ)Calculate the derivative of the Wiener-Milenkovic transformation matrix C with respect to each of the rotation parameters in θ.
GXBeam.get_Q — Function
get_Q(θ)Calculate the matrix Q as defined in the paper "Geometrically nonlinear analysis of composite beams using Wiener-Milenković parameters" by Qi Wang and Wenbin Yu given the rotational parameters in θ.
GXBeam.get_Q_θ — Function
get_Q_θ(θ)
get_Q_θ(Q, θ)Calculate the derivative of the matrix Q with respect to each of the rotation parameters in θ.
GXBeam.get_Qinv — Function
get_Qinv(θ)Calculate the matrix inverse Qinv as defined in the paper "Geometrically nonlinear analysis of composite beams using Wiener-Milenković parameters" by Qi Wang and Wenbin Yu given the rotational parameters in θ.
GXBeam.get_Qinv_θ — Function
get_Qinv_θ(θ)Calculate the derivative of the matrix inverse Qinv with respect to each of the rotation parameters in θ.
GXBeam.get_ΔQ — Function
get_ΔQ(θ, Δθ [, Q])Calculate the matrix ΔQ for structural damping calculations
GXBeam.get_ΔQ_θ — Function
get_ΔQ_θ(θ, Δθ, [Q, Q_θ1, Q_θ2, Q_θ3])Calculate the derivative of the matrix ΔQ with respect to each of the rotation parameters in θ.
GXBeam.mul3 — Function
mul3(A_1, A_2, A_3, b)Return the product of a 3x3x3 tensor represented by A_1, A_2, and A_3 with the vector b.
GXBeam.gauss_quadrature — Function
gauss_quadrature(f, a, b)Default gauss-quadrature function used for integrating distributed loads.
Body Frame
GXBeam.update_body_acceleration_indices! — Function
update_body_acceleration_indices!(system, prescribed_conditions)
update_body_acceleration_indices!(indices, prescribed_conditions)Updates the state variable indices corresponding to the body frame accelerations to correspond to the provided prescribed conditions.
GXBeam.body_accelerations — Function
body_accelerations(system, x=system.x; linear_acceleration=zeros(3), angular_acceleration=zeros(3))Extract the linear and angular acceleration of the body frame from the state vector, if applicable. Otherwise return the provided linear and angular acceleration. This function is applicable only for steady state and initial condition analyses.
Points
GXBeam.point_loads — Function
point_loads(x, ipoint, icol, force_scaling, prescribed_conditions)Extract the loads F and M of point ipoint from the state variable vector or prescribed conditions.
GXBeam.point_load_jacobians — Function
point_load_jacobians(x, ipoint, icol, force_scaling, prescribed_conditions)Calculate the load jacobians F_θ, F_F, M_θ, and M_M of point ipoint.
GXBeam.point_displacement — Function
point_displacement(x, ipoint, icol_point, prescribed_conditions)Extract the displacements u and θ of point ipoint from the state variable vector or prescribed conditions.
GXBeam.point_displacement_jacobians — Function
point_displacement_jacobians(ipoint, prescribed_conditions)Calculate the displacement jacobians u_u and θ_θ of point ipoint.
GXBeam.point_displacement_rates — Function
point_displacement_rates(dx, ipoint, icol, prescribed_conditions)Extract the displacement rates udot and θdot of point ipoint from the rate variable vector.
GXBeam.point_velocity_rates — Function
point_velocity_rates(dx, ipoint, icol_point)Extract the velocity rates Vdot and Ωdot of point ipoint from the rate variable vector.
GXBeam.point_velocities — Function
point_velocities(x, ipoint, icol_point)Extract the velocities V and Ω of point ipoint from the state variable vector
GXBeam.initial_point_displacement — Function
initial_point_displacement(x, ipoint, icol_point, prescribed_conditions,
rate_vars)Extract the displacements u and θ of point ipoint from the state variable vector or prescribed conditions for an initial condition analysis.
GXBeam.initial_point_velocity_rates — Function
initial_point_velocity_rates(x, ipoint, icol_point, prescribed_conditions,
Vdot0, Ωdot0, rate_vars)Extract the velocity rates Vdot and Ωdot of point ipoint from the state variable vector or provided initial conditions. Note that Vdot and Ωdot in this case do not include any contributions resulting from body frame motion.
GXBeam.initial_point_displacement_jacobian — Function
initial_point_displacement_jacobian(ipoint, icol_point, prescribed_conditions,
rate_vars)Extract the displacement jacobians u_u and θ_θ of point ipoint from the state variable vector or prescribed conditions for an initial condition analysis.
GXBeam.initial_point_velocity_rate_jacobian — Function
initial_point_velocity_rate_jacobian(ipoint, icol_point, prescribed_conditions,
rate_vars)Return the velocity rate jacobians Vdot_Vdot and Ωdot_Ωdot of point ipoint. Note that Vdot and Ωdot in this case do not include any contributions resulting from body frame motion.
GXBeam.static_point_properties — Function
static_point_properties(x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity)Calculate/extract the point properties needed to construct the residual for a static analysis
GXBeam.steady_point_properties — Function
steady_point_properties(x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity,
linear_acceleration=(@SVector zeros(3)), angular_acceleration=(@SVector zeros(3)))Calculate/extract the point properties needed to construct the residual for a steady state analysis
GXBeam.initial_point_properties — Function
initial_point_properties(x, indices, rate_vars, force_scaling,
assembly, ipoint, prescribed_conditions, point_masses, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration,
u0, θ0, V0, Ω0, Vdot0, Ωdot0)Calculate/extract the point properties needed to construct the residual for a time domain analysis initialization.
GXBeam.newmark_point_properties — Function
newmark_point_properties(x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity,
udot_init, θdot_init, Vdot_init, Ωdot_init, dt)Calculate/extract the point properties needed to construct the residual for a newmark-scheme time stepping analysis
GXBeam.dynamic_point_properties — Function
dynamic_point_properties(dx, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity)Calculate/extract the point properties needed to construct the residual for a dynamic analysis
GXBeam.expanded_steady_point_properties — Function
expanded_steady_point_properties(x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity,
linear_acceleration=(@SVector zeros(3)), angular_acceleration=(@SVector zeros(3)))Calculate/extract the point properties needed to construct the residual for a constant mass matrix system.
GXBeam.expanded_dynamic_point_properties — Function
expanded_dynamic_point_properties(dx, x, indices, force_scaling, assembly,
ipoint, prescribed_conditions, point_masses, gravity, linear_velocity,
angular_velocity)Calculate/extract the point properties needed to construct the residual for a constant mass matrix system.
GXBeam.point_velocity_residuals — Function
point_velocity_residuals(properties)Calculate the velocity residuals rV and rΩ for a point for a steady state analysis.
GXBeam.expanded_point_velocity_residuals — Function
expanded_point_velocity_residuals(properties)Calculate the velocity residuals rV and rΩ for a point for a constant mass matrix system.
GXBeam.static_point_resultants — Function
static_point_resultants(properties)Calculate the net loads F and M applied at a point for a static analysis.
GXBeam.dynamic_point_resultants — Function
dynamic_point_resultants(properties)Calculate the net loads F and M applied at a point for a steady analysis.
GXBeam.expanded_point_resultants — Function
expanded_point_resultants(properties)Calculate the net loads F and M applied at a point for a constant mass matrix system.
GXBeam.static_point_residual! — Function
static_point_residual!(resid, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity)Calculate and insert the residual entries corresponding to a point for a static analysis into the system residual vector.
GXBeam.steady_point_residual! — Function
steady_point_residual!(resid, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity,
linear_acceleration, angular_acceleration)Calculate and insert the residual entries corresponding to a point for a steady state analysis into the system residual vector.
GXBeam.initial_point_residual! — Function
initial_point_residual!(resid, x, indices, rate_vars,
force_scaling, assembly, ipoint, prescribed_conditions, point_masses, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration,
u0, θ0, V0, Ω0, Vdot0, Ωdot0)Calculate and insert the residual entries corresponding to a point for the initialization of a time domain analysis into the system residual vector.
GXBeam.newmark_point_residual! — Function
newmark_point_residual!(resid, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity,
udot_init, θdot_init, Vdot_init, Ωdot_init, dt)Calculate and insert the residual entries corresponding to a point for a newmark-scheme time marching analysis into the system residual vector.
GXBeam.dynamic_point_residual! — Function
dynamic_point_residual!(resid, dx, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity)Calculate and insert the residual entries corresponding to a point for a dynamic analysis into the system residual vector.
GXBeam.expanded_steady_point_residual! — Function
expanded_steady_point_residual!(resid, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity,
linear_acceleration, angular_acceleration)Calculate and insert the residual entries corresponding to a point into the system residual vector for a constant mass matrix system.
GXBeam.expanded_dynamic_point_residual! — Function
expanded_dynamic_point_residual!(resid, dx, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity)Calculate and insert the residual entries corresponding to a point into the system residual vector for a constant mass matrix system.
GXBeam.static_point_jacobian_properties — Function
static_point_jacobian_properties(properties, x, indices, force_scaling, assembly,
ipoint, prescribed_conditions, point_masses, gravity)Calculate/extract the point properties needed to calculate the jacobian entries corresponding to a point for a static analysis
GXBeam.steady_point_jacobian_properties — Function
steady_point_jacobian_properties(properties, x, indices, force_scaling,
assembly, ipoint, prescribed_conditions, point_masses, gravity,
ub_ub, θb_θb, vb_vb, ωb_ωb, ab_ab, αb_αb)Calculate/extract the point properties needed to calculate the jacobian entries corresponding to a point for a steady state analysis
GXBeam.initial_point_jacobian_properties — Function
initial_point_jacobian_properties(properties, x, indices, rate_vars,
force_scaling, assembly, ipoint, prescribed_conditions, point_masses, gravity,
u0, θ0, V0, Ω0, Vdot0, Ωdot0)Calculate/extract the point properties needed to calculate the jacobian entries corresponding to a point for a Newmark scheme time marching analysis
GXBeam.newmark_point_jacobian_properties — Function
newmark_point_jacobian_properties(properties, x, indices, force_scaling,
assembly, ipoint, prescribed_conditions, point_masses, gravity,
udot_init, θdot_init, Vdot_init, Ωdot_init, dt)Calculate/extract the point properties needed to calculate the jacobian entries corresponding to a point for a Newmark scheme time marching analysis
GXBeam.dynamic_point_jacobian_properties — Function
dynamic_point_jacobian_properties(properties, dx, x, indices, force_scaling,
assembly, ipoint, prescribed_conditions, point_masses, gravity)Calculate/extract the point properties needed to calculate the jacobian entries corresponding to a point for a dynamic analysis
GXBeam.expanded_steady_point_jacobian_properties — Function
expanded_steady_point_jacobian_properties(properties, x, indices, force_scaling,
assembly, ipoint, prescribed_conditions, point_masses, gravity)Calculate/extract the point properties needed to calculate the jacobian entries corresponding to a point for a constant mass matrix system
GXBeam.expanded_dynamic_point_jacobian_properties — Function
expanded_dynamic_point_jacobian_properties(properties, dx, x, indices, force_scaling,
assembly, ipoint, prescribed_conditions, point_masses, gravity)Calculate/extract the point properties needed to calculate the jacobian entries corresponding to a point for a constant mass matrix system
GXBeam.mass_matrix_point_jacobian_properties — Function
mass_matrix_point_jacobian_properties(x, indices, force_scaling,
assembly, ipoint, prescribed_conditions, point_masses)Calculate/extract the point properties needed to calculate the mass matrix jacobian entries corresponding to a point
GXBeam.expanded_mass_matrix_point_jacobian_properties — Function
expanded_mass_matrix_point_jacobian_properties(assembly, ipoint, prescribed_conditions, point_masses)Calculate/extract the point properties needed to calculate the mass matrix jacobian entries corresponding to a point for a constant mass matrix system
GXBeam.static_point_resultant_jacobians — Function
static_point_resultant_jacobians(properties)Calculate the jacobians for the net loads F and M applied at a point for a static analysis.
GXBeam.steady_point_resultant_jacobians — Function
steady_point_resultant_jacobians(properties)Calculate the jacobians for the net loads F and M applied at a point for a steady state analysis.
GXBeam.initial_point_resultant_jacobians — Function
initial_point_resultant_jacobians(properties)Calculate the jacobians for the net loads F and M applied at a point for the initialization of a time domain analysis.
GXBeam.dynamic_point_resultant_jacobians — Function
dynamic_point_resultant_jacobians(properties)Calculate the jacobians for the net loads F and M applied at a point for a dynamic analysis.
GXBeam.expanded_steady_point_resultant_jacobians — Function
expanded_steady_point_resultant_jacobians(properties)Calculate the jacobians for the net loads F and M applied at a point for a constant mass matrix system
GXBeam.expanded_dynamic_point_resultant_jacobians — Function
expanded_dynamic_point_resultant_jacobians(properties)Calculate the jacobians for the net loads F and M applied at a point for a constant mass matrix system
GXBeam.mass_matrix_point_resultant_jacobians — Function
mass_matrix_point_resultant_jacobians(properties)Calculate the mass matrix jacobians for the net loads F and M applied at a point
GXBeam.point_velocity_jacobians — Function
point_velocity_jacobians(ipoint)Calculate the velocity jacobians V_V and Ω_Ω of point ipoint.
GXBeam.initial_point_velocity_jacobians — Function
initial_point_velocity_jacobians(properties)Calculate the jacobians of the velocity residuals rV and rΩ of a point for the initialization of a time domain analysis.
GXBeam.newmark_point_velocity_jacobians — Function
newmark_point_velocity_jacobians(properties)Calculate the jacobians of the velocity residuals rV and rΩ of a point for a Newmark scheme time-marching analysis.
GXBeam.dynamic_point_velocity_jacobians — Function
dynamic_point_velocity_jacobians(properties)Calculate the jacobians of the velocity residuals rV and rΩ of a point for a dynamic state analysis.
GXBeam.expanded_point_velocity_jacobians — Function
expanded_point_velocity_jacobians(properties)Calculate the jacobians of the velocity residuals rV and rΩ of a point for a constant mass matrix system
GXBeam.mass_matrix_point_velocity_jacobians — Function
mass_matrix_point_velocity_jacobians(properties)Calculate the mass matrix jacobians of the velocity residuals rV and rΩ of a point
GXBeam.insert_static_point_jacobians! — Function
insert_static_point_jacobians!(jacob, indices, force_scaling, ipoint, properties,
resultants)Insert the jacobian entries corresponding to a point for a static analysis into the system jacobian matrix.
GXBeam.insert_steady_point_jacobians! — Function
insert_steady_point_jacobians!(jacob, indices, force_scaling, ipoint,
properties, resultants, velocities)Insert the jacobian entries corresponding to a point for a steady state analysis into the system jacobian matrix.
GXBeam.insert_initial_point_jacobians! — Function
insert_initial_point_jacobians!(jacob, indices, force_scaling, ipoint, properties,
resultants, velocities)Insert the jacobian entries corresponding to a point for the initialization of a time domain analysis into the system jacobian matrix.
GXBeam.insert_dynamic_point_jacobians! — Function
insert_dynamic_point_jacobians!(jacob, indices, force_scaling, ipoint,
properties, resultants, velocities)Insert the jacobian entries corresponding to a point for a steady state analysis into the system jacobian matrix.
GXBeam.insert_expanded_steady_point_jacobians! — Function
insert_expanded_steady_point_jacobians!(jacob, indices, force_scaling, ipoint, properties,
resultants, velocities)Insert the jacobian entries corresponding to a point for a constant mass matrix system into the system jacobian matrix for a constant mass matrix system.
GXBeam.insert_expanded_dynamic_point_jacobians! — Function
insert_expanded_dynamic_point_jacobians!(jacob, indices, force_scaling, ipoint, properties,
resultants, velocities)Insert the jacobian entries corresponding to a point for a constant mass matrix system into the system jacobian matrix for a constant mass matrix system.
GXBeam.insert_mass_matrix_point_jacobians! — Function
insert_mass_matrix_point_jacobians!(jacob, gamma, indices, two_dimensional, force_scaling, ipoint,
properties, resultants, velocities)Insert the mass matrix jacobian entries corresponding to a point into the system jacobian matrix.
GXBeam.insert_expanded_mass_matrix_point_jacobians! — Function
insert_expanded_mass_matrix_point_jacobians!(jacob, gamma, indices, two_dimensional, force_scaling, ipoint,
properties, resultants, velocities)Insert the mass matrix jacobian entries corresponding to a point into the system jacobian matrix.
GXBeam.static_point_jacobian! — Function
static_point_jacobian!(jacob, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity)Calculate and insert the jacobian entries corresponding to a point for a static analysis into the system jacobian matrix.
GXBeam.steady_point_jacobian! — Function
steady_point_jacobian!(jacob, x, indices, force_scaling, assembly,
ipoint, prescribed_conditions, point_masses, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration)Calculate and insert the jacobian entries corresponding to a point for a steady state analysis into the system jacobian matrix.
GXBeam.initial_point_jacobian! — Function
initial_point_jacobian!(jacob, x, indices, rate_vars,
force_scaling, assembly, ipoint, prescribed_conditions, point_masses, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration,
u0, θ0, V0, Ω0, Vdot0, Ωdot0)Calculate and insert the jacobian entries corresponding to a point for the initialization of a time domain analysis into the system jacobian matrix.
GXBeam.newmark_point_jacobian! — Function
newmark_point_jacobian!(jacob, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity,
udot_init, θdot_init, Vdot_init, Ωdot_init, dt))Calculate and insert the jacobian entries corresponding to a point for a Newmark scheme time marching analysis into the system jacobian matrix.
GXBeam.dynamic_point_jacobian! — Function
dynamic_point_jacobian!(jacob, dx, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity)Calculate and insert the jacobian entries corresponding to a point for a dynamic analysis into the system jacobian matrix.
GXBeam.expanded_steady_point_jacobian! — Function
expanded_steady_point_jacobian!(jacob, x, indices, force_scaling,
assembly, ipoint, prescribed_conditions, point_masses, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration)Calculate and insert the jacobian entries corresponding to a point for a constant mass matrix system into the system jacobian matrix.
GXBeam.expanded_dynamic_point_jacobian! — Function
expanded_dynamic_point_jacobian!(jacob, dx, x, indices, force_scaling, assembly, ipoint,
prescribed_conditions, point_masses, gravity, linear_velocity, angular_velocity)Calculate and insert the jacobian entries corresponding to a point for a constant mass matrix system into the system jacobian matrix.
GXBeam.mass_matrix_point_jacobian! — Function
mass_matrix_point_jacobian!(jacob, gamma, x, indices, two_dimensional, force_scaling, assembly,
ipoint, prescribed_conditions)Calculate and insert the mass_matrix jacobian entries corresponding to a point into the system jacobian matrix.
GXBeam.expanded_mass_matrix_point_jacobian! — Function
expanded_mass_matrix_point_jacobian!(jacob, gamma, indices, two_dimensional, force_scaling, assembly,
ipoint, prescribed_conditions, point_masses)Calculate and insert the mass_matrix jacobian entries corresponding to a point into the system jacobian matrix for a constant mass matrix system
Elements
GXBeam.Element — Type
Element{TF}Composite type that defines a beam element's properties
Fields
L: Beam element lengthx: Beam element locationcompliance: Beam element compliance matrixmass: Beam element mass matrixCab: Transformation matrix from the undeformed beam element frame to the body framemu: Beam element damping coefficients
GXBeam.element_loads — Function
element_loads(x, ielem, icol_elem, force_scaling)Extract the internal loads (F, M) for a beam element from the state variable vector. These loads are expressed in the deformed element frame.
GXBeam.expanded_element_loads — Function
expanded_element_loads(x, ielem, icol_elem, force_scaling)Extract the internal loads of a beam element at its endpoints (F1, M1, F2, M2) from the state variable vector for a constant mass matrix system.
GXBeam.expanded_element_velocities — Function
expanded_element_velocities(x, ielem, icol_elem)Extract the velocities of a beam element from the state variable vector for a constant mass matrix system.
GXBeam.static_element_properties — Function
static_element_properties(x, indices, force_scaling, assembly, ielem,
prescribed_conditions, gravity)Calculate/extract the element properties needed to construct the residual for a static analysis
GXBeam.steady_element_properties — Function
steady_element_properties(x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, gravity, linear_velocity, angular_velocity,
linear_acceleration=(@SVector zeros(3)), angular_acceleration=(@SVector zeros(3)))Calculate/extract the element properties needed to construct the residual for a steady state analysis
GXBeam.initial_element_properties — Function
initial_element_properties(x, indices, rate_vars, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration, u0, θ0, V0, Ω0, Vdot0, Ωdot0)Calculate/extract the element properties needed to construct the residual for a time-domain analysis initialization
GXBeam.newmark_element_properties — Function
newmark_element_properties(x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, gravity, linear_velocity, angular_velocity,
Vdot_init, Ωdot_init, dt)Calculate/extract the element properties needed to construct the residual for a newmark- scheme time stepping analysis
GXBeam.dynamic_element_properties — Function
dynamic_element_properties(dx, x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, gravity, linear_velocity, angular_velocity)Calculate/extract the element properties needed to construct the residual for a dynamic analysis
GXBeam.expanded_steady_element_properties — Function
expanded_steady_element_properties(x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, gravity, linear_velocity, angular_velocity,
linear_acceleration=(@SVector zeros(3)), angular_acceleration=(@SVector zeros(3)))Calculate/extract the element properties needed to construct the residual for a constant mass matrix system
GXBeam.expanded_dynamic_element_properties — Function
expanded_dynamic_element_properties(dx, x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, gravity, linear_velocity, angular_velocity)Calculate/extract the element properties needed to construct the residual for a constant mass matrix system
GXBeam.compatibility_residuals — Function
compatibility_residuals(properties)Calculate the compatibility residuals for the beam element
GXBeam.expanded_element_velocity_residuals — Function
expanded_element_velocity_residuals(properties)Calculate the velocity residuals rV and rΩ of a beam element for a constant mass matrix system.
GXBeam.expanded_element_equilibrium_residuals — Function
expanded_element_equilibrium_residuals(properties, distributed_loads, ielem)Calculate the equilibrium residuals of a beam element for a constant mass matrix system.
GXBeam.static_element_resultants — Function
static_element_resultants(properties, distributed_loads, ielem)Calculate the resultant loads applied at each end of a beam element for a static analysis.
GXBeam.dynamic_element_resultants — Function
dynamic_element_resultants(properties, distributed_loads, ielem)Calculate the resultant loads applied at each end of a beam element for a steady state analysis.
GXBeam.expanded_element_resultants — Function
expanded_element_resultants(properties)Calculate the resultant loads applied at each end of a beam element for a constant mass matrix system.
GXBeam.insert_element_residuals! — Function
insert_element_residuals!(resid, indices, force_scaling, assembly, ielem,
compatibility, resultants)Insert the residual entries corresponding to a beam element into the system residual vector.
GXBeam.insert_expanded_element_residuals! — Function
insert_expanded_element_residuals!(resid, indices, force_scaling, assembly, ielem,
compatibility, velocities, equilibrium, resultants)Insert the residual entries corresponding to a beam element into the system residual vector for a constant mass matrix system.
GXBeam.static_element_residual! — Function
static_element_residual!(resid, x, indices, force_scaling, assembly, ielem,
prescribed_conditions, distributed_loads, gravity)Calculate and insert the residual entries corresponding to a beam element for a static analysis into the system residual vector.
GXBeam.steady_element_residual! — Function
steady_element_residual!(resid, x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, distributed_loads, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration)Calculate and insert the residual entries corresponding to a beam element for a steady state analysis into the system residual vector.
GXBeam.initial_element_residual! — Function
initial_element_residual!(resid, x, indices, rate_vars,
force_scaling, structural_damping, assembly, ielem, prescribed_conditions,
distributed_loads, gravity, linear_velocity, angular_velocity,
linear_acceleration, angular_acceleration, u0, θ0, V0, Ω0, Vdot0, Ωdot0)Calculate and insert the residual entries corresponding to a beam element for the initialization of a time domain simulation into the system residual vector.
GXBeam.newmark_element_residual! — Function
newmark_element_residual!(resid, x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, distributed_loads, gravity,
linear_velocity, angular_velocity, Vdot_init, Ωdot_init, dt)Calculate and insert the residual entries corresponding to a beam element for a newmark-scheme time marching analysis into the system residual vector.
GXBeam.dynamic_element_residual! — Function
dynamic_element_residual!(resid, dx, x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, distributed_loads, gravity,
linear_velocity, angular_velocity)Calculate and insert the residual entries corresponding to a beam element for a dynamic analysis into the system residual vector.
GXBeam.expanded_steady_element_residual! — Function
expanded_steady_element_residual!(resid, x, indices, force_scaling, structural_damping,
assembly, ielem, prescribed_conditions, distributed_loads, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration)Calculate and insert the residual entries corresponding to a beam element for a constant mass matrix system into the system residual vector.
GXBeam.expanded_dynamic_element_residual! — Function
expanded_dynamic_element_residual!(resid, dx, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, distributed_loads,
gravity, linear_velocity, angular_velocity)Calculate and insert the residual entries corresponding to a beam element for a constant mass matrix system into the system residual vector.
GXBeam.static_element_jacobian_properties — Function
static_element_jacobian_properties(properties, x, indices, force_scaling,
assembly, ielem, prescribed_conditions, gravity)Calculate/extract the element properties needed to calculate the jacobian entries corresponding to a beam element for a static analysis
GXBeam.steady_element_jacobian_properties — Function
steady_element_jacobian_properties(properties, x, indices,
force_scaling, structural_damping, assembly, ielem, prescribed_conditions,
gravity)Calculate/extract the element properties needed to calculate the jacobian entries corresponding to a element for a steady state analysis
GXBeam.initial_element_jacobian_properties — Function
initial_element_jacobian_properties(properties, x, indices, rate_vars,
force_scaling, structural_damping, assembly, ielem, prescribed_conditions, gravity,
u0, θ0, V0, Ω0, Vdot0, Ωdot0)Calculate/extract the element properties needed to calculate the jacobian entries corresponding to a element for a Newmark scheme time marching analysis
GXBeam.newmark_element_jacobian_properties — Function
newmark_element_jacobian_properties(properties, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, gravity,
Vdot_init, Ωdot_init, dt)Calculate/extract the element properties needed to calculate the jacobian entries corresponding to a element for a Newmark scheme time marching analysis
GXBeam.dynamic_element_jacobian_properties — Function
dynamic_element_jacobian_properties(properties, dx, x, indices,
force_scaling, assembly, ielem, prescribed_conditions, gravity)Calculate/extract the element properties needed to calculate the jacobian entries corresponding to a element for a dynamic analysis
GXBeam.expanded_steady_element_jacobian_properties — Function
expanded_element_jacobian_properties(properties, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, gravity)Calculate/extract the element properties needed to calculate the jacobian entries corresponding to a element for a steady state analysis
GXBeam.expanded_dynamic_element_jacobian_properties — Function
expanded_dynamic_element_jacobian_properties(properties, dx, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, gravity)Calculate/extract the element properties needed to calculate the jacobian entries corresponding to a element for a dynamic analysis
GXBeam.mass_matrix_element_jacobian_properties — Function
mass_matrix_element_jacobian_properties(x, indices, force_scaling,
assembly, ielem, prescribed_conditions)Calculate/extract the element properties needed to calculate the mass matrix jacobian entries corresponding to a beam element
GXBeam.expanded_mass_matrix_element_jacobian_properties — Function
expanded_mass_matrix_element_jacobian_properties(assembly, ielem, prescribed_conditions)Calculate/extract the element properties needed to calculate the mass matrix jacobian entries corresponding to a beam element for a constant mass matrix system
GXBeam.expanded_element_velocity_jacobians — Function
expanded_element_velocity_jacobians(properties)Calculate the jacobians of the element velocity residuals for a constant mass matrix system.
GXBeam.expanded_steady_element_equilibrium_jacobians — Function
expanded_steady_element_equilibrium_jacobians(properties)Calculate the jacobians of the element equilibrium residuals for a constant mass matrix system.
GXBeam.expanded_dynamic_element_equilibrium_jacobians — Function
expanded_dynamic_element_equilibrium_jacobians(properties)Calculate the jacobians of the element equilibrium residuals for a constant mass matrix system.
GXBeam.expanded_mass_matrix_element_equilibrium_jacobians — Function
expanded_mass_matrix_element_equilibrium_jacobians(properties)Calculate the mass matrix jacobians for the resultant loads applied at each end of a beam element for a constant mass matrix system
GXBeam.static_element_resultant_jacobians — Function
static_element_resultant_jacobians(properties, distributed_loads, ielem)Calculate the jacobians for the resultant loads applied at each end of a beam element for a static analysis.
GXBeam.steady_element_resultant_jacobians — Function
steady_element_resultant_jacobians(properties, distributed_loads, ielem)Calculate the jacobians for the resultant loads applied at each end of a beam element for a steady state analysis.
GXBeam.initial_element_resultant_jacobians — Function
initial_element_resultant_jacobians(properties, distributed_loads, ielem)Calculate the jacobians for the resultant loads applied at each end of V beam element for the initialization of a time domain analysis.
GXBeam.dynamic_element_resultant_jacobians — Function
dynamic_element_resultant_jacobians(properties, distributed_loads, ielem)Calculate the jacobians for the resultant loads applied at each end of a beam element for a dynamic analysis.
GXBeam.expanded_element_resultant_jacobians — Function
expanded_element_resultant_jacobians(properties)Calculate the jacobians for the resultant loads applied at each end of a beam element for a constant mass matrix system.
GXBeam.mass_matrix_element_resultant_jacobians — Function
mass_matrix_element_resultant_jacobians(properties)Calculate the mass matrix jacobians for the resultant loads applied at each end of a beam element
GXBeam.static_element_jacobian! — Function
static_element_jacobian!(jacob, x, indices, force_scaling,
assembly, ielem, prescribed_conditions, distributed_loads, gravity)Calculate and insert the jacobian entries corresponding to a beam element for a static analysis into the system jacobian matrix.
GXBeam.steady_element_jacobian! — Function
steady_element_jacobian!(jacob, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, distributed_loads,
gravity, linear_velocity, angular_velocity, linear_acceleration, angular_acceleration)Calculate and insert the jacobian entries corresponding to a beam element for a steady state analysis into the system jacobian matrix.
GXBeam.initial_element_jacobian! — Function
initial_element_jacobian!(jacob, x, indices, rate_vars, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, distributed_loads,
gravity, ub, θb, vb, ωb, ab, αb, u0, θ0, V0, Ω0, Vdot0, Ωdot0)Calculate and insert the jacobian entries corresponding to a beam element for the initialization of a time domain analysis into the system jacobian matrix.
GXBeam.newmark_element_jacobian! — Function
newmark_element_jacobian!(jacob, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, distributed_loads,
gravity, linear_velocity, angular_velocity, Vdot_init, Ωdot_init, dt)Calculate and insert the jacobian entries corresponding to a beam element for a Newmark-scheme time marching analysis into the system jacobian matrix.
GXBeam.dynamic_element_jacobian! — Function
dynamic_element_jacobian!(jacob, dx, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, distributed_loads,
gravity, linear_velocity, angular_velocity)Calculate and insert the jacobian entries corresponding to a beam element for a dynamic analysis into the system jacobian matrix.
GXBeam.expanded_steady_element_jacobian! — Function
expanded_steady_element_jacobian!(jacob, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, distributed_loads,
gravity, linear_velocity, angular_velocity, linear_acceleration,
angular_acceleration)Calculate and insert the jacobian entries corresponding to a beam element for a dynamic analysis into the system jacobian matrix.
GXBeam.expanded_dynamic_element_jacobian! — Function
expanded_dynamic_element_jacobian!(jacob, dx, x, indices, force_scaling,
structural_damping, assembly, ielem, prescribed_conditions, distributed_loads,
gravity, linear_velocity, angular_velocity)Calculate and insert the jacobian entries corresponding to a beam element for a dynamic analysis into the system jacobian matrix.
GXBeam.mass_matrix_element_jacobian! — Function
mass_matrix_element_jacobian!(jacob, gamma, x, indices, two_dimensional, force_scaling, assembly,
ielem, prescribed_conditions)Calculate and insert the mass_matrix jacobian entries corresponding to a beam element into the system jacobian matrix.
GXBeam.expanded_mass_matrix_element_jacobian! — Function
expanded_mass_matrix_element_jacobian!(jacob, gamma, indices, two_dimensional, force_scaling, assembly,
ielem, prescribed_conditions)Calculate and insert the mass_matrix jacobian entries corresponding to a beam element into the system jacobian matrix for a constant mass matrix system
System
GXBeam.SystemIndices — Type
SystemIndicesStructure for holding indices for accessing the state variables and equations associated with each point and beam element in a system.
GXBeam.default_force_scaling — Function
default_force_scaling(assembly)Defines a suitable default force scaling factor based on the nonzero elements of the compliance matrices in assembly.
GXBeam.curve_triad — Function
curve_triad(Cab, k, s)
curve_triad(Cab, kkt, ktilde, kn, s)Return the transformation matrix at s along the length of the beam given the curvature vector k and the initial transformation matrix Cab.
GXBeam.curve_coordinates — Function
curve_coordiantes(r, Cab, k, s)
curve_coordinates(r, Cab, kkt, ktilde, kn, s)Return the coordinates at s along the length of the beam given the starting point r, initial transformation matrix Cab, and curvature vector k.
GXBeam.set_initial_state! — Function
set_initial_state!([x=system.x,] system, rate_vars, assembly, state; kwargs...)Set the state variables in x for an initial condition analysis to the values in state
GXBeam.two_dimensional_residual! — Function
two_dimensional_residual!(resid, x)Modify the residual to constrain the results of an analysis to the x-y plane.
GXBeam.static_system_residual! — Function
static_system_residual!(resid, x, indices, two_dimensional, force_scaling,
assembly, prescribed_conditions, distributed_loads, point_masses, gravity)Populate the system residual vector resid for a static analysis
GXBeam.initial_system_residual! — Function
initial_system_residual!(resid, x, indices, rate_vars1, rate_vars2,
two_dimensional, force_scaling, structural_damping, assembly, prescribed_conditions,
distributed_loads, point_masses, gravity, linear_velocity, angular_velocity,
linear_acceleration, angular_acceleration, u0, θ0, V0, Ω0, Vdot0, Ωdot0)Populate the system residual vector resid for the initialization of a time domain simulation.
GXBeam.steady_system_residual! — Function
steady_system_residual!(resid, x, indices, two_dimensional, force_scaling,
structural_damping, assembly, prescribed_conditions, distributed_loads,
point_masses, gravity, vb, ωb, ab, αb)Populate the system residual vector resid for a steady state analysis
GXBeam.newmark_system_residual! — Function
newmark_system_residual!(resid, x, indices, two_dimensional, force_scaling, structural_damping,
assembly, prescribed_conditions, distributed_loads, point_masses, gravity,
linear_velocity, angular_velocity, udot_init, θdot_init, Vdot_init, Ωdot_init, dt)Populate the system residual vector resid for a Newmark scheme time marching analysis.
GXBeam.dynamic_system_residual! — Function
dynamic_system_residual!(resid, dx, x, indices, two_dimensional, force_scaling,
structural_damping, assembly, prescribed_conditions, distributed_loads,
point_masses, gravity, linear_velocity, angular_velocity)Populate the system residual vector resid for a general dynamic analysis.
GXBeam.expanded_steady_system_residual! — Function
expanded_steady_system_residual!(resid, x, indices, two_dimensional, force_scaling, structural_damping,
assembly, prescribed_conditions, distributed_loads, point_masses, gravity,
linear_velocity, angular_velocity, linear_acceleration, angular_acceleration)Populate the system residual vector resid for a constant mass matrix system.
GXBeam.expanded_dynamic_system_residual! — Function
expanded_dynamic_system_residual!(resid, dx, x, indices, two_dimensional, force_scaling,
structural_damping, assembly, prescribed_conditions, distributed_loads,
point_masses, gravity, linear_velocity, angular_velocity)Populate the system residual vector resid for a constant mass matrix system.
GXBeam.two_dimensional_jacobian! — Function
two_dimensional_jacobian!(jacob, x)Modify the jacobian to constrain the results of an analysis to the x-y plane.
GXBeam.static_system_jacobian! — Function
static_system_jacobian!(jacob, x, indices, two_dimensional, force_scaling,
assembly, prescribed_conditions, distributed_loads, point_masses, gravity)Populate the system jacobian matrix jacob for a static analysis
GXBeam.steady_system_jacobian! — Function
steady_system_jacobian!(jacob, x, indices, two_dimensional, force_scaling,
structural_damping, assembly, prescribed_conditions, distributed_loads,
point_masses, gravity, linear_velocity, angular_velocity, linear_acceleration,
angular_acceleration)Populate the system jacobian matrix jacob for a steady-state analysis
GXBeam.initial_system_jacobian! — Function
initial_system_jacobian!(jacob, x, indices, rate_vars1, rate_vars2, two_dimensional, force_scaling,
structural_damping, assembly, prescribed_conditions, distributed_loads,
point_masses, gravity, linear_velocity, angular_velocity, linear_acceleration,
angular_acceleration, u0, θ0, V0, Ω0, Vdot0, Ωdot0)Populate the system jacobian matrix jacob for the initialization of a time domain simulation.
GXBeam.newmark_system_jacobian! — Function
newmark_system_jacobian!(jacob, x, indices, two_dimensional, force_scaling, structural_damping,
assembly, prescribed_conditions, distributed_loads, point_masses, gravity,
linear_velocity, angular_velocity, udot_init, θdot_init, Vdot_init, Ωdot_init, dt)Populate the system jacobian matrix jacob for a Newmark scheme time marching analysis.
GXBeam.dynamic_system_jacobian! — Function
dynamic_system_jacobian!(jacob, dx, x, indices, two_dimensional, force_scaling,
structural_damping, assembly, prescribed_conditions, distributed_loads,
point_masses, gravity, linear_velocity, angular_velocity)Populate the system jacobian matrix jacob for a general dynamic analysis.
GXBeam.expanded_steady_system_jacobian! — Function
expanded_steady_system_jacobian!(jacob, x, indices, two_dimensional, force_scaling, structural_damping,
assembly, prescribed_conditions, distributed_loads, point_masses, gravity,
ub_p, θb_p, vb_p, ωb_p, ab_p, αb_p)Populate the system jacobian matrix jacob for a general dynamic analysis with a constant mass matrix system.
GXBeam.expanded_dynamic_system_jacobian! — Function
expanded_dynamic_system_jacobian!(jacob, dx, x, indices, two_dimensional, force_scaling, structural_damping,
assembly, prescribed_conditions, distributed_loads, point_masses, gravity,
linear_velocity, angular_velocity)Populate the system jacobian matrix jacob for a general dynamic analysis with a constant mass matrix system.
GXBeam.system_mass_matrix! — Function
system_mass_matrix!(jacob, x, indices, two_dimensional, force_scaling, assembly,
prescribed_conditions, point_masses)Calculate the jacobian of the residual expressions with respect to the state rates.
system_mass_matrix!(jacob, gamma, x, indices, two_dimensional, force_scaling, assembly,
prescribed_conditions, point_masses)Calculate the jacobian of the residual expressions with respect to the state rates and add the result multiplied by gamma to jacob.
GXBeam.expanded_system_mass_matrix — Function
expanded_system_mass_matrix(system, assembly;
two_dimensional = false,
prescribed_conditions=Dict{Int, PrescribedConditions}(),
point_masses=Dict{Int, PointMass}())Calculate the jacobian of the residual expressions with respect to the state rates for a constant mass matrix system.
GXBeam.expanded_system_mass_matrix! — Function
expanded_system_mass_matrix!(jacob, indices, two_dimensional, force_scaling, assembly, prescribed_conditions,
point_masses)Calculate the jacobian of the residual expressions with respect to the state rates.
expanded_system_mass_matrix!(jacob, gamma, indices, two_dimensional, force_scaling, assembly,
prescribed_conditions, point_masses)Calculate the jacobian of the residual expressions with respect to the state rates and add the result multiplied by gamma to jacob.
Analysis
GXBeam.initialize_system! — Function
initialize_system!(system, assembly, tvec; kwargs...)Pre-allocate the history for a stepped time-domain analysis and conduct the initial condition analysis.
GXBeam.step_system! — Function
step_system!(history, system, assembly, tvec; kwargs...)A similar function to timedomainanalysis, but instead history is already allocated and it only takes one step with the system.
Inputs
- system::DynamicSystem : The dynamic system to be stepped.
- paug: The augmented parameter vector.
- x: The current state vector.
- constants: The constants tuple.
- initial_state: The initial state of the system.
- assembly: The assembly of the system.
- tvec: The time vector.
- i: The current time step index.
- prescribed_conditions: A dictionary of prescribed conditions.
- distributed_loads: A dictionary of distributed loads.
- point_masses: A dictionary of point masses.
- linear_velocity: The linear velocity of the body frame.
- angular_velocity: The angular velocity of the body frame.
- linear_acceleration: The linear acceleration of the body frame.
- angular_acceleration: The angular acceleration of the body frame.
- gravity: The gravity vector in the body frame.
- structural_damping: A flag indicating whether to enable structural damping.
- linear: A flag indicating whether a linear analysis should be performed.
- show_trace: A flag indicating whether to display the solution progress.
- update_linearization: A flag indicating whether to update the linearization state variables for a linear analysis with the instantaneous state variables.
- xpfunc: A function that returns parameters as a function of the state variables.
- pfunc: A function that returns parameters as a function of time.
- p: Sensitivity parameters.
- converged: A reference to a boolean indicating whether the solution converged.
GXBeam.take_step — Function
take_step(x, dx, system, assembly, t, tprev,
prescribed_conditions, distributed_loads, point_masses,
gravity, linear_velocity, angular_velocity,
xpfunc, pfunc, p,
structural_damping, two_dimensional)Take a single implicit Euler time step for the given system.
GXBeam.simulate — Function
simulate(assembly, tvec; prescribed_conditions, distributed_loads, point_masses, gravity, linear_velocity, angular_velocity,
xpfunc, pfunc, p, structural_damping, two_dimensional, verbose)Use the takestep function to run a timedomain_analysis.
WARNING: The implicit Euler method is not as stable as the Newmark-beta method. You may experience instability for stiff systems or large time steps.
Section
GXBeam.SectionCache — Type
SectionCache{TM, TSM, TMF, TSMF, TAF, TSAF}Internal cache for section properties
GXBeam.area_and_centroid_of_element — Function
area_and_centroid_of_element(node)Compute area and centroid of an element specified by its four nodes
GXBeam.redistribute_thickness — Function
Modify number of layers based on a given maximum thickness
GXBeam.combine_halfs — Function
given nodes/elements for upper surface and lower surface separately, combine into one set making sure to reuse the common nodes that occur at the LE/TE
GXBeam.nodes_half — Function
create nodes and elements for half (upper or lower) portion of airfoil
GXBeam.rotate_ply_to_element — Function
rotate_ply_to_element(Q, theta)Rotate constitutive matrix Q by ply angle theta
GXBeam.insertpoint — Function
add new point xn into existing airfoil coordinates x, y. Used to ensure breakpoints are in airfoil mesh. assumes x is already sorted (and thus represents either upper or lower half)
GXBeam.tangential — Function
determine tangential direction for each point on airfoil (as a normal vector with magnitudes tx and ty). keyword signifies whether this is the upper or lower surface
GXBeam.element_orientation — Function
element_orientation(nodes)Calculate the orientation beta of a single element using its nodes. Return cos(beta) and sin(beta)
GXBeam.element_submatrix — Function
element_submatrix(element, nodes)Performs 2-point Gauss quadrature of one element
GXBeam.addwebs — Function
add the nodes and elements for the webs. given the x locations (by idx) where the webs start and the number of grid points in the webs.
GXBeam.web_intersections — Function
determine where web intersects the inner surface curves. creates a new discretization where points are added to line up with the vertical mesh in the web. also returns the x vector index where the web mesh should start
GXBeam.parseairfoil — Function
airfoil coordinates xaf, yaf are assumed to start at trailing edge and traverse counterclockwise back to trailing edge. (thus upper surface first) coordinates are also assumed to be chord-normalized so that xaf is between 0 and 1. xbreak is a vector defining locations that need to be inserted into airfoil coordinates (for upper and lower surfaces) ds is a desired spacing for resampling (set ds=nothing to not resample) Alternatively can use vector nseg to define number of points in each interval between xbreak (see resample())
Method separates airfoil into upper and lower surfaces, adds in break points, and optionally resamples.
GXBeam.node2idx — Function
node2idx(nodenums)Convenience function to map node numbers to locations in global matrix.
GXBeam.node2idx! — Function
node2idx!(idx, nodenums)In-place version of node2idx.
GXBeam.reorder — Function
reorder(K)Reorder stiffness or compliance matrix from internal order to GXBeam order
GXBeam.find_inner_surface — Function
determine curve for inner surface to find intersections at trailing edge and with webs
GXBeam.elementQ — Function
elementQ(material, theta, cbeta, sbeta)Calculate element constitutive matrix Q accounting for fiber orientation theta and element orientation beta (where cbeta = cos(beta) and sbeta=sin(beta))
GXBeam.resample — Function
resample airfoil coordinates x, y with linear interpolation, making sure to exactly hit the points in vector xbreak (e.g., [0, 0.2, 0.4, 0.7, 1.0]). ds defines the target size between coordinates (rounded to nearnest number of grid points). assumes x is already sorted (and thus represents either upper or lower half or airfoil coordinates) points in xbreak do not have to exist in the original x vector alternatively you can define nseg, a vector of size: length(xbreak) - 1, defining how many points to use in each interval (e.g., [15, 20, 40, 30]) If nseg is provided then ds is ignored. During optimization either keep mesh fixed, or if changes are needed, then nseg should be used rather than ds to avoid discrete changes.
GXBeam.stiffness — Function
stiffness(material)Construct constitutive matrix Q for the specified material (with the internal ordering).
GXBeam.preprocess_layers — Function
convert segments to all have the same number of layers for ease in meshing. Overall definition remains consistent, just break up some thicker layers into multiple thinner layers (with same material and orientation properties)
GXBeam.linearsolve — Function
linearsolve(A, B; kwargs...)Linear solve which is overloaded with analytic derivatives. Returns the factorized matrix Afact and the result of the linear solve X.
GXBeam.rotate_element_to_beam — Function
rotate_element_to_beam(Q, c, s)Rotate constitutive matrix Q by element orientation beta where c = cos(beta) and s = sin(beta)
GXBeam.element_integrand — Function
element_integrand(ksi, eta, element, nodes)Compute the integrand for a single element with a given ksi, eta.
GXBeam.te_inner_intersection — Function
given curves for inner surfaces, find where they intersect (if they intersect), for handling trailing-edge mesh returns index of upper and lower surface where the trailing-edge-mesh should start (before intersection). also returns the x, y location of intersection.
GXBeam.mesh_area — Function
mesh_area(nodes, elements)Compute total area of the mesh.
Inputs
nodes::Vector{Node{TF}}: all the nodes in the meshelements::Vector{MeshElement{TF}}: all the elements in the mesh
Returns
A::TF: total area of the mesh
GXBeam.mesh_cylinder — Function
mesh_cylinder(R, thickness, material)A simple function to mesh a circular cross-section.
Inputs
- r::Vector{Float} - A vector of all the radial location of nodes. Assumed from least to greatest.
- materials::Vector{Material} - All of the materials used in the cross section.
- material_idx::Vector{Int} - The index of the material in the materials vector for each layer.
Assumed in order of outermost layer to inner most layer. Note: This is opposite to the order of r.
- plyangles::Vector{Float} - The ply angle of a given radial element (same order as material_idx).
- nt::Int - Number of tangential points (How many elements around the circle).
Index
GXBeam.AbstractSystemGXBeam.AssemblyGXBeam.AssemblyGXBeam.AssemblyStateGXBeam.AssemblyStateGXBeam.DistributedLoadsGXBeam.DistributedLoadsGXBeam.DynamicSystemGXBeam.DynamicSystemGXBeam.ElementGXBeam.ElementStateGXBeam.ExpandedSystemGXBeam.ExpandedSystemGXBeam.LayerGXBeam.MaterialGXBeam.MeshElementGXBeam.NodeGXBeam.PointMassGXBeam.PointMassGXBeam.PointStateGXBeam.PrescribedConditionsGXBeam.PrescribedConditionsGXBeam.SectionCacheGXBeam.StaticSystemGXBeam.StaticSystemGXBeam.SystemIndicesSciMLBase.DAEFunctionSciMLBase.DAEProblemSciMLBase.ODEFunctionSciMLBase.ODEProblemGXBeam.addwebsGXBeam.afmeshGXBeam.area_and_centroid_of_elementGXBeam.body_accelerationsGXBeam.combine_halfsGXBeam.combine_loadsGXBeam.combine_massesGXBeam.compatibility_residualsGXBeam.compliance_matrixGXBeam.correlate_eigenmodesGXBeam.curve_coordinatesGXBeam.curve_lengthGXBeam.curve_triadGXBeam.default_force_scalingGXBeam.deform_cross_sectionGXBeam.deform_cross_section!GXBeam.discretize_beamGXBeam.dynamic_element_jacobian!GXBeam.dynamic_element_jacobian_propertiesGXBeam.dynamic_element_propertiesGXBeam.dynamic_element_residual!GXBeam.dynamic_element_resultant_jacobiansGXBeam.dynamic_element_resultantsGXBeam.dynamic_point_jacobian!GXBeam.dynamic_point_jacobian_propertiesGXBeam.dynamic_point_propertiesGXBeam.dynamic_point_residual!GXBeam.dynamic_point_resultant_jacobiansGXBeam.dynamic_point_resultantsGXBeam.dynamic_point_velocity_jacobiansGXBeam.dynamic_system_jacobian!GXBeam.dynamic_system_residual!GXBeam.eigenvalue_analysisGXBeam.eigenvalue_analysis!GXBeam.elementQGXBeam.element_integrandGXBeam.element_loadsGXBeam.element_orientationGXBeam.element_submatrixGXBeam.expanded_dynamic_element_equilibrium_jacobiansGXBeam.expanded_dynamic_element_jacobian!GXBeam.expanded_dynamic_element_jacobian_propertiesGXBeam.expanded_dynamic_element_propertiesGXBeam.expanded_dynamic_element_residual!GXBeam.expanded_dynamic_point_jacobian!GXBeam.expanded_dynamic_point_jacobian_propertiesGXBeam.expanded_dynamic_point_propertiesGXBeam.expanded_dynamic_point_residual!GXBeam.expanded_dynamic_point_resultant_jacobiansGXBeam.expanded_dynamic_system_jacobian!GXBeam.expanded_dynamic_system_residual!GXBeam.expanded_element_equilibrium_residualsGXBeam.expanded_element_loadsGXBeam.expanded_element_resultant_jacobiansGXBeam.expanded_element_resultantsGXBeam.expanded_element_velocitiesGXBeam.expanded_element_velocity_jacobiansGXBeam.expanded_element_velocity_residualsGXBeam.expanded_mass_matrix_element_equilibrium_jacobiansGXBeam.expanded_mass_matrix_element_jacobian!GXBeam.expanded_mass_matrix_element_jacobian_propertiesGXBeam.expanded_mass_matrix_point_jacobian!GXBeam.expanded_mass_matrix_point_jacobian_propertiesGXBeam.expanded_point_resultantsGXBeam.expanded_point_velocity_jacobiansGXBeam.expanded_point_velocity_residualsGXBeam.expanded_steady_element_equilibrium_jacobiansGXBeam.expanded_steady_element_jacobian!GXBeam.expanded_steady_element_jacobian_propertiesGXBeam.expanded_steady_element_propertiesGXBeam.expanded_steady_element_residual!GXBeam.expanded_steady_point_jacobian!GXBeam.expanded_steady_point_jacobian_propertiesGXBeam.expanded_steady_point_propertiesGXBeam.expanded_steady_point_residual!GXBeam.expanded_steady_point_resultant_jacobiansGXBeam.expanded_steady_system_jacobian!GXBeam.expanded_steady_system_residual!GXBeam.expanded_system_mass_matrixGXBeam.expanded_system_mass_matrix!GXBeam.extract_element_stateGXBeam.extract_element_statesGXBeam.extract_point_stateGXBeam.extract_point_statesGXBeam.find_inner_surfaceGXBeam.gauss_quadratureGXBeam.get_CGXBeam.get_C_θGXBeam.get_QGXBeam.get_Q_θGXBeam.get_QinvGXBeam.get_Qinv_θGXBeam.get_ΔQGXBeam.get_ΔQ_θGXBeam.initial_condition_analysisGXBeam.initial_condition_analysis!GXBeam.initial_element_jacobian!GXBeam.initial_element_jacobian_propertiesGXBeam.initial_element_propertiesGXBeam.initial_element_residual!GXBeam.initial_element_resultant_jacobiansGXBeam.initial_point_displacementGXBeam.initial_point_displacement_jacobianGXBeam.initial_point_jacobian!GXBeam.initial_point_jacobian_propertiesGXBeam.initial_point_propertiesGXBeam.initial_point_residual!GXBeam.initial_point_resultant_jacobiansGXBeam.initial_point_velocity_jacobiansGXBeam.initial_point_velocity_rate_jacobianGXBeam.initial_point_velocity_ratesGXBeam.initial_system_jacobian!GXBeam.initial_system_residual!GXBeam.initialize_cacheGXBeam.initialize_system!GXBeam.insert_dynamic_point_jacobians!GXBeam.insert_element_residuals!GXBeam.insert_expanded_dynamic_point_jacobians!GXBeam.insert_expanded_element_residuals!GXBeam.insert_expanded_mass_matrix_point_jacobians!GXBeam.insert_expanded_steady_point_jacobians!GXBeam.insert_initial_point_jacobians!GXBeam.insert_mass_matrix_point_jacobians!GXBeam.insert_static_point_jacobians!GXBeam.insert_steady_point_jacobians!GXBeam.insertpointGXBeam.left_eigenvectorsGXBeam.linearize!GXBeam.linearsolveGXBeam.mass_matrixGXBeam.mass_matrix_element_jacobian!GXBeam.mass_matrix_element_jacobian_propertiesGXBeam.mass_matrix_element_resultant_jacobiansGXBeam.mass_matrix_point_jacobian!GXBeam.mass_matrix_point_jacobian_propertiesGXBeam.mass_matrix_point_resultant_jacobiansGXBeam.mass_matrix_point_velocity_jacobiansGXBeam.mesh_areaGXBeam.mesh_cylinderGXBeam.mul3GXBeam.newmark_element_jacobian!GXBeam.newmark_element_jacobian_propertiesGXBeam.newmark_element_propertiesGXBeam.newmark_element_residual!GXBeam.newmark_point_jacobian!GXBeam.newmark_point_jacobian_propertiesGXBeam.newmark_point_propertiesGXBeam.newmark_point_residual!GXBeam.newmark_point_velocity_jacobiansGXBeam.newmark_system_jacobian!GXBeam.newmark_system_residual!GXBeam.node2idxGXBeam.node2idx!GXBeam.nodes_halfGXBeam.parseairfoilGXBeam.plotmeshGXBeam.plotsolnGXBeam.point_displacementGXBeam.point_displacement_jacobiansGXBeam.point_displacement_ratesGXBeam.point_load_jacobiansGXBeam.point_loadsGXBeam.point_velocitiesGXBeam.point_velocity_jacobiansGXBeam.point_velocity_ratesGXBeam.point_velocity_residualsGXBeam.preprocess_layersGXBeam.redistribute_thicknessGXBeam.reorderGXBeam.resampleGXBeam.reset_state!GXBeam.rotateGXBeam.rotate!GXBeam.rotate_element_to_beamGXBeam.rotate_ply_to_elementGXBeam.rotation_parameter_scalingGXBeam.set_angular_displacement!GXBeam.set_angular_velocity!GXBeam.set_element_angular_velocity!GXBeam.set_element_linear_velocity!GXBeam.set_end_forces!GXBeam.set_end_moments!GXBeam.set_external_forces!GXBeam.set_external_moments!GXBeam.set_initial_state!GXBeam.set_internal_forces!GXBeam.set_internal_moments!GXBeam.set_linear_displacement!GXBeam.set_linear_velocity!GXBeam.set_point_angular_velocity!GXBeam.set_point_linear_velocity!GXBeam.set_rate!GXBeam.set_start_forces!GXBeam.set_start_moments!GXBeam.set_state!GXBeam.simulateGXBeam.solve_eigensystemGXBeam.static_analysisGXBeam.static_analysis!GXBeam.static_element_jacobian!GXBeam.static_element_jacobian_propertiesGXBeam.static_element_propertiesGXBeam.static_element_residual!GXBeam.static_element_resultant_jacobiansGXBeam.static_element_resultantsGXBeam.static_point_jacobian!GXBeam.static_point_jacobian_propertiesGXBeam.static_point_propertiesGXBeam.static_point_residual!GXBeam.static_point_resultant_jacobiansGXBeam.static_point_resultantsGXBeam.static_system_jacobian!GXBeam.static_system_residual!GXBeam.steady_element_jacobian!GXBeam.steady_element_jacobian_propertiesGXBeam.steady_element_propertiesGXBeam.steady_element_residual!GXBeam.steady_element_resultant_jacobiansGXBeam.steady_point_jacobian!GXBeam.steady_point_jacobian_propertiesGXBeam.steady_point_propertiesGXBeam.steady_point_residual!GXBeam.steady_point_resultant_jacobiansGXBeam.steady_state_analysisGXBeam.steady_state_analysis!GXBeam.steady_system_jacobian!GXBeam.steady_system_residual!GXBeam.step_system!GXBeam.stiffnessGXBeam.strain_recoveryGXBeam.system_mass_matrix!GXBeam.take_stepGXBeam.tangentialGXBeam.te_inner_intersectionGXBeam.tildeGXBeam.time_domain_analysisGXBeam.time_domain_analysis!GXBeam.transform_propertiesGXBeam.translateGXBeam.translate!GXBeam.tsai_wuGXBeam.two_dimensional_jacobian!GXBeam.two_dimensional_residual!GXBeam.update_body_acceleration_indices!GXBeam.web_intersectionsGXBeam.wiener_milenkovicGXBeam.write_vtk