|
Public Member Functions |
| ParticleAMRNS () |
| ParticleAMRNS (AMRLevel *a_coarser_level_ptr, const Box &a_prob_domain, int a_level, int a_ref_ratio) |
| ParticleAMRNS (AMRLevel *a_coarser_level_ptr, const ProblemDomain &a_prob_domain, int a_level, int a_ref_ratio) |
virtual | ~ParticleAMRNS () |
virtual AMRLevel * | makeAMRLevel (AMRLevel *a_coarser_level_ptr, const Box &a_problem_domain, int a_level, int a_ref_ratio) const |
virtual AMRLevel * | makeAMRLevel (AMRLevel *a_coarser_level_ptr, const ProblemDomain &a_problem_domain, int a_level, int a_ref_ratio) const |
virtual void | define (AMRLevel *a_coarse_level_ptr, const Box &a_problem_domain, int a_level, int a_ref_ratio) |
virtual void | define (AMRLevel *a_coarse_level_ptr, const ProblemDomain &a_problem_domain, int a_level, int a_ref_ratio) |
virtual Real | advance () |
| advance by one timestep (returns what?)
|
virtual void | postTimeStep () |
| things to do after a timestep
|
virtual void | tagCells (IntVectSet &a_tags) |
| create tags
|
virtual void | tagCellsInit (IntVectSet &a_tags) |
| create tags at initialization
|
virtual void | regrid (const Vector< Box > &a_new_grids) |
| regrid
|
virtual void | postRegrid (int a_lBase) |
| perform any post-regridding ops -- lBase is the finest unchanged level
|
virtual void | initialGrid (const Vector< Box > &a_new_grids) |
| initialize grids
|
virtual void | initialData () |
| initialize data
|
virtual void | postInitialize () |
| things do do after initialization
|
virtual Real | computeDt () |
| compute dt
|
virtual Real | computeInitialDt () |
| compute dt with initial data
|
virtual void | CFL (Real a_cfl) |
| set CFL number
|
virtual void | particleCFL (Real a_particle_cfl) |
| set CFL number for computing timestep based on particles
|
virtual void | refinementThreshold (Real a_refine_threshold) |
| set refinement threshold
|
void | limitSolverCoarsening (bool a_limitSolverCoarsening) |
| set solver parameter
|
bool | finestLevel () const |
| is this this finest level?
|
bool | isEmpty () const |
| is this an empty level?
|
void | computeVorticity (LevelData< FArrayBox > &a_vorticity) const |
void | computeKineticEnergy (LevelData< FArrayBox > &a_energy) const |
Real | particleKineticEnergy () const |
void | dumpParticlesASCII (std::ostream &os) const |
Real | Dx () const |
| access functions
|
Real | Nu () const |
| viscous coefficient
|
ParticleAMRNS * | finerNSPtr () const |
| encapsulates the finer-level-pointer casting
|
ParticleAMRNS * | crseNSPtr () const |
| encapsulates the coarser-level pointer casting
|
LevelData< FArrayBox > & | newVel () |
const LevelData< FArrayBox > & | newVel () const |
LevelData< FArrayBox > & | oldVel () |
const LevelData< FArrayBox > & | oldVel () const |
void | velocity (LevelData< FArrayBox > &a_vel, Real a_time) const |
| returns velocity at time t
|
LevelData< BinFab< DragParticle > > & | particles () |
| returns particles
|
const LevelData< BinFab< DragParticle > > & | particles () const |
| returns particles (const version)
|
int | numParticles () const |
| number of particles on this AMR level
|
LevelData< FArrayBox > & | newLambda () |
const LevelData< FArrayBox > & | newLambda () const |
LevelData< FArrayBox > & | oldLambda () |
const LevelData< FArrayBox > & | oldLambda () const |
void | lambda (LevelData< FArrayBox > &a_lambda, Real a_time) const |
| returns lambda at time t
|
LevelData< FArrayBox > & | newScal (const int a_comp) |
const LevelData< FArrayBox > & | newScal (const int a_comp) const |
LevelData< FArrayBox > & | oldScal (const int a_comp) |
const LevelData< FArrayBox > & | oldScal (const int a_comp) const |
void | scalars (LevelData< FArrayBox > &a_scalars, const Real a_time, const int a_comp) const |
| returns scalars at time t
|
void | setPhysBC (const PhysBCUtil &a_BC) |
| sets physical BC object
|
PhysBCUtil * | getPhysBCPtr () const |
| gets physical BC object
|
Protected Member Functions |
DisjointBoxLayout | loadBalance (const Vector< Box > &a_grids) |
void | levelSetup (const DisjointBoxLayout &level_domain) |
void | defineParticles (List< DragParticle > &a_particles) const |
| define particle list for entire domain
|
void | readParameters () |
| read parameters from parmParse database
|
void | finestLevel (bool a_finest_level) |
| set whether this is the finest level or not
|
void | swapOldAndNewStates () |
| move new-time state into old-time state -- also advances time by dt
|
void | resetStates (const Real a_time) |
| exchange old and new states, resets time to a_time
|
void | computeAdvectionVelocities (LevelData< FluxBox > &a_adv_vel, LevelData< FArrayBox > &a_dragForce) |
| compute advection velocities
|
void | predictVelocities (LevelData< FArrayBox > &a_uDelU, LevelData< FluxBox > &a_advVel, LevelData< FArrayBox > &a_dragForce) |
void | computeUStar (LevelData< FArrayBox > &a_uStar, LevelData< FArrayBox > &a_dragForce) |
void | updateParticlePositions (LevelData< FArrayBox > &a_newDrag, LevelData< BinFab< DragParticle > > &a_particles, const LevelData< FArrayBox > &a_fluidVel, bool a_completeUpdate) |
| move particles and compute new-time drag forcing
|
void | updateParticleForces (LevelData< BinFab< DragParticle > > &a_particles) |
| update particle forces
|
void | interpVelToParticles (LevelData< BinFab< DragParticle > > &a_particles, const LevelData< FArrayBox > &a_velocity) |
| update particle velocities by interpolating a_vel to particles
|
void | advectScalar (LevelData< FArrayBox > &a_new_scal, LevelData< FArrayBox > &a_old_scal, LevelData< FluxBox > &a_adv_vel, LevelFluxRegister *a_crseFluxRegPtr, LevelFluxRegister &a_fineFluxReg, Real a_dt) |
| do scalar advection -- assumes all BC's already done
|
void | advectDiffuseScalar (LevelData< FArrayBox > &a_new_scal, LevelData< FArrayBox > &a_old_scal, LevelData< FluxBox > &a_adv_vel, const Real &a_diffusive_coeff, const LevelData< FArrayBox > *a_crse_scal_old, const LevelData< FArrayBox > *a_crse_scal_new, const Real a_old_crse_time, const Real a_new_crse_time, LevelFluxRegister *a_crseFluxRegPtr, LevelFluxRegister &a_fineFluxReg, DomainGhostBC &a_scalPhysBC, Real a_dt) |
| advect/diffuse scalar -- assumes all BC's already done?
|
void | initializeGlobalPressure () |
| manages pressure initialization after init or regrid
|
void | initializeLevelPressure (Real a_currentTime, Real a_dtInit) |
| does level-based pressure initalization
|
void | smoothVelocityField (int lbase) |
| smooths composite velocity field after regridding
|
void | computeLapVel (LevelData< FArrayBox > &a_lapVel, LevelData< FArrayBox > &a_vel, const LevelData< FArrayBox > *a_crseVelPtr) |
| compute Laplacian(velocity)
|
void | computeLapScal (LevelData< FArrayBox > &a_lapScal, LevelData< FArrayBox > &a_scal, DomainGhostBC &a_physBC, const LevelData< FArrayBox > *a_crseScalPtr) |
| compute Laplacian(scalars)
|
void | fillVelocity (LevelData< FArrayBox > &a_vel, Real a_time) |
| fill grown velocity field using piecewise-constant interp
|
void | fillVelocity (LevelData< FArrayBox > &a_vel, Real a_time, int vel_comp, int dest_comp, int num_comp) |
| fill grown velocity field using piecewise-constant interp
|
void | fillLambda (LevelData< FArrayBox > &a_lambda, Real a_time) const |
void | fillScalars (LevelData< FArrayBox > &a_scal, Real a_time, const int a_comp) const |
| fill interior and boundary cells (assume a_scal already sized)
|
virtual int | numPlotComps () const |
| number of components in plotfiles
|
virtual void | getPlotData (LevelData< FArrayBox > &a_plot_data) const |
| stuff plotfile data
|
void | defineRegridAMRSolver (AMRSolver &a_solver, const Vector< DisjointBoxLayout > &a_grids, const Vector< ProblemDomain > &a_domains, const Vector< Real > &a_amrDx, const Vector< int > &a_refRatios, const int &a_lBase) |
| defines (helmholtz) AMRSolver used in smoothing during regridding
|
Protected Attributes |
LevelData< FArrayBox > * | m_vel_old_ptr |
| velocity vector at old time
|
LevelData< FArrayBox > * | m_vel_new_ptr |
| velocity vector at new time
|
LevelData< BinFab< DragParticle > > | m_particles |
| particles
|
LevelData< FArrayBox > * | m_lambda_old_ptr |
| freestream preservation qty at old time
|
LevelData< FArrayBox > * | m_lambda_new_ptr |
| freestream preservation qty at new time
|
Vector< LevelData< FArrayBox > * > | m_scal_old |
| scalars at old time
|
Vector< LevelData< FArrayBox > * > | m_scal_new |
| scalars at new time
|
Vector< Tuple< Real, SpaceDim > > | m_dataPoints |
| points where data is dumped out
|
Real | m_dx |
| grid spacing
|
Real | m_cfl |
| cfl number
|
Real | m_particleCFL |
| cfl number for particle updates
|
bool | m_limitSolverCoarsening |
| solver parameter -- passed on through when defining solvers
|
Real | m_dt_save |
| dt from most recent timestep
|
int | m_level_steps |
| number of steps on this level
|
CoarseAverage | m_coarse_average |
| averaging from fine to coarse level for velocity
|
CoarseAverage | m_coarse_average_lambda |
| averaging from fine to coarse level for freestream preservation qty
|
CCProjector | m_projection |
| cell-centered projection object
|
ParticleProjector | m_particle_projector |
| particle drag force projector object
|
LevelFluxRegister | m_flux_register |
| momentum flux register
|
LevelFluxRegister | m_lambda_flux_reg |
| freestream preservation qty flux register
|
Vector< LevelFluxRegister * > | m_scal_fluxreg_ptrs |
| conserved scalar flux register
|
QuadCFInterp | m_velCFInterp |
| does quadratic coarse-fine interpolation for velocities
|
VelocityPoissonOp | m_velocityPoissonOp |
| PoissonOp for velocities.
|
PoissonOp | m_scalarsPoissonOp |
| PoissonOp for advected scalars (for diffusion).
|
LevelHelmholtzSolver | m_viscous_solver |
| levelsolver for viscous solves
|
Real | m_refine_threshold |
| refinement threshold for regridding
|
bool | m_finest_level |
| true if this is the finest extant level
|
bool | m_is_empty |
| true if this level is an empty level (no grids)
|
bool | m_regrid_smoothing_done |
| internal indicator whether post-regrid smoothing stuff has been done
|
PhysBCUtil * | m_physBCPtr |
| physical BC object
|
Static Protected Attributes |
const int | s_num_vel_comps = SpaceDim |
| number of components of m_state (vel comps + lambda)
|
int | s_num_scal_comps |
| number of scalars
|
const int | s_max_scal_comps = SpaceDim |
| maximum possible number of scalar components
|
const char * | s_vel_names [s_num_vel_comps] |
| names of components
|
const char * | s_scal_names [s_max_scal_comps] |
| names of scalars
|
Vector< Real > | s_scal_coeffs |
| diffusion coefficients for scalar advection-diffusion
|
Vector< Real > | s_domLength |
| size of physical domain
|
bool | s_ppInit |
| have we initialized static variables from parmParse?
|
Real | s_init_shrink |
| factor to shrink initial timestep
|
Real | s_max_dt |
| maximum allowable timestep
|
Real | s_prescribedDt |
bool | s_project_initial_vel |
| should we project initial velocity field (default is yes)
|
bool | s_initialize_pressures |
| should we initialize pressures after grid generation & regridding?
|
bool | s_smooth_after_regrid |
| do antidiffusive smoothing after regridding?
|
bool | s_dump_smoothing_plots |
| dump before-and-after plotfiles for post-regrid smoothing (for debug)
|
Real | s_regrid_smoothing_coeff |
| antidiffusive smoothing coefficient (multiplies nu*dtCrse)
|
int | s_num_init_passes |
| number of times to iterate when initializing pressures
|
bool | s_reflux_momentum |
| should we reflux momentum?
|
bool | s_reflux_normal_momentum |
| if we're refluxing momentum, should we reflux the normal component?
|
bool | s_set_bogus_values |
| debugging option -- initially set arrays to s_bogus_value
|
Real | s_bogus_value |
| debugging option -- value to which arrays are initially set
|
bool | s_tag_vorticity |
| tag on vorticity?
|
Real | s_vort_factor |
| factor for tagging -- tag if vorticity greater than factor*max_vort
|
int | s_tags_grow |
| amount by which to grow tagged regions before calling meshrefine
|
bool | s_implicit_reflux |
| do implicit refluxing for velocity?
|
bool | s_applyFreestreamCorrection |
| apply freestream preservation correction?
|
bool | s_reflux_scal |
| should we reflux scalars?
|
bool | s_implicit_scal_reflux |
| do implicit refluxing for advected/diffused scalars?
|
int | s_viscous_solver_type |
| viscous solver type: 0 = backwards euler, 1=Crank-Nicolson, 2=TGA
|
Real | s_viscous_solver_tol |
| viscous solver tolerance (defaults to 1e-7)
|
int | s_viscous_num_smooth_up |
| multigrid parameter for viscous solves
|
int | s_viscous_num_smooth_down |
| multigrid parameter for viscous solves
|
Real | s_nu |
| viscosity
|
bool | s_do_particles |
| if true, do particle stuff, if false, don't
|
bool | s_read_particles_from_file |
| read particle info from file?
|
string | s_particle_file |
| file containing particle info
|
Real | s_particle_drag_coeff |
| particle drag coefficient
|
RealVect | s_particle_body_force |
| particle body force (gravity)
|
Real | s_delta_epsilon |
| particle delta function parameter
|
bool | s_use_image_particles |
| if true, use image particles in particle projector near phys boundaries
|
int | s_order_vel_interp |
| order of velocity interpolation for particles
|
bool | s_specifyInitialGrids |
| do we specify initial grids in a gridFile?
|
string | s_initialGridFile |
| gridfile where initial grids are spec'd, if relevant
|
bool | s_init_vel_from_vorticity |
| initialize velocity field from vorticity field
|
Real | s_backgroundVel |
| background velocity (in the z-direction)
|
bool | s_write_particles |
| -- I/O options -- include particles in plotfile?
|
bool | s_write_divergence |
| include divergence in plotfile?
|
bool | s_write_lambda |
| include lambda in plotfile?
|
bool | s_write_time_derivatives |
| include du/dt and d(lambda)/dt in plotfile?
|
bool | s_write_vorticity |
| include vorticity in plotfile?
|
bool | s_write_scalars |
| include scalars in plotfile?
|
bool | s_write_dScalar_dt |
| include d(scalars)/dt in plotfile?
|
bool | s_write_strains |
| include strain-rates in plotfile? (2D only)
|
bool | s_write_grad_eLambda |
| include freestream preservation correcion in plotfile?
|
bool | s_write_error |
| include error (if there is an exact solution) in plotfile?
|
bool | s_write_proc_ids |
| include processor distribution visualization in plotfile?
|
bool | s_compute_scal_err |
| compute error and report norms after composite timesteps
|
bool | s_write_initial_solve_rhs |
| dump out initial vorticity->stream function RHS's into plotfiles
|
bool | s_write_grids |
| write out grids and processor assignments
|