/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/common/assembly_schedule.hh Source File#
|
DiFfRG
Discretization Framework for functional Renormalization Group flows
|
assembly_schedule.hh
Go to the documentation of this file.
114 inline AssemblySchedule make_assembly_schedule(const uint n_local_cells, const uint thread_budget,
123 static_cast<uint>(std::clamp(std::llround(chunk_work_ns / cost), 1ll, static_cast<long long>(chunk_cap)));
167 template <typename Discretization> uint n_locally_owned_cells(const Discretization &discretization)
A hierarchical configuration tree, readable from JSON and TOML files.
Definition config_tree.hh:32
constexpr double algebraic
Algebraic couplings without momentum quadrature, e.g. LDG's level-to-level transfers.
Definition assembly_schedule.hh:50
constexpr double local_fe
Local FE work only: mass matrices, refinement indicators. ~0.2-0.3 us/cell for CG p=3.
Definition assembly_schedule.hh:48
constexpr double momentum_integral
Definition assembly_schedule.hh:53
constexpr double worker_work_ns
Definition assembly_schedule.hh:70
constexpr double chunk_work_ns
Definition assembly_schedule.hh:61
constexpr uint chunk_cap
Definition assembly_schedule.hh:74
Definition complex_math.hh:10
auto locally_owned_cells(const dealii::DoFHandler< dim > &dof_handler)
The cells this rank assembles.
Definition assembly_schedule.hh:154
AssemblySchedule make_assembly_schedule(const uint n_local_cells, const uint thread_budget, const double cost_ns, const AssemblyScheduleOverrides &overrides={})
Derive one mesh_loop schedule from the cost of a cell.
Definition assembly_schedule.hh:114
uint n_locally_owned_cells(const Discretization &discretization)
How many cells locally_owned_cells() yields.
Definition assembly_schedule.hh:167
Overrides, if really wanted by the user: /discretization/{mesh_workers,batch_size}...
Definition assembly_schedule.hh:82
std::optional< uint > queue_length
Definition assembly_schedule.hh:83
std::optional< uint > chunk_size
Definition assembly_schedule.hh:84
static AssemblyScheduleOverrides from_config(const ConfigTree &config)
Definition assembly_schedule.hh:86
The two trailing arguments of dealii::MeshWorker::mesh_loop.
Definition assembly_schedule.hh:30
uint queue_length
mesh_loop's queue_length: how many work items are live in the pipeline at once.
Definition assembly_schedule.hh:32
friend bool operator==(const AssemblySchedule &, const AssemblySchedule &)=default
uint chunk_size
mesh_loop's chunk_size: cells per work item, processed back-to-back by one worker.
Definition assembly_schedule.hh:34
Generated by