/home/runner/work/kynema/kynema/kynema/src/constraints/constraints.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
|
Loading...
Searching...
No Matches
constraints.hpp
Go to the documentation of this file.
@ PrescribedBC3DOFs
@ PrescribedBC
@ RigidJoint
@ FixedBC3DOFs
@ RigidJoint6DOFsTo3DOFs
@ RevoluteJoint
@ RotationControl
KOKKOS_INLINE_FUNCTION constexpr size_t NumRowsForConstraint(ConstraintType type)
Returns the number of degrees of freedom prescribed/fixed by the constraint type.
Definition constraint_type.hpp:63
@ AllComponents
@ JustPosition
@ NoComponents
KOKKOS_INLINE_FUNCTION void CrossProduct(const VectorType &a, const VectorType &b, const VectorType &c)
Calculate the cross product between two vector views.
Definition vector_operations.hpp:40
KOKKOS_INLINE_FUNCTION double DotProduct(const AVectorType &a, const BVectorType &b)
Calculate the dot product between two vector views.
Definition vector_operations.hpp:25
constexpr double Norm(const std::array< double, 3 > &v)
Calculate the norm of a given vector.
Definition vector_operations.hpp:60
constexpr std::array< double, 3 > UnitVector(const std::array< double, 3 > &v)
UnitVector returns the unit vector of the given vector.
Definition vector_operations.hpp:65
Definition calculate_constraint_output.hpp:8
Container class for managing multiple constraints in a simulation.
Definition constraints.hpp:29
View< size_t * > target_active_dofs
Definition constraints.hpp:49
View< dof::FreedomSignature * > base_node_freedom_signature
Definition constraints.hpp:46
static std::array< double, 3 > CalculateX0(const constraints::Constraint &constraint, const Node &target_node, const Node &base_node)
Calculates the initial relative position (X0) based on constraint type and nodes.
Definition constraints.hpp:269
std::vector< double * > control_signal
Definition constraints.hpp:40
typename View< ValueType >::const_type ConstView
Definition constraints.hpp:33
void UpdateDisplacement(size_t constraint_id, const ArrayType &disp) const
Sets the new displacement for the given constraint.
Definition constraints.hpp:339
View< size_t * > target_node_index
Definition constraints.hpp:42
View< double *[6][6]> base_gradient_transpose_terms
Definition constraints.hpp:73
View< double *[6]> base_lambda_residual_terms
Definition constraints.hpp:68
View< double *[6]> system_residual_terms
Definition constraints.hpp:70
View< double *[6][6]> base_gradient_terms
Definition constraints.hpp:71
void UpdateViews()
Transfers new prescribed displacements and control signals to Views.
Definition constraints.hpp:346
View< Kokkos::pair< size_t, size_t > * > row_range
Definition constraints.hpp:45
View< dof::FreedomSignature * > target_node_freedom_signature
Definition constraints.hpp:47
View< size_t *[6]> base_node_freedom_table
Definition constraints.hpp:50
View< double *[6][6]> target_gradient_terms
Definition constraints.hpp:72
static std::array< std::array< double, 3 >, 3 > CalculateAxes(const constraints::Constraint &constraint, const std::array< double, 3 > &x0)
Calculates the rotation axes for a constraint based on its type and configuration.
Definition constraints.hpp:290
View< double *[6][6]> target_gradient_transpose_terms
Definition constraints.hpp:74
View< double *[6]> target_lambda_residual_terms
Definition constraints.hpp:69
Constraints(std::span< const constraints::Constraint > constraints, std::span< const Node > nodes)
Definition constraints.hpp:76
View< double *[3]>::HostMirror host_output
Definition constraints.hpp:64
View< size_t *[6]> target_node_freedom_table
Definition constraints.hpp:51
View< double *[7]>::HostMirror host_input
Definition constraints.hpp:63
Defines a constraint between two nodes or enforces a boundary condition at a single node.
Definition constraint.hpp:17
ConstraintType type
Type of constraint.
Definition constraint.hpp:19
std::array< double, 3 > axis_vector
Vector for rotation/control axis.
Definition constraint.hpp:21
Generated by