#include <ParticleProjector.H>
Collaboration diagram for ParticleProjector:
Public Member Functions | |
ParticleProjector () | |
default constructor | |
ParticleProjector (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_crseGrids, const ProblemDomain &a_domain, int a_nRefCrse, Real a_dx) | |
defining constructor -- calls matching define function | |
~ParticleProjector () | |
destructor | |
void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_crseGrids, const ProblemDomain &a_domain, int a_nRefCrse, Real a_dx) |
define function | |
void | projectForce (LevelData< FArrayBox > &a_force, const LevelData< BinFab< DragParticle > > &a_particles) |
projects force due to particles | |
void | setSpreadingRadius (const Real a_rad) |
set spreading radius for MLC part of algorithm | |
void | setCorrectionRadius (const Real a_rad) |
set correction radius for MLC part of algorithm | |
Real | getSpreadingRadius () const |
get spreading radius for MLC part of algorithm | |
Real | getCorrectionRadius () const |
get correction radius for MLC part of algorithm | |
void | doImages (bool m_doImages) |
set whether to do image particles at physical boundaries | |
bool | doImages () const |
do images at physical boundaries? | |
bool | isDefined () const |
void | setVerbosity (int a_verbosity) |
set verbosity level | |
int | verbosity () const |
get verbosity level | |
Protected Member Functions | |
void | computeD (LevelData< FArrayBox > &a_D, const LevelData< BinFab< DragParticle > > &a_particles) |
void | solveForProjForce (LevelData< FArrayBox > &a_projectedForce, const LevelData< FArrayBox > &a_D, const LevelData< BinFab< DragParticle > > &a_particles) |
void | addImageEffects (FArrayBox &a_rhs, int a_buffer, int a_dir) const |
add effects of image particles near boundary to D in the dir direction | |
void | defineImages (const LevelData< BinFab< DragParticle > > &a_particles) |
compute image particles near boundary, if necessary | |
DragParticle * | createImageParticle (const DragParticle &a_particle, Real bndryLoc, int dir, Side::LoHiSide a_side) |
helper function | |
void | doInfiniteDomainSolve (FArrayBox &phi, const FArrayBox &rhs) const |
void | doNeumannSolve (FArrayBox &a_phi, const FArrayBox &a_rhs) const |
quick test function | |
void | setDefaultValues () |
set default values | |
int | infiniteDomainPadding () const |
amount to pad domain for infinite domain solve | |
Protected Attributes | |
DisjointBoxLayout | m_grids |
grids on this level | |
DisjointBoxLayout | m_crseGrids |
coarse grids (undefined if no coarser level | |
ProblemDomain | m_domain |
int | m_nRefCrse |
Real | m_dx |
cell spacing | |
Real | m_spreadingRadius |
spreading radius for MLC | |
Real | m_correctionRadius |
correction radius for MLC | |
int | m_s |
parameter for infinite domain solve | |
int | m_s1 |
parameter for infinite domain solve | |
int | m_patchSize |
parameter for infinite domain solve | |
List< DragParticle > | m_imageParticles |
list of image particles used to approximate solid walls | |
bool | m_doImages |
should we do the image particle computation near physical boundaries? | |
bool | m_isDefined |
int | m_verbosity |
verbosity level |
The ParticleProjector class encapsulates the functionality to take the individual drag forces due to a collection of particles and apply them to the mesh in an approximation to P(f), which may be then used as a source term for a Navier-Stokes advance step.
|
default constructor
|
|
defining constructor -- calls matching define function If no coarser level, a_crseGrids is an undefined DBL. |
|
destructor
|
|
add effects of image particles near boundary to D in the dir direction a_buffer is the width of cells near the boundary where the effects are to be computed. |
|
|
|
helper function
|
|
define function
|
|
compute image particles near boundary, if necessary Note that this function is not const because the master list of image particles is incremented |
|
do images at physical boundaries?
|
|
set whether to do image particles at physical boundaries
|
|
|
|
quick test function
|
|
get correction radius for MLC part of algorithm
|
|
get spreading radius for MLC part of algorithm
|
|
amount to pad domain for infinite domain solve
|
|
|
|
projects force due to particles given the collection of DragParticles, returns the projection of the force at cell centers in a_force, suitable for use as a source term in a fluid advance. Assumes that all particles have already computed their forces. |
|
set correction radius for MLC part of algorithm
|
|
set default values
|
|
set spreading radius for MLC part of algorithm
|
|
set verbosity level
|
|
|
|
get verbosity level
|
|
correction radius for MLC
|
|
coarse grids (undefined if no coarser level
|
|
should we do the image particle computation near physical boundaries?
|
|
|
|
cell spacing
|
|
grids on this level
|
|
list of image particles used to approximate solid walls
|
|
|
|
|
|
parameter for infinite domain solve
|
|
parameter for infinite domain solve s is the total amount domain will be grown in infinite domain solve |
|
parameter for infinite domain solve s1 is the amount that the domain is grown for the first solve in the infinite domain algorithm. This is also the amount by which the RHS may be grown. |
|
spreading radius for MLC
|
|
verbosity level
|