/home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/actuator/motion/RigidBodyMotion.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/actuator/motion/RigidBodyMotion.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
RigidBodyMotion.H
Go to the documentation of this file.
1#ifndef ACTUATOR_RIGID_BODY_MOTION_H
2#define ACTUATOR_RIGID_BODY_MOTION_H
3
7
8#include <cstdint>
9
11
18{
19public:
20 void read_inputs(
21 const utils::ActParser& pp,
22 const vs::Vector& initial_position,
23 const vs::Tensor& initial_orientation,
24 const std::string& angular_velocity_key = "angular_velocity",
25 const vs::Vector& default_angular_velocity = vs::Vector::zero());
26
27 [[nodiscard]] vs::Vector position(amrex::Real time) const;
28 [[nodiscard]] vs::Vector translation_velocity(amrex::Real time) const;
29 [[nodiscard]] vs::Tensor orientation(amrex::Real time) const;
30 [[nodiscard]] vs::Vector angular_velocity(amrex::Real time) const;
31
32 [[nodiscard]] bool moves() const;
33
34private:
35 enum class OrientationFormat : std::uint8_t { RollPitchYaw, Quaternion };
36
37 [[nodiscard]] vs::Quaternion orientation_quaternion(int row) const;
38 void
39 warn_ambiguous_orientation_intervals(const std::string& filename) const;
40
50};
51
52} // namespace kynema_sgf::actuator::motion
53
54#endif
Definition RigidBodyMotion.H:18
OrientationFormat
Definition RigidBodyMotion.H:35
TimeTable m_orientation_table
Definition RigidBodyMotion.H:47
vs::Tensor orientation(amrex::Real time) const
Definition RigidBodyMotion.cpp:196
OrientationFormat m_orientation_format
Definition RigidBodyMotion.H:49
vs::Vector m_constant_angular_velocity
Definition RigidBodyMotion.H:44
bool moves() const
Definition RigidBodyMotion.cpp:266
vs::Vector position(amrex::Real time) const
Definition RigidBodyMotion.cpp:143
vs::Vector m_initial_position
Definition RigidBodyMotion.H:41
vs::Quaternion orientation_quaternion(int row) const
Definition RigidBodyMotion.cpp:165
TimeTable m_angular_velocity_table
Definition RigidBodyMotion.H:48
vs::Vector translation_velocity(amrex::Real time) const
Definition RigidBodyMotion.cpp:154
vs::Vector angular_velocity(amrex::Real time) const
Definition RigidBodyMotion.cpp:228
vs::Vector m_constant_velocity
Definition RigidBodyMotion.H:42
void read_inputs(const utils::ActParser &pp, const vs::Vector &initial_position, const vs::Tensor &initial_orientation, const std::string &angular_velocity_key="angular_velocity", const vs::Vector &default_angular_velocity=vs::Vector::zero())
Definition RigidBodyMotion.cpp:56
void warn_ambiguous_orientation_intervals(const std::string &filename) const
Definition RigidBodyMotion.cpp:175
vs::Tensor m_initial_orientation
Definition RigidBodyMotion.H:43
TimeTable m_velocity_table
Definition RigidBodyMotion.H:46
TimeTable m_position_table
Definition RigidBodyMotion.H:45
Definition RigidBodyMotion.cpp:15
::kynema_sgf::utils::MultiParser ActParser
Definition ActParser.H:8
VectorT< amrex::Real > Vector
Definition vector.H:145
TensorT< amrex::Real > Tensor
Definition tensor.H:158
Definition quaternion.H:17
AMREX_GPU_HOST_DEVICE static AMREX_FORCE_INLINE constexpr TensorT< amrex::Real > identity()
Definition tensor.H:64
AMREX_GPU_HOST_DEVICE static AMREX_FORCE_INLINE constexpr VectorT< amrex::Real > zero()
Definition vector.H:45