/home/runner/work/kynema/kynema/kynema/src/system/masses/calculate_mass_matrix_components.hpp Source File

Kynema API: /home/runner/work/kynema/kynema/kynema/src/system/masses/calculate_mass_matrix_components.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
calculate_mass_matrix_components.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <KokkosBatched_Copy_Decl.hpp>
4#include <Kokkos_Core.hpp>
5
6namespace kynema::masses {
7
8template <typename DeviceType>
9KOKKOS_INLINE_FUNCTION void CalculateEta(
10 const typename Kokkos::View<double[6][6], DeviceType>::const_type& Muu,
11 const Kokkos::View<double[3], DeviceType>& eta
12) {
13 const auto m = Muu(0, 0);
14
15 eta(0) = Muu(5, 1) / m;
16 eta(1) = -Muu(5, 0) / m;
17 eta(2) = Muu(4, 0) / m;
18}
19
20template <typename DeviceType>
21KOKKOS_INLINE_FUNCTION void CalculateRho(
22 const typename Kokkos::View<double[6][6], DeviceType>::const_type& Muu,
23 const Kokkos::View<double[3][3], DeviceType>& rho
24) {
25 KokkosBatched::SerialCopy<>::invoke(
26 Kokkos::subview(Muu, Kokkos::make_pair(3, 6), Kokkos::make_pair(3, 6)), rho
27 );
28}
29
30} // namespace kynema::masses
Definition calculate_gravity_force.hpp:6
KOKKOS_INLINE_FUNCTION void CalculateRho(const typename Kokkos::View< double[6][6], DeviceType >::const_type &Muu, const Kokkos::View< double[3][3], DeviceType > &rho)
Definition calculate_mass_matrix_components.hpp:21
KOKKOS_INLINE_FUNCTION void CalculateEta(const typename Kokkos::View< double[6][6], DeviceType >::const_type &Muu, const Kokkos::View< double[3], DeviceType > &eta)
Definition calculate_mass_matrix_components.hpp:9