29 lines
939 B
C++
29 lines
939 B
C++
module;
|
|
|
|
#include <cstdint>
|
|
|
|
export module mean_field:solver.fields;
|
|
|
|
export namespace mean_field::solver {
|
|
enum class FieldBlock : std::uint8_t {
|
|
velocity = 0,
|
|
density = 1,
|
|
gravity_gradient = 2,
|
|
gravity_potential = 3,
|
|
displacement = 4,
|
|
count = 5
|
|
};
|
|
|
|
[[nodiscard]] constexpr int block_index(const FieldBlock field) noexcept {
|
|
return static_cast<int>(field);
|
|
}
|
|
|
|
inline constexpr int field_block_count = block_index(FieldBlock::count);
|
|
|
|
static_assert(block_index(FieldBlock::velocity) == 0);
|
|
static_assert(block_index(FieldBlock::density) == 1);
|
|
static_assert(block_index(FieldBlock::gravity_gradient) == 2);
|
|
static_assert(block_index(FieldBlock::gravity_potential) == 3);
|
|
static_assert(block_index(FieldBlock::displacement) == 4);
|
|
static_assert(field_block_count == 5);
|
|
} // namespace mean_field::solver
|