MFIX-Exa
Public Types | Public Member Functions | Public Attributes | List of all members
MFIXParticleContainer Class Referencefinal

#include <mfix_pc.H>

Inheritance diagram for MFIXParticleContainer:

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
 

Member Typedef Documentation

◆ MFIXParConstIter

◆ MFIXParIter

Constructor & Destructor Documentation

◆ MFIXParticleContainer() [1/2]

MFIXParticleContainer::MFIXParticleContainer ( amrex::AmrCore *  amr_core,
MFIXInitialConditions &  initial_conditions,
MFIXBoundaryConditions &  boundary_conditions,
MFIXSolidsPhase &  solids,
MFIXDEM &  dem,
MFIXPIC &  pic,
MFIXFluidPhase &  fluid,
MFIXReactions &  reactions 
)

◆ MFIXParticleContainer() [2/2]

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 
)

◆ ~MFIXParticleContainer()

virtual MFIXParticleContainer::~MFIXParticleContainer ( )
inlinevirtual

Member Function Documentation

◆ AllocData()

void MFIXParticleContainer::AllocData ( )

◆ ComputeAverageDensities()

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 
)

◆ ComputeAverageTemperatures()

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 
)

◆ ComputeAverageVelocities()

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 
)

◆ ComputeMassAccum()

void MFIXParticleContainer::ComputeMassAccum ( int const  a_offset)

◆ ComputeMassOutflow()

void MFIXParticleContainer::ComputeMassOutflow ( int const  a_lev)

◆ ComputeMassProduction()

void MFIXParticleContainer::ComputeMassProduction ( int const  a_lev,
amrex::Real const  a_dt 
)

References SoArealData::statwt.

◆ countParticle() [1/2]

void MFIXParticleContainer::countParticle ( int  lev,
amrex::iMultiFab &  np_mf 
)

◆ countParticle() [2/2]

void MFIXParticleContainer::countParticle ( int  lev,
const amrex::BoxList &  bl,
const amrex::IntVect &  binsize,
amrex::Vector< int > &  pcounts,
amrex::Vector< int > &  poffsets 
)

Referenced by partitionParticleGrids().

◆ define()

void MFIXParticleContainer::define ( )

◆ EvolveParticles()

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 
)

◆ get_dem()

const MFIXDEM& MFIXParticleContainer::get_dem ( ) const
inline

◆ get_fluid()

const MFIXFluidPhase& MFIXParticleContainer::get_fluid ( ) const
inline

◆ get_mass_accum()

amrex::Real MFIXParticleContainer::get_mass_accum ( int const  idx)
inline

◆ get_mass_inflow()

amrex::Real MFIXParticleContainer::get_mass_inflow ( int const  idx)
inline

◆ get_mass_outflow()

amrex::Real MFIXParticleContainer::get_mass_outflow ( int const  idx)
inline

◆ get_mass_prod()

amrex::Real MFIXParticleContainer::get_mass_prod ( int const  idx)
inline

◆ get_neighbor_list()

amrex::Vector<std::map<std::pair<int, int>, amrex::NeighborList<ParticleType> > > MFIXParticleContainer::get_neighbor_list ( )
inline

Referenced by mfix::PIC_to_DEM().

◆ get_pic()

const MFIXPIC& MFIXParticleContainer::get_pic ( ) const
inline

◆ get_reactions()

const MFIXReactions& MFIXParticleContainer::get_reactions ( ) const
inline

◆ get_solids()

const MFIXSolidsPhase& MFIXParticleContainer::get_solids ( ) const
inline

◆ getSortingBinSizes()

amrex::IntVect const& MFIXParticleContainer::getSortingBinSizes ( ) const
inlinenoexcept

◆ getTotalNumParticles()

long MFIXParticleContainer::getTotalNumParticles ( )
inline

◆ ImposeMean()

void MFIXParticleContainer::ImposeMean ( int const  a_lev)

◆ InitData()

void MFIXParticleContainer::InitData ( )

◆ InitParticlesAscii()

void MFIXParticleContainer::InitParticlesAscii ( const std::string &  file)

◆ InitParticlesAuto()

void MFIXParticleContainer::InitParticlesAuto ( amrex::EBFArrayBoxFactory *  particle_ebfactory)

◆ InitParticlesRuntimeVariables()

void MFIXParticleContainer::InitParticlesRuntimeVariables ( const int  adv_enthalpy)

◆ MaxGridSize()

const amrex::IntVect& MFIXParticleContainer::MaxGridSize ( ) const
inlinenoexcept

◆ MFIX_PC_AdvanceParcels()

void MFIXParticleContainer::MFIX_PC_AdvanceParcels ( amrex::Real  dt,
amrex::Vector< amrex::MultiFab * > &  cost,
std::string &  knapsack_weight_type 
)

◆ mfix_pc_inflow()

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 
)

◆ MFIX_PC_InitCollisionParams()

void MFIXParticleContainer::MFIX_PC_InitCollisionParams ( )

◆ MFIX_PC_SolidsVelocityDeposition()

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

◆ NumberOfParticles()

int MFIXParticleContainer::NumberOfParticles ( MFIXParIter pti)
inline

◆ output()

void MFIXParticleContainer::output ( int  estatus,
int  finish,
int  nstep,
amrex::Real  dt,
amrex::Real  time 
)

Referenced by MFIXReadWrite::output().

◆ particleImbalance()

Real MFIXParticleContainer::particleImbalance ( )

◆ partitionParticleGrids()

void MFIXParticleContainer::partitionParticleGrids ( int  lev,
const amrex::BoxArray &  fba,
const amrex::DistributionMapping &  fdmap,
amrex::Real  imbalance_toler,
amrex::Real  partition_factor 
)

References countParticle().

◆ PICHydroStep()

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 
)

◆ printGhostParticleCount()

void MFIXParticleContainer::printGhostParticleCount ( )

◆ PrintParticleCounts()

void MFIXParticleContainer::PrintParticleCounts ( )

◆ ReadParameters()

void MFIXParticleContainer::ReadParameters ( )

Referenced by define().

◆ RemoveOutOfRange()

void MFIXParticleContainer::RemoveOutOfRange ( int  lev,
const amrex::EBFArrayBoxFactory *  ebfactory,
const amrex::MultiFab *  ls_phi,
int  ls_refinement 
)

◆ Replicate()

void MFIXParticleContainer::Replicate ( amrex::IntVect &  Nrep,
amrex::Geometry &  geom,
amrex::DistributionMapping &  dmap,
amrex::BoxArray &  ba 
)

◆ ReportParticleGenerationStats()

void MFIXParticleContainer::ReportParticleGenerationStats ( int  lev)

◆ ResetMassBalance()

void MFIXParticleContainer::ResetMassBalance ( int const  a_n)

◆ setGreedyRegrid()

void MFIXParticleContainer::setGreedyRegrid ( int  dir,
bool  partition_3d,
int  min_size = 2 
)
inline

◆ setMaxGridSize() [1/2]

void MFIXParticleContainer::setMaxGridSize ( const amrex::IntVect &  rhs)
inline

◆ setMaxGridSize() [2/2]

void MFIXParticleContainer::setMaxGridSize ( int  size_x,
int  size_y,
int  size_z 
)
inline

◆ setParticleFluidGridMap()

void MFIXParticleContainer::setParticleFluidGridMap ( const amrex::Vector< int > &  boxmap)

Referenced by mfix::Restart().

◆ setReduceGhostParticles()

void MFIXParticleContainer::setReduceGhostParticles ( bool  reduce)
inline

◆ setSortingBinSizes()

void MFIXParticleContainer::setSortingBinSizes ( amrex::IntVect  sorting_bin)
inline

◆ setSortInt()

void MFIXParticleContainer::setSortInt ( int  sort_particle_int)
inline

◆ setTotalNumParticles()

void MFIXParticleContainer::setTotalNumParticles ( const long  num_particles)
inline

◆ sortNow()

bool MFIXParticleContainer::sortNow ( int const  a_nstep) const
inlinenoexcept

◆ UpdateCost()

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().

◆ UseConstraint()

int MFIXParticleContainer::UseConstraint ( )
inlinenoexcept

◆ verifyParticleCount()

void MFIXParticleContainer::verifyParticleCount ( )

Member Data Documentation

◆ m_runtimeRealData

const runtimeRealData MFIXParticleContainer::m_runtimeRealData

The documentation for this class was generated from the following files: