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