/home/runner/work/kynema/kynema/kynema/src/elements/masses/masses.hpp Source File

Kynema API: /home/runner/work/kynema/kynema/kynema/src/elements/masses/masses.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
masses.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Kokkos_Core.hpp>
4
6
7namespace kynema {
8
16template <typename DeviceType>
17struct Masses {
18 template <typename ValueType>
19 using View = Kokkos::View<ValueType, DeviceType>;
20
21 size_t num_elems; //< Total number of elements
22 View<size_t*> num_nodes_per_element; //< This is always 1 for masses
27 View<double* [7]> node_x0; //< Initial position/rotation
28 View<double* [6][6]> qp_Mstar; //< Mass matrix in material frame
31
32 explicit Masses(const size_t n_mass_elems)
35 Kokkos::view_alloc("num_nodes_per_element", Kokkos::WithoutInitializing), num_elems
36 ),
39 Kokkos::view_alloc("element_freedom_signature", Kokkos::WithoutInitializing), num_elems
40 ),
42 Kokkos::view_alloc("element_freedom_table", Kokkos::WithoutInitializing), num_elems
43 ),
48 Kokkos::view_alloc("residual_vector_terms", Kokkos::WithoutInitializing), num_elems
49 ),
51 Kokkos::view_alloc("system_matrix_terms", Kokkos::WithoutInitializing), num_elems
52 ) {
53 Kokkos::deep_copy(num_nodes_per_element, 1); // Always 1 node per element
55 }
56};
57
58} // namespace kynema
Definition calculate_constraint_output.hpp:8
Contains field variables for mass elements (aka, rigid bodies) to compute per-element contributions t...
Definition masses.hpp:17
View< double *[7]> node_x0
Definition masses.hpp:27
View< double *[6][6]> qp_Mstar
Definition masses.hpp:28
View< size_t * > state_indices
Definition masses.hpp:23
Masses(const size_t n_mass_elems)
Definition masses.hpp:32
View< dof::FreedomSignature * > element_freedom_signature
Definition masses.hpp:24
View< double *[6]> residual_vector_terms
Definition masses.hpp:29
View< size_t *[6]> element_freedom_table
Definition masses.hpp:25
View< size_t * > num_nodes_per_element
Definition masses.hpp:22
Kokkos::View< ValueType, DeviceType > View
Definition masses.hpp:19
size_t num_elems
Definition masses.hpp:21
View< double[3]> gravity
Definition masses.hpp:26
View< double *[6][6]> system_matrix_terms
Definition masses.hpp:30