MFIX-Exa
|
#include <mfix_pc.H>
Public Types | |
using | MFIXParIter = amrex::ParIter< 0, 0, SoArealData::count, SoAintData::count > |
using | MFIXParConstIter = amrex::ParConstIter< 0, 0, SoArealData::count, SoAintData::count > |
Public Member Functions | |
int | NumberOfParticles (MFIXParIter &pti) |
void | setTotalNumParticles (const long num_particles) |
long | getTotalNumParticles () |
MFIXParticleContainer (amrex::AmrCore *amr_core, MFIXInitialConditions &initial_conditions, MFIXBoundaryConditions &boundary_conditions, MFIXSolidsPhase &solids, MFIXDEM &dem, MFIXPIC &pic, MFIXFluidPhase &fluid, MFIXReactions &reactions) | |
MFIXParticleContainer (const amrex::Geometry &geom, const amrex::DistributionMapping &dmap, const amrex::BoxArray &ba, const int nlev, MFIXInitialConditions &initial_conditions, MFIXBoundaryConditions &boundary_conditions, MFIXSolidsPhase &solids, MFIXDEM &dem, MFIXPIC &pic, MFIXFluidPhase &fluid, MFIXReactions &reactions) | |
void | define () |
virtual | ~MFIXParticleContainer () |
void | InitData () |
void | InitParticlesAscii (const std::string &file) |
void | InitParticlesAuto (amrex::EBFArrayBoxFactory *particle_ebfactory) |
void | InitParticlesRuntimeVariables (const int adv_enthalpy) |
void | RemoveOutOfRange (int lev, const amrex::EBFArrayBoxFactory *ebfactory, const amrex::MultiFab *ls_phi, int ls_refinement) |
void | ReportParticleGenerationStats (int lev) |
void | Replicate (amrex::IntVect &Nrep, amrex::Geometry &geom, amrex::DistributionMapping &dmap, amrex::BoxArray &ba) |
void | AllocData () |
void | PrintParticleCounts () |
amrex::Vector< std::map< std::pair< int, int >, amrex::NeighborList< ParticleType > > > | get_neighbor_list () |
void | EvolveParticles (int lev, int nstep, amrex::Real dt, amrex::Real time, amrex::RealVect &gravity, amrex::EBFArrayBoxFactory *ebfactory, amrex::EBFArrayBoxFactory *particle_ebfactory, const amrex::MultiFab *ls_phi, const int ls_refinement, amrex::MultiFab *cost, std::string &knapsack_weight_type, int &nsubsteps, int compute_mass_balance) |
void | mfix_pc_inflow (int const lev, int const is_dem, int const is_pic, amrex::Real dt, const int advect_enthalpy, amrex::EBFArrayBoxFactory *factory) |
void | MFIX_PC_InitCollisionParams () |
void | UpdateCost (amrex::MultiFab *cost_mf, const MFIXParIter &particle_tile_iterator, const std::string &cost_type, const amrex::Real &wall_time) const |
void | output (int estatus, int finish, int nstep, amrex::Real dt, amrex::Real time) |
const MFIXFluidPhase & | get_fluid () const |
const MFIXSolidsPhase & | get_solids () const |
const MFIXDEM & | get_dem () const |
const MFIXPIC & | get_pic () const |
const MFIXReactions & | get_reactions () const |
amrex::Real | get_mass_prod (int const idx) |
amrex::Real | get_mass_accum (int const idx) |
amrex::Real | get_mass_inflow (int const idx) |
amrex::Real | get_mass_outflow (int const idx) |
void | ComputeAverageDensities (const int lev, const amrex::Real time, const std::string &basename, const amrex::Vector< amrex::Real > &avg_ro_p, const amrex::Vector< amrex::Real > &avg_region_x_w, const amrex::Vector< amrex::Real > &avg_region_x_e, const amrex::Vector< amrex::Real > &avg_region_y_s, const amrex::Vector< amrex::Real > &avg_region_y_n, const amrex::Vector< amrex::Real > &avg_region_z_b, const amrex::Vector< amrex::Real > &avg_region_z_t) |
void | ComputeAverageVelocities (const int lev, const amrex::Real time, const std::string &basename, const amrex::Vector< amrex::Real > &avg_vel_p, const amrex::Vector< amrex::Real > &avg_region_x_w, const amrex::Vector< amrex::Real > &avg_region_x_e, const amrex::Vector< amrex::Real > &avg_region_y_s, const amrex::Vector< amrex::Real > &avg_region_y_n, const amrex::Vector< amrex::Real > &avg_region_z_b, const amrex::Vector< amrex::Real > &avg_region_z_t) |
void | ComputeAverageTemperatures (const int lev, const amrex::Real time, const std::string &basename, const amrex::Vector< amrex::Real > &avg_T_p, const amrex::Vector< amrex::Real > &avg_region_x_w, const amrex::Vector< amrex::Real > &avg_region_x_e, const amrex::Vector< amrex::Real > &avg_region_y_s, const amrex::Vector< amrex::Real > &avg_region_y_n, const amrex::Vector< amrex::Real > &avg_region_z_b, const amrex::Vector< amrex::Real > &avg_region_z_t) |
void | MFIX_PC_SolidsVelocityDeposition (int lev, amrex::Array< amrex::MultiFab *, 3 > &vel_s_mf, const amrex::FabArray< amrex::EBCellFlagFab > *flags) |
void | PICHydroStep (int lev, const bool apply_forces, const bool update_parcels, const bool use_taylor_approx, const amrex::Real advance_vel_p, amrex::Real dt, amrex::RealVect &gravity, amrex::Vector< amrex::Array< amrex::MultiFab *, 3 > > &vel_s_in, amrex::MultiFab &ep_s_out, amrex::Array< amrex::MultiFab *, 3 > &vel_s_out, const amrex::MultiFab *volfrac, const amrex::FabArray< amrex::EBCellFlagFab > *flags, amrex::EBFArrayBoxFactory *ebfactory, const int ls_refinement, const amrex::MultiFab *ls_phi) |
void | MFIX_PC_AdvanceParcels (amrex::Real dt, amrex::Vector< amrex::MultiFab * > &cost, std::string &knapsack_weight_type) |
void | setSortingBinSizes (amrex::IntVect sorting_bin) |
amrex::IntVect const & | getSortingBinSizes () const noexcept |
bool | sortNow (int const a_nstep) const noexcept |
void | partitionParticleGrids (int lev, const amrex::BoxArray &fba, const amrex::DistributionMapping &fdmap, amrex::Real imbalance_toler, amrex::Real partition_factor) |
void | setMaxGridSize (const amrex::IntVect &rhs) |
void | setMaxGridSize (int size_x, int size_y, int size_z) |
void | setSortInt (int sort_particle_int) |
void | setReduceGhostParticles (bool reduce) |
void | setGreedyRegrid (int dir, bool partition_3d, int min_size=2) |
const amrex::IntVect & | MaxGridSize () const noexcept |
amrex::Real | particleImbalance () |
void | countParticle (int lev, const amrex::BoxList &bl, const amrex::IntVect &binsize, amrex::Vector< int > &pcounts, amrex::Vector< int > &poffsets) |
void | countParticle (int lev, amrex::iMultiFab &np_mf) |
void | verifyParticleCount () |
void | printGhostParticleCount () |
void | ReadParameters () |
void | setParticleFluidGridMap (const amrex::Vector< int > &boxmap) |
void | ComputeMassAccum (int const a_offset) |
void | ComputeMassProduction (int const a_lev, amrex::Real const a_dt) |
void | ComputeMassOutflow (int const a_lev) |
void | ResetMassBalance (int const a_n) |
int | UseConstraint () noexcept |
void | ImposeMean (int const a_lev) |
Public Attributes | |
const runtimeRealData | m_runtimeRealData |
using MFIXParticleContainer::MFIXParConstIter = amrex::ParConstIter<0,0,SoArealData::count,SoAintData::count> |
using MFIXParticleContainer::MFIXParIter = amrex::ParIter<0,0,SoArealData::count,SoAintData::count> |
MFIXParticleContainer::MFIXParticleContainer | ( | amrex::AmrCore * | amr_core, |
MFIXInitialConditions & | initial_conditions, | ||
MFIXBoundaryConditions & | boundary_conditions, | ||
MFIXSolidsPhase & | solids, | ||
MFIXDEM & | dem, | ||
MFIXPIC & | pic, | ||
MFIXFluidPhase & | fluid, | ||
MFIXReactions & | reactions | ||
) |
MFIXParticleContainer::MFIXParticleContainer | ( | const amrex::Geometry & | geom, |
const amrex::DistributionMapping & | dmap, | ||
const amrex::BoxArray & | ba, | ||
const int | nlev, | ||
MFIXInitialConditions & | initial_conditions, | ||
MFIXBoundaryConditions & | boundary_conditions, | ||
MFIXSolidsPhase & | solids, | ||
MFIXDEM & | dem, | ||
MFIXPIC & | pic, | ||
MFIXFluidPhase & | fluid, | ||
MFIXReactions & | reactions | ||
) |
|
inlinevirtual |
void MFIXParticleContainer::AllocData | ( | ) |
void MFIXParticleContainer::ComputeAverageDensities | ( | const int | lev, |
const amrex::Real | time, | ||
const std::string & | basename, | ||
const amrex::Vector< amrex::Real > & | avg_ro_p, | ||
const amrex::Vector< amrex::Real > & | avg_region_x_w, | ||
const amrex::Vector< amrex::Real > & | avg_region_x_e, | ||
const amrex::Vector< amrex::Real > & | avg_region_y_s, | ||
const amrex::Vector< amrex::Real > & | avg_region_y_n, | ||
const amrex::Vector< amrex::Real > & | avg_region_z_b, | ||
const amrex::Vector< amrex::Real > & | avg_region_z_t | ||
) |
References SoArealData::density, and NumberOfParticles().
void MFIXParticleContainer::ComputeAverageTemperatures | ( | const int | lev, |
const amrex::Real | time, | ||
const std::string & | basename, | ||
const amrex::Vector< amrex::Real > & | avg_T_p, | ||
const amrex::Vector< amrex::Real > & | avg_region_x_w, | ||
const amrex::Vector< amrex::Real > & | avg_region_x_e, | ||
const amrex::Vector< amrex::Real > & | avg_region_y_s, | ||
const amrex::Vector< amrex::Real > & | avg_region_y_n, | ||
const amrex::Vector< amrex::Real > & | avg_region_z_b, | ||
const amrex::Vector< amrex::Real > & | avg_region_z_t | ||
) |
References NumberOfParticles(), and SoArealData::temperature.
void MFIXParticleContainer::ComputeAverageVelocities | ( | const int | lev, |
const amrex::Real | time, | ||
const std::string & | basename, | ||
const amrex::Vector< amrex::Real > & | avg_vel_p, | ||
const amrex::Vector< amrex::Real > & | avg_region_x_w, | ||
const amrex::Vector< amrex::Real > & | avg_region_x_e, | ||
const amrex::Vector< amrex::Real > & | avg_region_y_s, | ||
const amrex::Vector< amrex::Real > & | avg_region_y_n, | ||
const amrex::Vector< amrex::Real > & | avg_region_z_b, | ||
const amrex::Vector< amrex::Real > & | avg_region_z_t | ||
) |
References SoArealData::mass, NumberOfParticles(), SoArealData::velx, SoArealData::vely, and SoArealData::velz.
void MFIXParticleContainer::ComputeMassAccum | ( | int const | a_offset | ) |
References SoArealData::mass, and SoArealData::statwt.
void MFIXParticleContainer::ComputeMassOutflow | ( | int const | a_lev | ) |
References SoArealData::mass, and SoArealData::statwt.
void MFIXParticleContainer::ComputeMassProduction | ( | int const | a_lev, |
amrex::Real const | a_dt | ||
) |
References SoArealData::statwt.
void MFIXParticleContainer::countParticle | ( | int | lev, |
amrex::iMultiFab & | np_mf | ||
) |
void MFIXParticleContainer::countParticle | ( | int | lev, |
const amrex::BoxList & | bl, | ||
const amrex::IntVect & | binsize, | ||
amrex::Vector< int > & | pcounts, | ||
amrex::Vector< int > & | poffsets | ||
) |
Referenced by partitionParticleGrids().
void MFIXParticleContainer::define | ( | ) |
References SoArealData::count, runtimeRealData::count, m_runtimeRealData, and ReadParameters().
void MFIXParticleContainer::EvolveParticles | ( | int | lev, |
int | nstep, | ||
amrex::Real | dt, | ||
amrex::Real | time, | ||
amrex::RealVect & | gravity, | ||
amrex::EBFArrayBoxFactory * | ebfactory, | ||
amrex::EBFArrayBoxFactory * | particle_ebfactory, | ||
const amrex::MultiFab * | ls_phi, | ||
const int | ls_refinement, | ||
amrex::MultiFab * | cost, | ||
std::string & | knapsack_weight_type, | ||
int & | nsubsteps, | ||
int | compute_mass_balance | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by mfix::PIC_to_DEM().
|
inline |
|
inline |
|
inline |
|
inlinenoexcept |
|
inline |
void MFIXParticleContainer::ImposeMean | ( | int const | a_lev | ) |
References SoArealData::velx, SoArealData::vely, and SoArealData::velz.
void MFIXParticleContainer::InitData | ( | ) |
void MFIXParticleContainer::InitParticlesAscii | ( | const std::string & | file | ) |
References SoArealData::convection, SoArealData::count, SoAintData::count, SoArealData::cp_s, SoArealData::density, SoArealData::dragcoeff, SoArealData::dragx, SoArealData::dragy, SoArealData::dragz, SoArealData::mass, SoArealData::omegax, SoArealData::omegay, SoArealData::omegaz, SoArealData::oneOverI, SoAintData::phase, SoArealData::radius, SoAintData::state, SoArealData::statwt, SoArealData::temperature, SoArealData::velx, SoArealData::vely, SoArealData::velz, and SoArealData::volume.
void MFIXParticleContainer::InitParticlesAuto | ( | amrex::EBFArrayBoxFactory * | particle_ebfactory | ) |
void MFIXParticleContainer::InitParticlesRuntimeVariables | ( | const int | adv_enthalpy | ) |
References SoArealData::cp_s, and SoAintData::phase.
|
inlinenoexcept |
void MFIXParticleContainer::MFIX_PC_AdvanceParcels | ( | amrex::Real | dt, |
amrex::Vector< amrex::MultiFab * > & | cost, | ||
std::string & | knapsack_weight_type | ||
) |
void MFIXParticleContainer::mfix_pc_inflow | ( | int const | lev, |
int const | is_dem, | ||
int const | is_pic, | ||
amrex::Real | dt, | ||
const int | advect_enthalpy, | ||
amrex::EBFArrayBoxFactory * | factory | ||
) |
References SoArealData::convection, SoArealData::count, SoArealData::cp_s, SoArealData::density, SoArealData::dragcoeff, SoArealData::dragx, SoArealData::dragy, SoArealData::dragz, SoArealData::mass, SoArealData::omegax, SoArealData::omegay, SoArealData::omegaz, SoArealData::oneOverI, SoAintData::phase, SoArealData::radius, SoAintData::state, SoArealData::statwt, SoArealData::temperature, SoArealData::velx, SoArealData::vely, SoArealData::velz, and SoArealData::volume.
void MFIXParticleContainer::MFIX_PC_InitCollisionParams | ( | ) |
void MFIXParticleContainer::MFIX_PC_SolidsVelocityDeposition | ( | int | lev, |
amrex::Array< amrex::MultiFab *, 3 > & | vel_s_mf, | ||
const amrex::FabArray< amrex::EBCellFlagFab > * | flags | ||
) |
Deposit parcel velocity to the grid
|
inline |
Referenced by ComputeAverageDensities(), ComputeAverageTemperatures(), and ComputeAverageVelocities().
void MFIXParticleContainer::output | ( | int | estatus, |
int | finish, | ||
int | nstep, | ||
amrex::Real | dt, | ||
amrex::Real | time | ||
) |
Referenced by MFIXReadWrite::output().
Real MFIXParticleContainer::particleImbalance | ( | ) |
void MFIXParticleContainer::partitionParticleGrids | ( | int | lev, |
const amrex::BoxArray & | fba, | ||
const amrex::DistributionMapping & | fdmap, | ||
amrex::Real | imbalance_toler, | ||
amrex::Real | partition_factor | ||
) |
References countParticle().
void MFIXParticleContainer::PICHydroStep | ( | int | lev, |
const bool | apply_forces, | ||
const bool | update_parcels, | ||
const bool | use_taylor_approx, | ||
const amrex::Real | advance_vel_p, | ||
amrex::Real | dt, | ||
amrex::RealVect & | gravity, | ||
amrex::Vector< amrex::Array< amrex::MultiFab *, 3 > > & | vel_s_in, | ||
amrex::MultiFab & | ep_s_out, | ||
amrex::Array< amrex::MultiFab *, 3 > & | vel_s_out, | ||
const amrex::MultiFab * | volfrac, | ||
const amrex::FabArray< amrex::EBCellFlagFab > * | flags, | ||
amrex::EBFArrayBoxFactory * | ebfactory, | ||
const int | ls_refinement, | ||
const amrex::MultiFab * | ls_phi | ||
) |
void MFIXParticleContainer::printGhostParticleCount | ( | ) |
void MFIXParticleContainer::PrintParticleCounts | ( | ) |
void MFIXParticleContainer::ReadParameters | ( | ) |
Referenced by define().
void MFIXParticleContainer::RemoveOutOfRange | ( | int | lev, |
const amrex::EBFArrayBoxFactory * | ebfactory, | ||
const amrex::MultiFab * | ls_phi, | ||
int | ls_refinement | ||
) |
References interp_level_set(), mfix::m_run_type, RunType::PIC2DEM, SoArealData::radius, and SoArealData::statwt.
void MFIXParticleContainer::Replicate | ( | amrex::IntVect & | Nrep, |
amrex::Geometry & | geom, | ||
amrex::DistributionMapping & | dmap, | ||
amrex::BoxArray & | ba | ||
) |
References SoArealData::convection, SoArealData::count, SoArealData::cp_s, SoArealData::density, SoArealData::dragcoeff, SoArealData::dragx, SoArealData::dragy, SoArealData::dragz, SoArealData::mass, SoArealData::omegax, SoArealData::omegay, SoArealData::omegaz, SoArealData::oneOverI, SoAintData::phase, SoArealData::radius, SoAintData::state, SoArealData::statwt, SoArealData::temperature, SoArealData::velx, SoArealData::vely, SoArealData::velz, and SoArealData::volume.
Referenced by mfix::Restart().
void MFIXParticleContainer::ReportParticleGenerationStats | ( | int | lev | ) |
void MFIXParticleContainer::ResetMassBalance | ( | int const | a_n | ) |
|
inline |
|
inline |
|
inline |
void MFIXParticleContainer::setParticleFluidGridMap | ( | const amrex::Vector< int > & | boxmap | ) |
Referenced by mfix::Restart().
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by mfix::PIC_to_DEM(), and mfix::PIC_to_PIC().
|
inlinenoexcept |
void MFIXParticleContainer::UpdateCost | ( | amrex::MultiFab * | cost_mf, |
const MFIXParIter & | particle_tile_iterator, | ||
const std::string & | cost_type, | ||
const amrex::Real & | wall_time | ||
) | const |
Referenced by mfix::Restart().
|
inlinenoexcept |
void MFIXParticleContainer::verifyParticleCount | ( | ) |
const runtimeRealData MFIXParticleContainer::m_runtimeRealData |
Referenced by LagrangianMonitor::AveragedProperty::average(), define(), LagrangianMonitor::FlowRate::flow_rate(), LagrangianMonitor::AveragedProperty::mass_weighted_average(), LagrangianMonitor::FlowRate::mass_weighted_flow_rate(), LagrangianMonitor::GeneralProperty::max(), mfix::mfix_calc_txfr_particle(), LagrangianMonitor::GeneralProperty::min(), mfix::Restart(), mfix::restart_pc_from_new_chkpt(), LagrangianMonitor::BaseMonitor::setup_variables(), LagrangianMonitor::AveragedProperty::stddev(), LagrangianMonitor::GeneralProperty::sum(), LagrangianMonitor::AveragedProperty::volume_weighted_average(), and LagrangianMonitor::FlowRate::volume_weighted_flow_rate().