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

PatchAdvection Class Reference

An OldPatchGodunov-derived class for simple advection-diffusion problems. More...

#include <PatchAdvection.H>

Collaboration diagram for PatchAdvection:

Collaboration graph
[legend]
List of all members.

Public Methods

 PatchAdvection ()
virtual OldPatchGodunov * new_patchGodunov () const
 Factory method - this object is its own factory.

virtual Real getMaxWaveSpeed (const FArrayBox &a_U, const Box &a_box)
 Compute the maximum wave speed.

virtual int numConserved ()
 Number of conserved variables.

virtual Vector< string > stateNames ()
 Names of the conserved variables.

virtual int numFluxes ()
 Number of flux variables.

void setAdvVelPtr (FluxBox *a_advVelPtr)
 set face-centered advection velocity for this patch

const FluxBoxadvectionVelPtr () const
 access face-centered advection velocities

void setCellVelPtr (FArrayBox *a_cellVelPtr)
 set cell-centered velocity field for this patch

const FArrayBoxcellVelPtr () const
 access cell-centered velicity field pointer

virtual void setNumVar (int a_numVar)
 set the number of conserved (and primitive, and flux) variables


Protected Methods

virtual int numPrimitives ()
 Number of primitive variables.

virtual int numSlopes ()
 Number of primitive variables for which slopes are computed.

virtual void consToPrim (FArrayBox &a_W, const FArrayBox &a_U, const Box &a_box)
 Compute the primitive variables from the conserved variables within a_box.

virtual void primToCons (FArrayBox &a_U, const FArrayBox &a_W, const Box &a_box)
 Compute the conserved variables from the primitive variables within a_box.

virtual void normalPred (FArrayBox &a_WMinus, FArrayBox &a_WPlus, const FArrayBox &a_W, const FArrayBox &a_dW, const Real &a_scale, const int &a_dir, const Box &a_box)
 Extrapolate the primitive variables to the cell faces.

virtual void incrementWithSource (FArrayBox &a_W, const FArrayBox &a_S, const Real &a_scale, const Box &a_box)
 increment the primitive variables by a source term

virtual void riemann (FArrayBox &a_F, const FArrayBox &a_WLeft, const FArrayBox &a_WRight, const int &a_dir, const Box &a_box)
 Compute a Riemann problem and generate fluxes at the faces.

virtual void updatePrim (FArrayBox &a_WMinus, FArrayBox &a_WPlus, const FArrayBox &a_F, const Real &a_scale, const int &a_dir, const Box &a_box)
 Update the primitive variables using fluxes (of the conserved variables).

virtual void updateCons (FArrayBox &a_U, const FArrayBox &a_F, const Real &a_scale, const int &a_dir, const Box &a_box)
 Update the conserved variable using fluxes and a scaling factor.

virtual void finalUpdate (FArrayBox &a_U, const FArrayBox &a_F, const Real &a_scale, const int &a_dir, const Box &a_box)
 Perform final update of conserved variable using fluxes.

virtual Interval velocityInterval ()
 Interval within the primitive variables corresponding to the velocities.

virtual int pressureIndex ()
 Component index within the primitive variables of the pressure.

virtual int bulkModulusIndex ()
 Component index within the primitive variables of the bulk modulus.


Protected Attributes

FluxBoxm_advVelPtr
 face-centered advection velocity, set through the advVel() intervace

FArrayBoxm_cellVelPtr
 cell-centered velocity field (centered at old time)

int m_numCons
 number of conserved variables

int m_numPrim
 number of primitive variables

int m_numFlux
 number of fluxes

int m_numSlope
 number of variabls in slope computation


Detailed Description

An OldPatchGodunov-derived class for simple advection-diffusion problems.


Constructor & Destructor Documentation

PatchAdvection::PatchAdvection  
 


Member Function Documentation

const FluxBox* PatchAdvection::advectionVelPtr   const
 

access face-centered advection velocities

virtual int PatchAdvection::bulkModulusIndex   [protected, virtual]
 

Component index within the primitive variables of the bulk modulus.

Return the component index withn the primitive variables for the bulk modulus. Used for slope flattening (slope computation) used as a normalization to measure shock strength.

const FArrayBox* PatchAdvection::cellVelPtr   const
 

access cell-centered velicity field pointer

virtual void PatchAdvection::consToPrim FArrayBox   a_W,
const FArrayBox   a_U,
const Box   a_box
[protected, virtual]
 

Compute the primitive variables from the conserved variables within a_box.

virtual void PatchAdvection::finalUpdate FArrayBox   a_U,
const FArrayBox   a_F,
const Real   a_scale,
const int &    a_dir,
const Box   a_box
[protected, virtual]
 

Perform final update of conserved variable using fluxes.

Given the fluxes, a_F, in a direction, a_dir, and a scaling factor, a_scale, update the conserved variables, a_U, within a_box:

a_U = a_U - a_scale * (a_F(a_dir,HiSide) - a_F(a_dir,LoSide))

virtual Real PatchAdvection::getMaxWaveSpeed const FArrayBox   a_U,
const Box   a_box
[virtual]
 

Compute the maximum wave speed.

virtual void PatchAdvection::incrementWithSource FArrayBox   a_W,
const FArrayBox   a_S,
const Real   a_scale,
const Box   a_box
[protected, virtual]
 

increment the primitive variables by a source term

virtual OldPatchGodunov* PatchAdvection::new_patchGodunov   const [virtual]
 

Factory method - this object is its own factory.

Return a pointer to new OldPatchGodunov object with its initial and boundary condtions, slope parameters, and artificial viscosity information defined.

virtual void PatchAdvection::normalPred FArrayBox   a_WMinus,
FArrayBox   a_WPlus,
const FArrayBox   a_W,
const FArrayBox   a_dW,
const Real   a_scale,
const int &    a_dir,
const Box   a_box
[protected, virtual]
 

Extrapolate the primitive variables to the cell faces.

Extrapolate the primitive variables, a_W, in the minus and plus direction, a_dir, using the slopes a_dW within a_box. See document for details.

virtual int PatchAdvection::numConserved   [virtual]
 

Number of conserved variables.

Return the number of conserved variables.

virtual int PatchAdvection::numFluxes   [virtual]
 

Number of flux variables.

Return the number of flux variables. This can be greater than the number of conserved variables if addition fluxes/face-centered quantities are computed.

virtual int PatchAdvection::numPrimitives   [protected, virtual]
 

Number of primitive variables.

Return the number of primitive variables. This may be greater than the number of conserved variables if derived/redundant quantities are also stored for convenience.

virtual int PatchAdvection::numSlopes   [protected, virtual]
 

Number of primitive variables for which slopes are computed.

Return the number of primitive variables for which slopes are computed. Only slopes corresponding to primitive variables in the interval 0 to numSlopes() - 1 are computed and only primitive variables in that interval are updated using the slopes.

virtual int PatchAdvection::pressureIndex   [protected, virtual]
 

Component index within the primitive variables of the pressure.

Return the component index withn the primitive variables for the pressure. Used for slope flattening (slope computation).

virtual void PatchAdvection::primToCons FArrayBox   a_U,
const FArrayBox   a_W,
const Box   a_box
[protected, virtual]
 

Compute the conserved variables from the primitive variables within a_box.

virtual void PatchAdvection::riemann FArrayBox   a_F,
const FArrayBox   a_WLeft,
const FArrayBox   a_WRight,
const int &    a_dir,
const Box   a_box
[protected, virtual]
 

Compute a Riemann problem and generate fluxes at the faces.

Given input left and right states in a direction, a_dir, compute a Riemann problem and generate fluxes at the faces within a_box.

void PatchAdvection::setAdvVelPtr FluxBox   a_advVelPtr
 

set face-centered advection velocity for this patch

void PatchAdvection::setCellVelPtr FArrayBox   a_cellVelPtr
 

set cell-centered velocity field for this patch

virtual void PatchAdvection::setNumVar int    a_numVar [virtual]
 

set the number of conserved (and primitive, and flux) variables

Note that for this simple tracing, conservative == primitive

virtual Vector<string> PatchAdvection::stateNames   [virtual]
 

Names of the conserved variables.

Return the names of the conserved variables.

virtual void PatchAdvection::updateCons FArrayBox   a_U,
const FArrayBox   a_F,
const Real   a_scale,
const int &    a_dir,
const Box   a_box
[protected, virtual]
 

Update the conserved variable using fluxes and a scaling factor.

Given the fluxes, a_F, in a direction, a_dir, and a scaling factor, a_scale, update the conserved variables, a_U, within a_box:

a_U = a_U - a_scale * (a_F(a_dir,HiSide) - a_F(a_dir,LoSide))

virtual void PatchAdvection::updatePrim FArrayBox   a_WMinus,
FArrayBox   a_WPlus,
const FArrayBox   a_F,
const Real   a_scale,
const int &    a_dir,
const Box   a_box
[protected, virtual]
 

Update the primitive variables using fluxes (of the conserved variables).

Given the fluxes, a_F, in a direction, a_dir, and a scaling factor, a_scale, update the primitive variables, a_WMinus and a_WPlus, within a_box. Note: The fluxes are fluxes of conserved variables.

virtual Interval PatchAdvection::velocityInterval   [protected, virtual]
 

Interval within the primitive variables corresponding to the velocities.

Return the interval of component indices within the primitive variable of the velocities. Used for slope flattening (slope computation) and computing the divergence of the velocity (artificial viscosity).


Member Data Documentation

FluxBox* PatchAdvection::m_advVelPtr [protected]
 

face-centered advection velocity, set through the advVel() intervace

FArrayBox* PatchAdvection::m_cellVelPtr [protected]
 

cell-centered velocity field (centered at old time)

int PatchAdvection::m_numCons [protected]
 

number of conserved variables

For this simple adection tracing, we assume that conservative and primitive are the same

int PatchAdvection::m_numFlux [protected]
 

number of fluxes

int PatchAdvection::m_numPrim [protected]
 

number of primitive variables

int PatchAdvection::m_numSlope [protected]
 

number of variabls in slope computation


The documentation for this class was generated from the following file:
Generated on Wed Jan 19 17:56:24 2005 for Chombo&INSwithParticles by doxygen1.2.16