gridripper::amr1d::BoundedGrid Class Reference

1 dimensional grid for the adaptive mesh refinement algorithm. More...

#include <BoundedGrid.h>

Inheritance diagram for gridripper::amr1d::BoundedGrid:

gridripper::amr1d::Grid

List of all members.

Public Member Functions

 BoundedGrid (GReal_t minx, GReal_t maxx, int maxi, int npabovemax, int nc, Integrator *proto, Regridder *refproto, int r)
 Creates a base grid.
GridcloneGrid () const
 Clones this grid.
int getLeftmostI () const
int getRightmostI () const
bool isPeriodic () const
int getMarginLeft (int ir) const
 Gets the left margin size.
int getMarginRight (int ir) const
 Gets the right margin size.
int distanceFromLeft (int i) const
 Gets the distance from the left edge.
int distanceFromRight (int i) const
 Gets the distance from the right edge.
virtual int getNumPointsAboveMaxX () const
 Gets number of grid points above infinity (Xmax).
GReal_t getLocationX (int i) const
 Gets the location of the point with index i.
GReal_t getSizeX () const
 Gets the grid width.
void initRefinedDataExistenceArray ()
 Initializes the refinedDataExists array.
bool hasRefinedData (int i) const
 Checks whether refined data at the specified index exists or not.
void getRefinedData (int i, GReal_t yout[]) const
 Gets the refined data at the specified grid point if exists.
GridcreateTemporaryGrid (int dmargin_L, int dmargin_R, GReal_t xshift)
void setTemporaryGridMargins (const Grid &p, int dmargin_L, int dmargin_R)
 Sets the margins and the shift for a temporary grid.
GridcreateRefinedGrid (IntervalList *iv, int margin, int vmargin, int minLevel, int r1)
 Creates a refined grid.
void interpolateMargins (PDE *pde)
int getAbsoluteIndex (int i, int mul) const

Protected Member Functions

 BoundedGrid (const BoundedGrid &g)
 Copy constructor.
 BoundedGrid (const BoundedGrid &p, int dmargin_L, int dmargin_R, GReal_t xshift)
 Creates a temporary grid.
 BoundedGrid (Grid *p, int r1, int loci, int maxi, int margin, int vmargin, int minLevel)
 Creates a refined grid.
int getInternalIndex (int i) const
 Gets the internal array index.
int getSubgridIndexFromIndex (const Grid *g, int i) const
int getIndexFromSubgridIndex (const Grid *g, int j) const
void fillRefinedDataArray ()
 Fills the refinedData array.
void blur (tvalarray< unsigned char > &pf, int i) const
 Both neighbors of points with the specified value in an array are set to value plus 1.
int getFirstIndexForRefinement (const tvalarray< unsigned char > &pf) const
 Gets the first point to start refinement interval searching.
int findIntervalEndForRefinement (const tvalarray< unsigned char > &pf, int i) const
 Finds the right edge of an interval that needs refinement.
int intervalRefinedSize (const IntervalList *iv, int r) const
int gridIndexLeftOf (int i, int dmax) const
int gridIndexRightOf (int i, int dmax) const
void fixSubgridNearBounds (IntervalList *left, IntervalList *right, int margin) const
 Check if refined grid + margin would extend beyond parent grid boundaries.
int calcNewSubSubgridLocation (int ssloc, int osloc, int nsloc)
 Calculates the new location of a sub-subgrid (relative to the parent) if its parent (a subgrid) changed.


Detailed Description

1 dimensional grid for the adaptive mesh refinement algorithm.

Version:
0.5, 05/08/2009
Author:
Peter Csizmadia

Constructor & Destructor Documentation

gridripper::amr1d::BoundedGrid::BoundedGrid ( const BoundedGrid g  )  [protected]

Copy constructor.

Parameters:
g the grid to copy

gridripper::amr1d::BoundedGrid::BoundedGrid ( Grid p,
int  r1,
int  loci,
int  maxi,
int  margin,
int  vmargin,
int  minLevel 
) [protected]

Creates a refined grid.

Parameters:
p the parent grid
r1 refinement ratio for the refined grid's future subgrids
loci location of origin in parent grid
maxi maximum grid index
margin the margin size
vmargin numerical error propagation velocity
minLevel set grandparent's sub-subgrid list if its level is larger than or equal to minLevel


Member Function Documentation

Grid* gridripper::amr1d::BoundedGrid::cloneGrid (  )  const [inline, virtual]

Clones this grid.

Returns:
the clone

Implements gridripper::amr1d::Grid.

int gridripper::amr1d::BoundedGrid::getMarginLeft ( int  ir  )  const [inline, virtual]

Gets the left margin size.

Parameters:
ir step count
Returns:
the margin size

Implements gridripper::amr1d::Grid.

int gridripper::amr1d::BoundedGrid::getMarginRight ( int  ir  )  const [inline, virtual]

Gets the right margin size.

Parameters:
ir step count
Returns:
the margin size

Implements gridripper::amr1d::Grid.

int gridripper::amr1d::BoundedGrid::distanceFromLeft ( int  i  )  const [inline, virtual]

Gets the distance from the left edge.

Parameters:
i grid point index
Returns:
the distance (positive or 0), negative number if the point outside the grid

Implements gridripper::amr1d::Grid.

int gridripper::amr1d::BoundedGrid::distanceFromRight ( int  i  )  const [inline, virtual]

Gets the distance from the right edge.

Parameters:
i grid point index
Returns:
the distance (positive or 0), negative number if the point outside the grid

Implements gridripper::amr1d::Grid.

virtual int gridripper::amr1d::BoundedGrid::getNumPointsAboveMaxX (  )  const [inline, virtual]

Gets number of grid points above infinity (Xmax).

Returns:
the number of extra points

Reimplemented from gridripper::amr1d::Grid.

GReal_t gridripper::amr1d::BoundedGrid::getLocationX ( int  i  )  const [virtual]

Gets the location of the point with index i.

Parameters:
i the point index

Implements gridripper::amr1d::Grid.

GReal_t gridripper::amr1d::BoundedGrid::getSizeX (  )  const [inline, virtual]

Gets the grid width.

Returns:
the grid width

Implements gridripper::amr1d::Grid.

bool gridripper::amr1d::BoundedGrid::hasRefinedData ( int  i  )  const [inline, virtual]

Checks whether refined data at the specified index exists or not.

Parameters:
i refined grid index
Returns:
true if exists, false if not

Implements gridripper::amr1d::Grid.

void gridripper::amr1d::BoundedGrid::getRefinedData ( int  i,
GReal_t  yout[] 
) const [inline, virtual]

Gets the refined data at the specified grid point if exists.

Parameters:
i refined grid index
yout the output array

Implements gridripper::amr1d::Grid.

void gridripper::amr1d::BoundedGrid::setTemporaryGridMargins ( const Grid p,
int  dmargin_L,
int  dmargin_R 
) [virtual]

Sets the margins and the shift for a temporary grid.

Parameters:
p the parent grid
dmargin_L the left margin
dmargin_R the right margin

Implements gridripper::amr1d::Grid.

Grid* gridripper::amr1d::BoundedGrid::createRefinedGrid ( IntervalList iv,
int  margin,
int  vmargin,
int  minLevel,
int  r1 
) [virtual]

Creates a refined grid.

Parameters:
p the parent grid
iv the left and right edge in the parent grid
margin margin size
vmargin numerical error propagation velocity
minLevel set grandparent's sub-subgrid list if its level is larger than or equal to minLevel
r1 the refinement ratio value if the created grid can be refined further, 1 otherwise

Implements gridripper::amr1d::Grid.

int gridripper::amr1d::BoundedGrid::getInternalIndex ( int  i  )  const [inline, protected, virtual]

Gets the internal array index.

The internal array index is the sum of the "real" index and the left margin size if present.

Parameters:
i the index
Returns:
the internal array index

Implements gridripper::amr1d::Grid.

void gridripper::amr1d::BoundedGrid::fillRefinedDataArray (  )  [protected, virtual]

Fills the refinedData array.

Should only be called after interpolateMargins!

Implements gridripper::amr1d::Grid.

void gridripper::amr1d::BoundedGrid::blur ( tvalarray< unsigned char > &  pf,
int  i 
) const [protected, virtual]

Both neighbors of points with the specified value in an array are set to value plus 1.

Parameters:
pf nonzero values in this array indicate the need of refinement
i the value

Implements gridripper::amr1d::Grid.

int gridripper::amr1d::BoundedGrid::getFirstIndexForRefinement ( const tvalarray< unsigned char > &  pf  )  const [inline, protected, virtual]

Gets the first point to start refinement interval searching.

Parameters:
pf nonzero values in this array indicate the need of refinement
Returns:
zero

Implements gridripper::amr1d::Grid.

int gridripper::amr1d::BoundedGrid::findIntervalEndForRefinement ( const tvalarray< unsigned char > &  pf,
int  i 
) const [protected, virtual]

Finds the right edge of an interval that needs refinement.

Parameters:
pf nonzero values in this array indicate the need of refinement
i the left edge index
Returns:
the right edge index

Implements gridripper::amr1d::Grid.

int gridripper::amr1d::BoundedGrid::calcNewSubSubgridLocation ( int  ssloc,
int  osloc,
int  nsloc 
) [inline, protected, virtual]

Calculates the new location of a sub-subgrid (relative to the parent) if its parent (a subgrid) changed.

Parameters:
ssloc old sub-subgrid's (relative) location
osloc its old parent's location (relative to this grid)
nsloc new parent's location (relative to this grid)
Returns:
the new location of the sub-subgrid relative to its new parent

Implements gridripper::amr1d::Grid.


The documentation for this class was generated from the following file:

Generated on Wed Jun 17 18:46:48 2009 for GridRipper by  doxygen 1.5.6