/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
8
9#include <cstdint>
10
12
19{
20public:
21 void read_inputs(
22 const utils::ActParser& pp,
23 const vs::Vector& initial_position,
24 const vs::Tensor& initial_orientation,
25 const std::string& angular_velocity_key = "angular_velocity",
26 const vs::Vector& default_angular_velocity = vs::Vector::zero());
27
28 [[nodiscard]] vs::Vector position(amrex::Real time) const;
29 [[nodiscard]] vs::Vector translation_velocity(amrex::Real time) const;
30 [[nodiscard]] vs::Tensor orientation(amrex::Real time) const;
31 [[nodiscard]] vs::Vector angular_velocity(amrex::Real time) const;
32 [[nodiscard]] RigidTransform pose(amrex::Real time) const;
33
34 [[nodiscard]] bool moves() const;
35
36private:
37 enum class OrientationFormat : std::uint8_t { RollPitchYaw, Quaternion };
38
39 [[nodiscard]] vs::Quaternion orientation_quaternion(int row) const;
40 void
41 warn_ambiguous_orientation_intervals(const std::string& filename) const;
42
52};
53
54} // namespace kynema_sgf::actuator::motion
55
56#endif
Definition RigidBodyMotion.H:19
OrientationFormat
Definition RigidBodyMotion.H:37
TimeTable m_orientation_table
Definition RigidBodyMotion.H:49
vs::Tensor orientation(amrex::Real time) const
Definition RigidBodyMotion.cpp:196
OrientationFormat m_orientation_format
Definition RigidBodyMotion.H:51
vs::Vector m_constant_angular_velocity
Definition RigidBodyMotion.H:46
bool moves() const
Definition RigidBodyMotion.cpp:271
vs::Vector position(amrex::Real time) const
Definition RigidBodyMotion.cpp:142
vs::Vector m_initial_position
Definition RigidBodyMotion.H:43
RigidTransform pose(amrex::Real time) const
Definition RigidBodyMotion.cpp:266
vs::Quaternion orientation_quaternion(int row) const
Definition RigidBodyMotion.cpp:164
TimeTable m_angular_velocity_table
Definition RigidBodyMotion.H:50
vs::Vector translation_velocity(amrex::Real time) const
Definition RigidBodyMotion.cpp:153
vs::Vector angular_velocity(amrex::Real time) const
Definition RigidBodyMotion.cpp:228
vs::Vector m_constant_velocity
Definition RigidBodyMotion.H:44
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:55
void warn_ambiguous_orientation_intervals(const std::string &filename) const
Definition RigidBodyMotion.cpp:175
vs::Tensor m_initial_orientation
Definition RigidBodyMotion.H:45
TimeTable m_velocity_table
Definition RigidBodyMotion.H:48
TimeTable m_position_table
Definition RigidBodyMotion.H:47
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 RigidTransform.H:10
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