/home/runner/work/spades/spades/Source/MessageParticleContainer.H Source File

SPADES API: /home/runner/work/spades/spades/Source/MessageParticleContainer.H Source File
SPADES API
MessageParticleContainer.H
Go to the documentation of this file.
1#ifndef MESSAGEPARTICLECONTAINER_H
2#define MESSAGEPARTICLECONTAINER_H
3#include <AMReX.H>
4#include <AMReX_AmrCore.H>
5#include <AMReX_AmrParGDB.H>
6#include <AMReX_Random.H>
8#include "MessageData.H"
9#include "MessageOps.H"
10#include "Utilities.H"
11
15namespace spades::particles {
16
20 MessageTypes::NTYPES,
21 0,
22 0,
23 MessageRealData::ncomps,
24 MessageIntData::ncomps>
25{
26public:
31 static std::string identifier() { return "messages"; }
32
38 explicit MessageParticleContainer(amrex::AmrParGDB* par_gdb, int ngrow = 0);
39
48 const amrex::Vector<amrex::Geometry>& geom,
49 const amrex::Vector<amrex::DistributionMapping>& dmap,
50 const amrex::Vector<amrex::BoxArray>& ba,
51 int ngrow = 0);
52
57 void initialize_messages(const amrex::Real lookahead);
58
60 void sort() override;
61
63 void update_undefined();
64
66 void resolve_pairs();
67
69 amrex::Real compute_gvt();
70
75 void garbage_collect(const amrex::Real gvt);
76
77 void write_plot_file(const std::string& plt_filename) override
78 {
79 write_plot_file_impl(plt_filename, identifier());
80 };
81
83 void read_parameters() override;
84
86 void initialize_variable_names() override;
87
88private:
91
95 amrex::Real m_lambda{1.0};
96};
97} // namespace spades::particles
98#endif
Main SPADES message container.
Definition MessageParticleContainer.H:25
void initialize_variable_names() override
Initialize variable names.
Definition MessageParticleContainer.cpp:39
void read_parameters() override
Read user parameters.
Definition MessageParticleContainer.cpp:29
void resolve_pairs()
Resolve message pairs (remove message/anti-message pairs)
Definition MessageParticleContainer.cpp:340
amrex::Real compute_gvt()
Compute the minimum time stamp of the messages.
Definition MessageParticleContainer.cpp:473
int m_messages_per_lp
Initial messages per LP.
Definition MessageParticleContainer.H:90
void write_plot_file(const std::string &plt_filename) override
Write the particles to file.
Definition MessageParticleContainer.H:77
amrex::Real m_lambda
Definition MessageParticleContainer.H:95
MessageParticleContainer(amrex::AmrParGDB *par_gdb, int ngrow=0)
Constructor.
Definition MessageParticleContainer.cpp:6
static std::string identifier()
Class identifier name.
Definition MessageParticleContainer.H:31
void garbage_collect(const amrex::Real gvt)
Perform garbage collection.
Definition MessageParticleContainer.cpp:446
void initialize_messages(const amrex::Real lookahead)
Initialize the messages.
Definition MessageParticleContainer.cpp:78
void sort() override
Sort the messages.
Definition MessageParticleContainer.cpp:196
void update_undefined()
Update the undefined messages.
Definition MessageParticleContainer.cpp:203
Main SPADES particle container.
Definition SpadesParticleContainer.H:35
void write_plot_file_impl(const std::string &plt_filename, const std::string &name)
Definition SpadesParticleContainer.H:760
SPADES particles.
Definition EntityData.H:7