Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

ParticleProjector Class Reference

class to manage projection of particle drag force onto the fluid More...

#include <ParticleProjector.H>

Collaboration diagram for ParticleProjector:

Collaboration graph
[legend]
List of all members.

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

DragParticlecreateImageParticle (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< DragParticlem_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


Detailed Description

class to manage projection of particle drag force onto the fluid

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.


Constructor & Destructor Documentation

ParticleProjector::ParticleProjector  ) 
 

default constructor

ParticleProjector::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

If no coarser level, a_crseGrids is an undefined DBL.

ParticleProjector::~ParticleProjector  ) 
 

destructor


Member Function Documentation

void ParticleProjector::addImageEffects FArrayBox a_rhs,
int  a_buffer,
int  a_dir
const [protected]
 

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.

void ParticleProjector::computeD LevelData< FArrayBox > &  a_D,
const LevelData< BinFab< DragParticle > > &  a_particles
[protected]
 

DragParticle* ParticleProjector::createImageParticle const DragParticle a_particle,
Real  bndryLoc,
int  dir,
Side::LoHiSide  a_side
[protected]
 

helper function

void ParticleProjector::define const DisjointBoxLayout a_grids,
const DisjointBoxLayout a_crseGrids,
const ProblemDomain a_domain,
int  a_nRefCrse,
Real  a_dx
 

define function

void ParticleProjector::defineImages const LevelData< BinFab< DragParticle > > &  a_particles  )  [protected]
 

compute image particles near boundary, if necessary

Note that this function is not const because the master list of image particles is incremented

bool ParticleProjector::doImages  )  const
 

do images at physical boundaries?

void ParticleProjector::doImages bool  m_doImages  ) 
 

set whether to do image particles at physical boundaries

void ParticleProjector::doInfiniteDomainSolve FArrayBox phi,
const FArrayBox rhs
const [protected]
 

void ParticleProjector::doNeumannSolve FArrayBox a_phi,
const FArrayBox a_rhs
const [protected]
 

quick test function

Real ParticleProjector::getCorrectionRadius  )  const
 

get correction radius for MLC part of algorithm

Real ParticleProjector::getSpreadingRadius  )  const
 

get spreading radius for MLC part of algorithm

int ParticleProjector::infiniteDomainPadding  )  const [protected]
 

amount to pad domain for infinite domain solve

bool ParticleProjector::isDefined  )  const
 

void ParticleProjector::projectForce LevelData< FArrayBox > &  a_force,
const LevelData< BinFab< DragParticle > > &  a_particles
 

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.

void ParticleProjector::setCorrectionRadius const Real  a_rad  ) 
 

set correction radius for MLC part of algorithm

void ParticleProjector::setDefaultValues  )  [protected]
 

set default values

void ParticleProjector::setSpreadingRadius const Real  a_rad  ) 
 

set spreading radius for MLC part of algorithm

void ParticleProjector::setVerbosity int  a_verbosity  ) 
 

set verbosity level

void ParticleProjector::solveForProjForce LevelData< FArrayBox > &  a_projectedForce,
const LevelData< FArrayBox > &  a_D,
const LevelData< BinFab< DragParticle > > &  a_particles
[protected]
 

int ParticleProjector::verbosity  )  const
 

get verbosity level


Member Data Documentation

Real ParticleProjector::m_correctionRadius [protected]
 

correction radius for MLC

DisjointBoxLayout ParticleProjector::m_crseGrids [protected]
 

coarse grids (undefined if no coarser level

bool ParticleProjector::m_doImages [protected]
 

should we do the image particle computation near physical boundaries?

ProblemDomain ParticleProjector::m_domain [protected]
 

Real ParticleProjector::m_dx [protected]
 

cell spacing

DisjointBoxLayout ParticleProjector::m_grids [protected]
 

grids on this level

List<DragParticle> ParticleProjector::m_imageParticles [protected]
 

list of image particles used to approximate solid walls

bool ParticleProjector::m_isDefined [protected]
 

int ParticleProjector::m_nRefCrse [protected]
 

int ParticleProjector::m_patchSize [protected]
 

parameter for infinite domain solve

int ParticleProjector::m_s [protected]
 

parameter for infinite domain solve

s is the total amount domain will be grown in infinite domain solve

int ParticleProjector::m_s1 [protected]
 

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.

Real ParticleProjector::m_spreadingRadius [protected]
 

spreading radius for MLC

int ParticleProjector::m_verbosity [protected]
 

verbosity level


The documentation for this class was generated from the following file:
Generated on Wed Jun 2 13:58:55 2004 for Chombo&INSwithParticles by doxygen 1.3.2