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

Kynema API: /home/runner/work/kynema/kynema/kynema/src/system/masses/calculate_gravity_force.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
calculate_gravity_force.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <KokkosBlas.hpp>
4#include <Kokkos_Core.hpp>
5
6namespace kynema::masses {
7
8template <typename DeviceType>
10 template <typename ValueType>
11 using View = Kokkos::View<ValueType, DeviceType>;
12 template <typename ValueType>
14
16 double mass, const ConstView<double[3]>& gravity, const ConstView<double[3][3]>& eta_tilde,
17 const View<double[6]>& FG
18 ) {
19 using NoTranspose = KokkosBlas::Trans::NoTranspose;
20 using Default = KokkosBlas::Algo::Gemv::Default;
21 using Gemv = KokkosBlas::SerialGemv<NoTranspose, Default>;
22 using Kokkos::make_pair;
23 using Kokkos::subview;
24
25 KokkosBlas::serial_axpy(mass, gravity, subview(FG, make_pair(0, 3)));
26 Gemv::invoke(1., eta_tilde, subview(FG, make_pair(0, 3)), 0., subview(FG, make_pair(3, 6)));
27 }
28};
29} // namespace kynema::masses
Definition calculate_gravity_force.hpp:6
Definition calculate_gravity_force.hpp:9
typename View< ValueType >::const_type ConstView
Definition calculate_gravity_force.hpp:13
Kokkos::View< ValueType, DeviceType > View
Definition calculate_gravity_force.hpp:11
static KOKKOS_FUNCTION void invoke(double mass, const ConstView< double[3]> &gravity, const ConstView< double[3][3]> &eta_tilde, const View< double[6]> &FG)
Definition calculate_gravity_force.hpp:15