Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

GodunovUtilities Class Reference

#include <GodunovUtilities.H>

Collaboration diagram for GodunovUtilities:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 GodunovUtilities ()
 Constructor.
 ~GodunovUtilities ()
 Destructor.
void define (ProblemDomain &a_domain, const Real &a_dx)
 Define the object.
void computeFlattening (FArrayBox &a_flattening, const FArrayBox &a_W, const Interval &a_velInt, const int &a_presInd, const Real &a_smallPres, const int &a_bulkModulusInd, const Box &a_box)
 Compute the slope flattening coefficients.
void applyFlattening (FArrayBox &a_dW, const FArrayBox &a_flat, const Box &a_box)
 Apply the flattening to slopes.
void vanLeerSlopes (FArrayBox &a_dW, const FArrayBox &a_W, const int &a_numSlopes, const bool &a_useLimiting, const int &a_dir, const Box &a_box)
 Compute componentwise van Leer slopes.
void fourthOrderSlopes (FArrayBox &a_dW4, const FArrayBox &a_W, const FArrayBox &a_dWvL, const int &a_numSlopes, const int &a_dir, const Box &a_box)
 Compute fourth-order slopes.
void oneSidedDifferences (FArrayBox &a_dWMinus, FArrayBox &a_dWPlus, const FArrayBox &a_W, const int &a_dir, const Box &a_box)
 Compute slopes (dW- and dW+) using one sided differences.
void slopes (FArrayBox &a_dWCent, FArrayBox &a_dWMinus, FArrayBox &a_dWPlus, const FArrayBox &a_W, const int &a_numSlopes, const int &a_dir, const Box &a_loBox, const Box &a_hiBox, const Box &a_centerBox, const Box &a_entireBox, const int &a_hasLo, const int &a_hasHi)
 Compute slopes (dW (center), dW-, and dW+).
void slopeLimiter (FArrayBox &a_dW, const FArrayBox &a_dWMinus, const FArrayBox &a_dWPlus, const int &a_numSlopes, const Box &a_box)
 van Leer slope limiter.
void PLMNormalPred (FArrayBox &a_dWCharMinus, FArrayBox &a_dWCharPlus, const FArrayBox &a_dWChar, const FArrayBox &a_Lambda, const Real &a_dtbydx, const Box &a_box)
 PLM normal predictor.
void PPMFaceValues (FArrayBox &a_WFace, const FArrayBox &a_W, const int &a_numSlopes, const bool &a_useLimiting, const int &a_dir, const Box &a_box, const Real &a_time, const GodunovPhysics *a_physPtr=NULL)
 PPM face-centered interpolant.
void PPMLimiter (FArrayBox &a_dWMinus, FArrayBox &a_dWPlus, const int &a_numSlopes, const Box &a_box)
 PPM Limiter.
void PPMNormalPred (FArrayBox &a_dWMinus, FArrayBox &a_dWPlus, const FArrayBox &a_Lambda, const Real &a_dtbydx, const int &a_numSlopes, const Box &a_box)
 PPM normal predictor.
void divVel (FArrayBox &a_divVel, const FArrayBox &a_W, const Interval &a_velInt, const int &a_dir, const Box &a_box)
 Compute face-centered velocity divergence.
void artificialViscosity (FArrayBox &a_Flux, const FArrayBox &a_U, const FArrayBox &a_divVel, const Real &a_scale, const int &a_dir, const Box &a_box)
 Compute face-centered artificial viscosity flux.

Protected Attributes

ProblemDomain m_domain
Real m_dx
bool m_isDefined

Detailed Description

Utility class for higher-order Godunov methods: slopes, parabolic interpolants, limiters. Contains no physics-dependent methods, but one of the member functions (PPMFaceLimiter) may require a pointer to a physics class analysis class in order to perform limiting in characteristic variables.


Constructor & Destructor Documentation

GodunovUtilities::GodunovUtilities  ) 
 

Constructor.

GodunovUtilities::~GodunovUtilities  ) 
 

Destructor.


Member Function Documentation

void GodunovUtilities::applyFlattening FArrayBox a_dW,
const FArrayBox a_flat,
const Box a_box
 

Apply the flattening to slopes.

void GodunovUtilities::artificialViscosity FArrayBox a_Flux,
const FArrayBox a_U,
const FArrayBox a_divVel,
const Real a_scale,
const int &  a_dir,
const Box a_box
 

Compute face-centered artificial viscosity flux.

Increments face-centered flux in the a_dir direction with quadratic artificial viscosity.

void GodunovUtilities::computeFlattening FArrayBox a_flattening,
const FArrayBox a_W,
const Interval a_velInt,
const int &  a_presInd,
const Real a_smallPres,
const int &  a_bulkModulusInd,
const Box a_box
 

Compute the slope flattening coefficients.

Compute the slope flattening coefficients, a_flattening, using the primitive variables, a_W, within a_box.

void GodunovUtilities::define ProblemDomain a_domain,
const Real a_dx
 

Define the object.

void GodunovUtilities::divVel FArrayBox a_divVel,
const FArrayBox a_W,
const Interval a_velInt,
const int &  a_dir,
const Box a_box
 

Compute face-centered velocity divergence.

Returns face-centered velocity divergence on for faces in the direction a_dir. The velocities are the components a_velInterval of a_W.

void GodunovUtilities::fourthOrderSlopes FArrayBox a_dW4,
const FArrayBox a_W,
const FArrayBox a_dWvL,
const int &  a_numSlopes,
const int &  a_dir,
const Box a_box
 

Compute fourth-order slopes.

Given cell averages W and van Leer slopes dWvL, compute fourth-order slopes dW4. Limiting is performed in a separate pass.

void GodunovUtilities::oneSidedDifferences FArrayBox a_dWMinus,
FArrayBox a_dWPlus,
const FArrayBox a_W,
const int &  a_dir,
const Box a_box
 

Compute slopes (dW- and dW+) using one sided differences.

void GodunovUtilities::PLMNormalPred FArrayBox a_dWCharMinus,
FArrayBox a_dWCharPlus,
const FArrayBox a_dWChar,
const FArrayBox a_Lambda,
const Real a_dtbydx,
const Box a_box
 

PLM normal predictor.

Compute the increments in the characteristic amplitudes

void GodunovUtilities::PPMFaceValues FArrayBox a_WFace,
const FArrayBox a_W,
const int &  a_numSlopes,
const bool &  a_useLimiting,
const int &  a_dir,
const Box a_box,
const Real a_time,
const GodunovPhysics a_physPtr = NULL
 

PPM face-centered interpolant.

Given the cell average W and the van Leer slope dWvL, compute fourth-order accurate face-centered values WFace given by differentiating the indefinite integral. Limiting is performed in a separate pass.

void GodunovUtilities::PPMLimiter FArrayBox a_dWMinus,
FArrayBox a_dWPlus,
const int &  a_numSlopes,
const Box a_box
 

PPM Limiter.

On input, dWMinus and dWPlus are the differences between the face values on the minus and plus sides of cells and the average in the cell. The PPM limiter is applied to these values to obtain a monotone interpolant in the cell.

void GodunovUtilities::PPMNormalPred FArrayBox a_dWMinus,
FArrayBox a_dWPlus,
const FArrayBox a_Lambda,
const Real a_dtbydx,
const int &  a_numSlopes,
const Box a_box
 

PPM normal predictor.

On input, dW{Minus,Plus}, contain the characteristic expansions of the differences between the {minus, plus} face values and the cell average. On output, dW{Minus,Plus} contain the characteristic amplitudes of the corrections required to compute the normal predictor.

void GodunovUtilities::slopeLimiter FArrayBox a_dW,
const FArrayBox a_dWMinus,
const FArrayBox a_dWPlus,
const int &  a_numSlopes,
const Box a_box
 

van Leer slope limiter.

On input, dW contains the centered, unlimited slopes, and dW{Minus,Plus} contain the one-sided slopes from the minus, plus sides. On output, dW contains the limited slopes. slopes dW4. Limiting is performed in a separate pass.

void GodunovUtilities::slopes FArrayBox a_dWCent,
FArrayBox a_dWMinus,
FArrayBox a_dWPlus,
const FArrayBox a_W,
const int &  a_numSlopes,
const int &  a_dir,
const Box a_loBox,
const Box a_hiBox,
const Box a_centerBox,
const Box a_entireBox,
const int &  a_hasLo,
const int &  a_hasHi
 

Compute slopes (dW (center), dW-, and dW+).

void GodunovUtilities::vanLeerSlopes FArrayBox a_dW,
const FArrayBox a_W,
const int &  a_numSlopes,
const bool &  a_useLimiting,
const int &  a_dir,
const Box a_box
 

Compute componentwise van Leer slopes.

Given cell averages W, compute van Leer slopes dW on a component-by-component basis.


Member Data Documentation

ProblemDomain GodunovUtilities::m_domain [protected]
 

Real GodunovUtilities::m_dx [protected]
 

bool GodunovUtilities::m_isDefined [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Oct 5 12:47:42 2005 for Chombo&AMRIdealMHD by  doxygen 1.4.1