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