ProcessOp Struct Reference
|
SPADES API
|
spades::models::Phold::ProcessOp Struct Reference
A struct that defines an operator for processing messages. More...
#include <Phold.H>
Public Member Functions | |
| template<class MParrs , class EParrs > | |
| AMREX_GPU_DEVICE int | operator() (const MParrs &msg_parrs, const EParrs &ent_parrs, const amrex::IntVect &iv, const int rcv_msg, const int snd_msg, const int ent, const int ent_idx, amrex::RandomEngine const &engine) const |
| Callable operator to process a message. | |
Public Attributes | |
| amrex::Real | m_lookahead {1.0} |
| Lookahead value (optional user input) | |
| amrex::Real | m_lambda {1.0} |
| int | m_entities_per_lp {1} |
| Number of entities per logical process (optional user input) | |
| amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > | m_dx |
| Spatial discretization. | |
| amrex::Box | m_dom |
| Domain. | |
| amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > | m_plo |
| Problem low bounds. | |
Detailed Description
A struct that defines an operator for processing messages.
Member Function Documentation
◆ operator()()
template<class MParrs , class EParrs >
|
inline |
Callable operator to process a message.
- Template Parameters
-
MParrs type of the message particle array EParrs type of the entity particle array
- Parameters
-
msg_parrs message particle array ent_parrs entity particle array iv cell index of the particle rcv_msg index of the received message snd_msg index of the sending message particle ent global ID of the entity ent_idx index of the entity engine random engine
- Returns
- n_sent_messages number of sent messages
62 {
65 const auto ts =
66 msg_parrs
67 .m_rdata[particles::CommonRealData::timestamp][rcv_msg];
68
69 msg_parrs
70 .m_rdata[particles::MessageRealData::old_timestamp][rcv_msg] =
71 ent_parrs
72 .m_rdata[particles::CommonRealData::timestamp][ent_idx];
73 ent_parrs.m_rdata[particles::CommonRealData::timestamp][ent_idx] =
74 ts;
75 msg_parrs.m_idata[particles::CommonIntData::type_id][rcv_msg] =
77
78 const auto ent_lvt =
79 ent_parrs
80 .m_rdata[particles::CommonRealData::timestamp][ent_idx];
81 const amrex::IntVect iv_dest(AMREX_D_DECL(
82 amrex::Random_int(dhi[0] - dlo[0] + 1, engine) + dlo[0],
83 amrex::Random_int(dhi[1] - dlo[1] + 1, engine) + dlo[1],
84 amrex::Random_int(dhi[2] - dlo[2] + 1, engine) + dlo[2]));
85 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM> pos = {
86 AMREX_D_DECL(
90 const int rcv_ent =
92 const amrex::Real next_ts =
94
95 particles::CreateMessage()(
96 snd_msg, msg_parrs, next_ts, pos, iv_dest,
99 const int n_sent_messages = 1;
100 return n_sent_messages;
101 }
amrex::Real random_exponential(const amrex::Real lambda)
Exponential distribution.
Definition Utilities.cpp:4
int m_entities_per_lp
Number of entities per logical process (optional user input)
Definition Phold.H:112
amrex::Real m_lookahead
Lookahead value (optional user input)
Definition Phold.H:104
amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > m_dx
Spatial discretization.
Definition Phold.H:115
amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > m_plo
Problem low bounds.
Definition Phold.H:121
static constexpr int PROCESSED
Processed message.
Definition MessageData.H:38
Here is the call graph for this function:
Member Data Documentation
◆ m_dom
| amrex::Box spades::models::Phold::ProcessOp::m_dom |
Domain.
◆ m_dx
| amrex::GpuArray<amrex::Real, AMREX_SPACEDIM> spades::models::Phold::ProcessOp::m_dx |
Spatial discretization.
◆ m_entities_per_lp
| int spades::models::Phold::ProcessOp::m_entities_per_lp {1} |
Number of entities per logical process (optional user input)
112{1};
◆ m_lambda
| amrex::Real spades::models::Phold::ProcessOp::m_lambda {1.0} |
Width of exponential distribution (optional user input) smaller values of lambda = larger variance in random values larger values of lambda = smaller variance in random values
109{1.0};
◆ m_lookahead
| amrex::Real spades::models::Phold::ProcessOp::m_lookahead {1.0} |
Lookahead value (optional user input)
104{1.0};
◆ m_plo
| amrex::GpuArray<amrex::Real, AMREX_SPACEDIM> spades::models::Phold::ProcessOp::m_plo |
Problem low bounds.
The documentation for this struct was generated from the following file:
- /home/runner/work/spades/spades/Source/Models/Phold.H
Generated by