Loading [MathJax]/extensions/tex2jax.js
MAIA bb96820c
Multiphysics at AIA
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
lptbaseproperties.h
Go to the documentation of this file.
1// Copyright (C) 2024 The m-AIA AUTHORS
2//
3// This file is part of m-AIA (https://git.rwth-aachen.de/aia/m-AIA/m-AIA)
4//
5// SPDX-License-Identifier: LGPL-3.0-only
6
7#ifndef LPTBASEPROPERTIES_H_
8#define LPTBASEPROPERTIES_H_
9
10#include <bitset>
11#include <type_traits>
12
14enum class LptBaseProperty {
15 IsWindow, // particle is inside a window-cell
16 ReqSend, // particle is inside a halo-cell and needs to be send to the neighborDomain!
17 WasSend, // particle has just been send to the new window-cell
18 ReqBroadcast, // particle is ouside the current-domain boundingBox
19 // and needs to be communicated to a domain which is not a neighborDomain!
20 IsInvalid, // particle is inside an invalid cell
21 HasCollided, // particle had a collision
22 FirstStep, // particle first time step, not fully living yet...
23 ToBeDeleted, // particle can be deleted
24 ToBeRespawn, // particle can be respawn at different location/domain
25 FullyEvaporated, // particle just fully evaporated
26 HadWallColl, // particle undergoing wall-collision in this TS
28};
29
30
31namespace maia {
32namespace lpt {
33namespace baseProperty {
34
36constexpr std::underlying_type<LptBaseProperty>::type p(const LptBaseProperty property) {
37 return static_cast<std::underlying_type<LptBaseProperty>::type>(property);
38}
39
40using BitsetType = std::bitset<p(LptBaseProperty::NumProperties)>;
41
42
43} // namespace baseProperty
44} // namespace lpt
45} // namespace maia
46
47#endif // LPTBASEPROPERTIES_H_
LptBaseProperty
Lpt particle Property Labels.
constexpr std::underlying_type< LptBaseProperty >::type p(const LptBaseProperty property)
Converts property name to underlying integer value.
std::bitset< p(LptBaseProperty::NumProperties)> BitsetType
Namespace for auxiliary functions/classes.