Generic class for flux-correction at hanging nodes. More...
#include <AMRFixup.h>
Public Types | |
typedef GridData< VectorType, dim > | vec_grid_data_type |
typedef GridData< VectorType, minus_1< dim >::dim > | ld_vec_grid_data_type |
typedef GridData< FixupType, minus_1< dim >::dim > | ld_fixup_grid_data_type |
typedef GridFunction < VectorType, dim > | vec_grid_fct_type |
typedef GridFunction < FixupType, minus_1< dim > ::dim > | ld_fixup_grid_fct_type |
Public Member Functions | |
AMRFixup () | |
virtual | ~AMRFixup () |
virtual void | register_at (ControlDevice &Ctrl, const std::string &prefix) |
virtual void | register_at (ControlDevice &Ctrl) |
virtual void | SaveFluxes (const int Time, const int Level, const int c, vec_grid_data_type *flux[], const double dt, const int &mdim) |
virtual void | AddFluxes (const int Time, const int Level, const int c, vec_grid_data_type *flux[], const double tc, const double tf, const double dtc, const double dtf, const int &mdim) |
virtual void | AddIntercellFluxes (const int Time, const int Level, const int c, vec_grid_data_type *flux[], const double dt, const int &mdim) |
virtual void | Correction (const int Time, const int WTime, const int Level, const double t, const double dt) |
void | SetGridFunctions (vec_grid_fct_type *u) |
vec_grid_fct_type & | U () |
const vec_grid_fct_type & | U () const |
Protected Member Functions | |
int | ValidSide (const int Time, const int Level, const int c, const int s) const |
void | ParallelFixup (const int Time, const int Level, const int d, vec_grid_fct_type &uh) |
BBox | StateVecBBox (const BBox &interior, const int s) |
BBox | FixupBBox (const BBox &interior, const int s) |
virtual BBox | FluxBBox (const BBox &interior, const int s) |
void | copyf_to (ld_fixup_grid_data_type &target, const BBox &to, const vec_grid_data_type &source, const BBox &from, const int s) |
void | copyf_to (ld_fixup_grid_data_type &target, const vec_grid_data_type &source, const BBox &where, const int s) |
void | copyf_from (vec_grid_data_type &target, const BBox &to, const ld_fixup_grid_data_type &source, const BBox &from, const int s) |
void | copyf_from (vec_grid_data_type &target, const BBox &where, const ld_fixup_grid_data_type &source, const int s) |
void | addf_to (ld_fixup_grid_data_type &target, const BBox &to, const vec_grid_data_type &source, const BBox &from, const int s) |
void | addf_to (ld_fixup_grid_data_type &target, const vec_grid_data_type &source, const BBox &where, const int s) |
void | addf_from (vec_grid_data_type &target, const BBox &to, const ld_fixup_grid_data_type &source, const BBox &from, const int s) |
void | addf_from (vec_grid_data_type &target, const BBox &where, const ld_fixup_grid_data_type &source, const int s) |
void | addf_to (ld_fixup_grid_data_type &target, const BBox &to, const ld_vec_grid_data_type &source, const BBox &from) |
void | addf_to (ld_fixup_grid_data_type &target, const ld_vec_grid_data_type &source, const BBox &where) |
Protected Attributes | |
vec_grid_fct_type * | _u |
char | GFName [DAGHBktGFNameWidth] |
Generic class for flux-correction at hanging nodes.
Parallelization strategy for conservative correction: 1. Numerical fluxes for a single grid are calculated locally. The fluxes are computed for internal edges and for edges abutting a ghost cell. On edges between ghost cells no numerical flux is necessary. By synchronizing ghost cells and updating the numerical fluxes all data for computing the correction terms is always locally available. 2. Correction terms are shifted one cell and are reshifted before application. The shift operation moves correction terms which have to be applied on cells on other processors into internal cells and allows a synchronization. The application of correction terms is the only operation that requires additional communication and is implemented with a grid function.
typedef GridData<FixupType,minus_1<dim>::dim> AMRFixup< VectorType, FixupType, dim >::ld_fixup_grid_data_type |
typedef GridFunction<FixupType,minus_1<dim>::dim> AMRFixup< VectorType, FixupType, dim >::ld_fixup_grid_fct_type |
typedef GridData<VectorType,minus_1<dim>::dim> AMRFixup< VectorType, FixupType, dim >::ld_vec_grid_data_type |
typedef GridData<VectorType,dim> AMRFixup< VectorType, FixupType, dim >::vec_grid_data_type |
typedef GridFunction<VectorType,dim> AMRFixup< VectorType, FixupType, dim >::vec_grid_fct_type |
AMRFixup< VectorType, FixupType, dim >::AMRFixup | ( | ) | [inline] |
virtual AMRFixup< VectorType, FixupType, dim >::~AMRFixup | ( | ) | [inline, virtual] |
void AMRFixup< VectorType, FixupType, dim >::addf_from | ( | vec_grid_data_type & | target, | |
const BBox & | where, | |||
const ld_fixup_grid_data_type & | source, | |||
const int | s | |||
) | [inline, protected] |
void AMRFixup< VectorType, FixupType, dim >::addf_from | ( | vec_grid_data_type & | target, | |
const BBox & | to, | |||
const ld_fixup_grid_data_type & | source, | |||
const BBox & | from, | |||
const int | s | |||
) | [inline, protected] |
void AMRFixup< VectorType, FixupType, dim >::addf_to | ( | ld_fixup_grid_data_type & | target, | |
const ld_vec_grid_data_type & | source, | |||
const BBox & | where | |||
) | [inline, protected] |
void AMRFixup< VectorType, FixupType, dim >::addf_to | ( | ld_fixup_grid_data_type & | target, | |
const BBox & | to, | |||
const ld_vec_grid_data_type & | source, | |||
const BBox & | from | |||
) | [inline, protected] |
void AMRFixup< VectorType, FixupType, dim >::addf_to | ( | ld_fixup_grid_data_type & | target, | |
const vec_grid_data_type & | source, | |||
const BBox & | where, | |||
const int | s | |||
) | [inline, protected] |
void AMRFixup< VectorType, FixupType, dim >::addf_to | ( | ld_fixup_grid_data_type & | target, | |
const BBox & | to, | |||
const vec_grid_data_type & | source, | |||
const BBox & | from, | |||
const int | s | |||
) | [inline, protected] |
Referenced by AMRFixup< VectorType, FixupType, DIM >::AddIntercellFluxes().
virtual void AMRFixup< VectorType, FixupType, dim >::AddFluxes | ( | const int | Time, | |
const int | Level, | |||
const int | c, | |||
vec_grid_data_type * | flux[], | |||
const double | tc, | |||
const double | tf, | |||
const double | dtc, | |||
const double | dtf, | |||
const int & | mdim | |||
) | [inline, virtual] |
Reimplemented in ClpFixup< VectorType, FixupType, AuxType, DIM >.
Referenced by AMRSolver< VectorType, FixupType, FlagType, DIM >::UpdateLevel().
virtual void AMRFixup< VectorType, FixupType, dim >::AddIntercellFluxes | ( | const int | Time, | |
const int | Level, | |||
const int | c, | |||
vec_grid_data_type * | flux[], | |||
const double | dt, | |||
const int & | mdim | |||
) | [inline, virtual] |
Reimplemented in WENOFixup< VectorType, FixupType, DIM >.
Referenced by AMRFixup< VectorType, FixupType, DIM >::AddFluxes().
void AMRFixup< VectorType, FixupType, dim >::copyf_from | ( | vec_grid_data_type & | target, | |
const BBox & | where, | |||
const ld_fixup_grid_data_type & | source, | |||
const int | s | |||
) | [inline, protected] |
void AMRFixup< VectorType, FixupType, dim >::copyf_from | ( | vec_grid_data_type & | target, | |
const BBox & | to, | |||
const ld_fixup_grid_data_type & | source, | |||
const BBox & | from, | |||
const int | s | |||
) | [inline, protected] |
Referenced by AMRFixup< VectorType, FixupType, DIM >::ParallelFixup().
void AMRFixup< VectorType, FixupType, dim >::copyf_to | ( | ld_fixup_grid_data_type & | target, | |
const vec_grid_data_type & | source, | |||
const BBox & | where, | |||
const int | s | |||
) | [inline, protected] |
void AMRFixup< VectorType, FixupType, dim >::copyf_to | ( | ld_fixup_grid_data_type & | target, | |
const BBox & | to, | |||
const vec_grid_data_type & | source, | |||
const BBox & | from, | |||
const int | s | |||
) | [inline, protected] |
Referenced by AMRFixup< VectorType, FixupType, DIM >::SaveFluxes().
virtual void AMRFixup< VectorType, FixupType, dim >::Correction | ( | const int | Time, | |
const int | WTime, | |||
const int | Level, | |||
const double | t, | |||
const double | dt | |||
) | [inline, virtual] |
Reimplemented in LBMFixup< LBMType, FixupType, dim >, and LBMFixup< LBMType, FixupType, DIM >.
Referenced by AMRSolver< VectorType, FixupType, FlagType, DIM >::AdvanceLevel().
BBox AMRFixup< VectorType, FixupType, dim >::FixupBBox | ( | const BBox & | interior, | |
const int | s | |||
) | [inline, protected] |
virtual BBox AMRFixup< VectorType, FixupType, dim >::FluxBBox | ( | const BBox & | interior, | |
const int | s | |||
) | [inline, protected, virtual] |
void AMRFixup< VectorType, FixupType, dim >::ParallelFixup | ( | const int | Time, | |
const int | Level, | |||
const int | d, | |||
vec_grid_fct_type & | uh | |||
) | [inline, protected] |
Referenced by AMRFixup< VectorType, FixupType, DIM >::Correction().
virtual void AMRFixup< VectorType, FixupType, dim >::register_at | ( | ControlDevice & | Ctrl | ) | [inline, virtual] |
Reimplemented in LBMFixup< LBMType, FixupType, dim >, and LBMFixup< LBMType, FixupType, DIM >.
Referenced by AMRFixup< VectorType, FixupType, DIM >::register_at().
virtual void AMRFixup< VectorType, FixupType, dim >::register_at | ( | ControlDevice & | Ctrl, | |
const std::string & | prefix | |||
) | [inline, virtual] |
Reimplemented in LBMFixup< LBMType, FixupType, dim >, and LBMFixup< LBMType, FixupType, DIM >.
Referenced by AMRSolverBase< MicroType, FixupType, FlagType, dim >::register_at().
virtual void AMRFixup< VectorType, FixupType, dim >::SaveFluxes | ( | const int | Time, | |
const int | Level, | |||
const int | c, | |||
vec_grid_data_type * | flux[], | |||
const double | dt, | |||
const int & | mdim | |||
) | [inline, virtual] |
Reimplemented in WENOFixup< VectorType, FixupType, DIM >.
Referenced by AMRSolver< VectorType, FixupType, FlagType, DIM >::UpdateLevel().
void AMRFixup< VectorType, FixupType, dim >::SetGridFunctions | ( | vec_grid_fct_type * | u | ) | [inline] |
BBox AMRFixup< VectorType, FixupType, dim >::StateVecBBox | ( | const BBox & | interior, | |
const int | s | |||
) | [inline, protected] |
const vec_grid_fct_type& AMRFixup< VectorType, FixupType, dim >::U | ( | ) | const [inline] |
vec_grid_fct_type& AMRFixup< VectorType, FixupType, dim >::U | ( | ) | [inline] |
int AMRFixup< VectorType, FixupType, dim >::ValidSide | ( | const int | Time, | |
const int | Level, | |||
const int | c, | |||
const int | s | |||
) | const [inline, protected] |
vec_grid_fct_type* AMRFixup< VectorType, FixupType, dim >::_u [protected] |
char AMRFixup< VectorType, FixupType, dim >::GFName[DAGHBktGFNameWidth] [protected] |