/home/runner/work/kynema/kynema/kynema/src/state/calculate_next_state.hpp Source File

Kynema API: /home/runner/work/kynema/kynema/kynema/src/state/calculate_next_state.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
calculate_next_state.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Kokkos_Core.hpp>
4
5namespace kynema::state {
6
11template <typename DeviceType>
13 template <typename ValueType>
14 using View = Kokkos::View<ValueType, DeviceType>;
15
16 double h;
17 double alpha_f;
18 double alpha_m;
19 double beta;
20 double gamma;
25
27 void operator()(size_t node) const {
28 for (auto component = 0U; component < 6U; ++component) {
29 const double v_p = v(node, component);
30 const double vd_p = vd(node, component);
31 const double a_p = a(node, component);
32 vd(node, component) = 0.;
33 a(node, component) = (alpha_f * vd_p - alpha_m * a_p) / (1. - alpha_m);
34 v(node, component) = v_p + h * (1. - gamma) * a_p + gamma * h * a(node, component);
35 q_delta(node, component) = v_p + (0.5 - beta) * h * a_p + beta * h * a(node, component);
36 }
37 }
38};
39
40} // namespace kynema::state
Definition calculate_displacement.hpp:7
A Kernel to predict the next state values before nonlinear iteration begins for a given time step.
Definition calculate_next_state.hpp:12
double gamma
Definition calculate_next_state.hpp:20
double h
Definition calculate_next_state.hpp:16
KOKKOS_FUNCTION void operator()(size_t node) const
Definition calculate_next_state.hpp:27
View< double *[6]> a
Definition calculate_next_state.hpp:24
double alpha_m
Definition calculate_next_state.hpp:18
Kokkos::View< ValueType, DeviceType > View
Definition calculate_next_state.hpp:14
View< double *[6]> vd
Definition calculate_next_state.hpp:23
double beta
Definition calculate_next_state.hpp:19
View< double *[6]> q_delta
Definition calculate_next_state.hpp:21
View< double *[6]> v
Definition calculate_next_state.hpp:22
double alpha_f
Definition calculate_next_state.hpp:17