1 #ifndef AMREX_INTERPOLATER_H_
2 #define AMREX_INTERPOLATER_H_
3 #include <AMReX_Config.H>
47 const Box& fine_region,
87 {
amrex::Abort(
"The version of this Interpolater for face-based data is not implemented or does not apply. Call 'interp' instead."); }
123 {
amrex::Abort(
"The Array<FArrayBox*, AMREX_SPACEDIM> version of this Interpolater is not implemented or does not apply. Call 'interp' instead."); }
204 const Box& fine_region,
211 RunOn runon)
override;
262 const Box& fine_region,
269 RunOn runon)
override;
322 const Box& fine_region,
329 RunOn runon)
override;
377 const Box& fine_region,
382 RunOn runon)
override;
434 const Box& fine_region,
441 RunOn runon)
override;
490 const Box& fine_region,
497 RunOn runon)
override;
550 const Box& fine_region,
557 RunOn runon)
override;
615 const Box& fine_region,
622 RunOn runon)
override;
647 const Box& fine_region,
655 RunOn runon)
override;
706 const Box& fine_region,
713 RunOn runon)
override;
737 const Box& fine_region,
744 RunOn runon)
override;
767 const Box& fine_region,
775 RunOn runon)
override;
827 const Box& fine_region,
834 RunOn runon)
override;
858 const Box& fine_region,
865 RunOn runon)
override;
888 const Box& fine_region,
896 RunOn runon)
override;
948 const Box& fine_region,
955 RunOn runon)
override;
#define AMREX_EXPORT
Definition: AMReX_Extension.H:191
Array4< Real > fine
Definition: AMReX_InterpFaceRegister.cpp:90
Array4< Real const > crse
Definition: AMReX_InterpFaceRegister.cpp:92
Bilinear interpolation on cell centered data.
Definition: AMReX_Interpolater.H:223
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:715
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:742
Linear conservative interpolation on cell centered data.
Definition: AMReX_Interpolater.H:289
CellConservativeLinear(bool do_linear_limiting_=true)
The constructor.
Definition: AMReX_Interpolater.cpp:767
bool do_linear_limiting
Definition: AMReX_Interpolater.H:333
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int, int, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:794
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:785
Lin. cons. interp. on cc data with protection against under/over-shoots.
Definition: AMReX_Interpolater.H:346
void protect(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, FArrayBox &fine_state, int state_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > &bcr, RunOn runon) override
Re-visit the interpolation to protect against under- or overshoots.
Definition: AMReX_Interpolater.cpp:1099
CellConservativeProtected()
The constructor.
Definition: AMReX_Interpolater.cpp:1095
Conservative quartic interpolation on cell averaged data.
Definition: AMReX_Interpolater.H:511
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:1181
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:1199
Quadratic interpolation on cell centered data.
Definition: AMReX_Interpolater.H:394
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:930
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:939
Quartic interpolation on cell centered data.
Definition: AMReX_Interpolater.H:909
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:1357
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:1365
A Fortran Array of REALs.
Definition: AMReX_FArrayBox.H:229
Bilinear tangential interpolation / linear normal interpolation of face data.
Definition: AMReX_Interpolater.H:788
void interp_face(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const IArrayBox &solve_mask, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int bccomp, RunOn runon) override
Coarse to fine interpolation in space for face-based data.
Definition: AMReX_Interpolater.cpp:474
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:442
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:414
void interp_arr(Array< FArrayBox *, AMREX_SPACEDIM > const &crse, int crse_comp, Array< FArrayBox *, AMREX_SPACEDIM > const &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, Array< IArrayBox *, AMREX_SPACEDIM > const &solve_mask, const Geometry &, const Geometry &, Vector< Array< BCRec, AMREX_SPACEDIM > > const &, int, int, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:584
Divergence-preserving interpolation on face centered data.
Definition: AMReX_Interpolater.H:575
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:1250
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:1234
void interp_arr(Array< FArrayBox *, AMREX_SPACEDIM > const &crse, int crse_comp, Array< FArrayBox *, AMREX_SPACEDIM > const &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, Array< IArrayBox *, AMREX_SPACEDIM > const &solve_mask, const Geometry &crse_geom, const Geometry &fine_geom, Vector< Array< BCRec, AMREX_SPACEDIM > > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:1268
Piecewise constant tangential interpolation / linear normal interpolation of face data.
Definition: AMReX_Interpolater.H:667
void interp_arr(Array< FArrayBox *, AMREX_SPACEDIM > const &crse, int crse_comp, Array< FArrayBox *, AMREX_SPACEDIM > const &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, Array< IArrayBox *, AMREX_SPACEDIM > const &solve_mask, const Geometry &, const Geometry &, Vector< Array< BCRec, AMREX_SPACEDIM > > const &, int, int, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:293
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:133
void interp_face(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const IArrayBox &solve_mask, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int bccomp, RunOn runon) override
Coarse to fine interpolation in space for face-based data.
Definition: AMReX_Interpolater.cpp:192
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:114
Rectangular problem domain geometry.
Definition: AMReX_Geometry.H:73
A Fortran Array of ints.
Definition: AMReX_IArrayBox.H:47
Definition: AMReX_InterpBase.H:26
Virtual base class for interpolaters.
Definition: AMReX_Interpolater.H:22
virtual void interp_arr(Array< FArrayBox *, AMREX_SPACEDIM > const &, const int, Array< FArrayBox *, AMREX_SPACEDIM > const &, const int, const int, const Box &, const IntVect &, Array< IArrayBox *, AMREX_SPACEDIM > const &, const Geometry &, const Geometry &, Vector< Array< BCRec, AMREX_SPACEDIM > > const &, const int, const int, const RunOn)
Coarse to fine interpolation in space. Takes an Array of FArrayBox*s.
Definition: AMReX_Interpolater.H:108
virtual void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon)=0
Coarse to fine interpolation in space. This is a pure virtual function and hence MUST be implemented ...
virtual void interp_face(const FArrayBox &, const int, FArrayBox &, const int, const int, const Box &, const IntVect &, const IArrayBox &, const Geometry &, const Geometry &, Vector< BCRec > const &, const int, RunOn)
Coarse to fine interpolation in space for face-based data.
Definition: AMReX_Interpolater.H:74
virtual void protect(const FArrayBox &, int, FArrayBox &, int, FArrayBox &, int, int, const Box &, const IntVect &, const Geometry &, const Geometry &, Vector< BCRec > &, RunOn)
Re-visit the interpolation to protect against under- or overshoots.
Definition: AMReX_Interpolater.H:141
Bilinear interpolation on node centered data.
Definition: AMReX_Interpolater.H:165
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:49
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:89
Piecewise Constant interpolation on cell centered data.
Definition: AMReX_Interpolater.H:451
Box CoarseBox(const Box &fine, int ratio) override
Returns coarsened box given fine box and refinement ratio.
Definition: AMReX_Interpolater.cpp:1056
void interp(const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon) override
Coarse to fine interpolation in space.
Definition: AMReX_Interpolater.cpp:1070
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition: AMReX_Vector.H:27
Definition: AMReX_Amr.cpp:49
CellConservativeProtected protected_interp
Definition: AMReX_Interpolater.cpp:42
CellConservativeQuartic quartic_interp
Definition: AMReX_Interpolater.cpp:43
FaceLinear face_linear_interp
Definition: AMReX_Interpolater.cpp:37
RunOn
Definition: AMReX_GpuControl.H:69
NodeBilinear node_bilinear_interp
Definition: AMReX_Interpolater.cpp:36
CellQuadratic quadratic_interp
Definition: AMReX_Interpolater.cpp:45
CellBilinear cell_bilinear_interp
Definition: AMReX_Interpolater.cpp:44
CellConservativeLinear cell_cons_interp(false)
Definition: AMReX_Interpolater.H:965
CellQuartic cell_quartic_interp
Definition: AMReX_Interpolater.cpp:46
FaceDivFree face_divfree_interp
Definition: AMReX_Interpolater.cpp:39
PCInterp pc_interp
CONSTRUCT A GLOBAL OBJECT OF EACH VERSION.
Definition: AMReX_Interpolater.cpp:35
void Abort(const std::string &msg)
Print out message to cerr and exit via abort().
Definition: AMReX.cpp:225
CellConservativeLinear lincc_interp
Definition: AMReX_Interpolater.cpp:40
FaceConservativeLinear face_cons_linear_interp
Definition: AMReX_Interpolater.cpp:38
std::array< T, N > Array
Definition: AMReX_Array.H:24