Constraints< DeviceType > Struct Template Reference
Kynema API
A flexible multibody structural dynamics code for wind turbines
|
Loading...
Searching...
No Matches
Public Types |
Public Member Functions |
Static Public Member Functions |
Public Attributes |
List of all members
kynema::Constraints< DeviceType > Struct Template Reference
Container class for managing multiple constraints in a simulation. More...
#include <constraints.hpp>
Public Types | |
template<typename ValueType > | |
using | View = Kokkos::View< ValueType, DeviceType > |
template<typename ValueType > | |
using | ConstView = typename View< ValueType >::const_type |
Public Member Functions | |
Constraints (std::span< const constraints::Constraint > constraints, std::span< const Node > nodes) | |
template<typename ArrayType > | |
void | UpdateDisplacement (size_t constraint_id, const ArrayType &disp) const |
Sets the new displacement for the given constraint. | |
void | UpdateViews () |
Transfers new prescribed displacements and control signals to Views. | |
Static Public Member Functions | |
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. | |
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. | |
Detailed Description
template<typename DeviceType>
struct kynema::Constraints< DeviceType >
struct kynema::Constraints< DeviceType >
Container class for managing multiple constraints in a simulation.
Manages a collection of constraints between nodes, including their properties, freedom signatures, and computational data structures. This class handles both single-node boundary conditions and two-node constraints (like joints). It provides facilities for:
- Storing constraint properties (types, node indices, axes)
- Managing degrees of freedom and freedom signatures
- Handling control signals and prescribed displacements
- Maintaining computational views for residuals and gradients
Member Typedef Documentation
◆ ConstView
template<typename DeviceType >
template<typename ValueType >
using kynema::Constraints< DeviceType >::ConstView = typename View<ValueType>::const_type |
◆ View
template<typename DeviceType >
template<typename ValueType >
using kynema::Constraints< DeviceType >::View = Kokkos::View<ValueType, DeviceType> |
Constructor & Destructor Documentation
◆ Constraints()
template<typename DeviceType >
|
inlineexplicit |
Member Function Documentation
◆ CalculateAxes()
template<typename DeviceType >
|
inlinestatic |
Calculates the rotation axes for a constraint based on its type and configuration.
◆ CalculateX0()
template<typename DeviceType >
|
inlinestatic |
Calculates the initial relative position (X0) based on constraint type and nodes.
◆ UpdateDisplacement()
template<typename DeviceType >
|
inline |
Sets the new displacement for the given constraint.
◆ UpdateViews()
template<typename DeviceType >
|
inline |
Transfers new prescribed displacements and control signals to Views.
Member Data Documentation
◆ axes
template<typename DeviceType >
View<double* [3][3]> kynema::Constraints< DeviceType >::axes |
◆ base_active_dofs
template<typename DeviceType >
View<size_t*> kynema::Constraints< DeviceType >::base_active_dofs |
◆ base_gradient_terms
template<typename DeviceType >
View<double* [6][6]> kynema::Constraints< DeviceType >::base_gradient_terms |
◆ base_gradient_transpose_terms
template<typename DeviceType >
View<double* [6][6]> kynema::Constraints< DeviceType >::base_gradient_transpose_terms |
◆ base_lambda_residual_terms
template<typename DeviceType >
View<double* [6]> kynema::Constraints< DeviceType >::base_lambda_residual_terms |
◆ base_node_freedom_signature
template<typename DeviceType >
View<dof::FreedomSignature*> kynema::Constraints< DeviceType >::base_node_freedom_signature |
◆ base_node_freedom_table
template<typename DeviceType >
View<size_t* [6]> kynema::Constraints< DeviceType >::base_node_freedom_table |
◆ base_node_index
template<typename DeviceType >
View<size_t*> kynema::Constraints< DeviceType >::base_node_index |
◆ control_signal
template<typename DeviceType >
std::vector<double*> kynema::Constraints< DeviceType >::control_signal |
◆ host_input
template<typename DeviceType >
View<double*[7]>::HostMirror kynema::Constraints< DeviceType >::host_input |
◆ host_output
template<typename DeviceType >
View<double*[3]>::HostMirror kynema::Constraints< DeviceType >::host_output |
◆ input
template<typename DeviceType >
View<double* [7]> kynema::Constraints< DeviceType >::input |
◆ lambda
template<typename DeviceType >
View<double* [6]> kynema::Constraints< DeviceType >::lambda |
◆ num_constraints
template<typename DeviceType >
size_t kynema::Constraints< DeviceType >::num_constraints |
◆ num_dofs
template<typename DeviceType >
size_t kynema::Constraints< DeviceType >::num_dofs |
◆ output
template<typename DeviceType >
View<double* [3]> kynema::Constraints< DeviceType >::output |
◆ residual_terms
template<typename DeviceType >
View<double* [6]> kynema::Constraints< DeviceType >::residual_terms |
◆ row_range
template<typename DeviceType >
View<Kokkos::pair<size_t, size_t>*> kynema::Constraints< DeviceType >::row_range |
◆ system_residual_terms
template<typename DeviceType >
View<double* [6]> kynema::Constraints< DeviceType >::system_residual_terms |
◆ target_active_dofs
template<typename DeviceType >
View<size_t*> kynema::Constraints< DeviceType >::target_active_dofs |
◆ target_gradient_terms
template<typename DeviceType >
View<double* [6][6]> kynema::Constraints< DeviceType >::target_gradient_terms |
◆ target_gradient_transpose_terms
template<typename DeviceType >
View<double* [6][6]> kynema::Constraints< DeviceType >::target_gradient_transpose_terms |
◆ target_lambda_residual_terms
template<typename DeviceType >
View<double* [6]> kynema::Constraints< DeviceType >::target_lambda_residual_terms |
◆ target_node_freedom_signature
template<typename DeviceType >
View<dof::FreedomSignature*> kynema::Constraints< DeviceType >::target_node_freedom_signature |
◆ target_node_freedom_table
template<typename DeviceType >
View<size_t* [6]> kynema::Constraints< DeviceType >::target_node_freedom_table |
◆ target_node_index
template<typename DeviceType >
View<size_t*> kynema::Constraints< DeviceType >::target_node_index |
◆ type
template<typename DeviceType >
View<constraints::ConstraintType*> kynema::Constraints< DeviceType >::type |
◆ X0
template<typename DeviceType >
View<double* [3]> kynema::Constraints< DeviceType >::X0 |
The documentation for this struct was generated from the following file:
- /home/runner/work/kynema/kynema/kynema/src/constraints/constraints.hpp
Generated by