Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_MFInterpolater.H
Go to the documentation of this file.
1#ifndef AMREX_MF_INTERPOLATER_H_
2#define AMREX_MF_INTERPOLATER_H_
3#include <AMReX_Config.H>
4
5#include <AMReX_Extension.H>
6#include <AMReX_InterpBase.H>
7
13namespace amrex {
14
15class MultiFab;
16class Geometry;
17
19 : public InterpBase
20{
21public:
38 virtual void interp (MultiFab const& crsemf, int ccomp, MultiFab& finemf, int fcomp, int ncomp,
39 IntVect const& ng, Geometry const& cgeom, Geometry const& fgeom,
40 Box const& dest_domain, IntVect const& ratio,
41 Vector<BCRec> const& bcs, int bcscomp) = 0;
42};
43
47class MFPCInterp final
48 : public MFInterpolater
49{
50public:
51 Box CoarseBox (Box const& fine, int ratio) override;
52 Box CoarseBox (Box const& fine, IntVect const& ratio) override;
53
54 void interp (MultiFab const& crsemf, int ccomp, MultiFab& finemf, int fcomp, int ncomp,
55 IntVect const& ng, Geometry const& cgeom, Geometry const& fgeom,
56 Box const& dest_domain, IntVect const& ratio,
57 Vector<BCRec> const& bcs, int bcscomp) override;
58};
59
71 : public MFInterpolater
72{
73public:
74 explicit MFCellConsLinInterp (bool do_linear_limiting_)
75 : do_linear_limiting(do_linear_limiting_) {}
76
77 Box CoarseBox (Box const& fine, int ratio) override;
78 Box CoarseBox (Box const& fine, IntVect const& ratio) override;
79
80 void interp (MultiFab const& crsemf, int ccomp, MultiFab& finemf, int fcomp, int ncomp,
81 IntVect const& ng, Geometry const& cgeom, Geometry const& fgeom,
82 Box const& dest_domain, IntVect const& ratio,
83 Vector<BCRec> const& bcs, int bcomp) override;
84protected:
85 bool do_linear_limiting = true;
86};
87
100 : public MFInterpolater
101{
102public:
103 Box CoarseBox (Box const& fine, int ratio) override;
104 Box CoarseBox (Box const& fine, IntVect const& ratio) override;
105
106 void interp (MultiFab const& crsemf, int ccomp, MultiFab& finemf, int fcomp, int ncomp,
107 IntVect const& ng, Geometry const& cgeom, Geometry const& fgeom,
108 Box const& dest_domain, IntVect const& ratio,
109 Vector<BCRec> const& bcs, int bcomp) override;
110};
111
115class MFCellBilinear final
116 : public MFInterpolater
117{
118public:
119 Box CoarseBox (Box const& fine, int ratio) override;
120 Box CoarseBox (Box const& fine, IntVect const& ratio) override;
121
122 void interp (MultiFab const& crsemf, int ccomp, MultiFab& finemf, int fcomp, int ncomp,
123 IntVect const& ng, Geometry const& cgeom, Geometry const& fgeom,
124 Box const& dest_domain, IntVect const& ratio,
125 Vector<BCRec> const& bcs, int bcscomp) override;
126};
127
128/*
129 * \brief [Bi|Tri] linear interpolation on nodal data
130 */
131class MFNodeBilinear final
132 : public MFInterpolater
133{
134public:
135 Box CoarseBox (Box const& fine, int ratio) override;
136 Box CoarseBox (Box const& fine, IntVect const& ratio) override;
137
138 void interp (MultiFab const& crsemf, int ccomp, MultiFab& finemf, int fcomp, int ncomp,
139 IntVect const& ng, Geometry const& cgeom, Geometry const& fgeom,
140 Box const& dest_domain, IntVect const& ratio,
141 Vector<BCRec> const& bcs, int bcscomp) override;
142};
143
150
151}
152
153#endif
#define AMREX_EXPORT
Definition AMReX_Extension.H:191
Abstract base for spatial interpolaters used during FillPatch.
Array4< Real > fine
Definition AMReX_InterpFaceRegister.cpp:90
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:74
Definition AMReX_InterpBase.H:34
[Bi|Tri]linear interpolation on cell centered data.
Definition AMReX_MFInterpolater.H:117
Box CoarseBox(Box const &fine, int ratio) override
Return the coarsened box bounding fine for scalar refinement ratio ratio.
Definition AMReX_MFInterpolater.cpp:505
void interp(MultiFab const &crsemf, int ccomp, MultiFab &finemf, int fcomp, int ncomp, IntVect const &ng, Geometry const &cgeom, Geometry const &fgeom, Box const &dest_domain, IntVect const &ratio, Vector< BCRec > const &bcs, int bcscomp) override
Interpolate coarse MultiFab data onto a fine MultiFab region.
Definition AMReX_MFInterpolater.cpp:511
Linear conservative interpolation on cell centered data.
Definition AMReX_MFInterpolater.H:72
void interp(MultiFab const &crsemf, int ccomp, MultiFab &finemf, int fcomp, int ncomp, IntVect const &ng, Geometry const &cgeom, Geometry const &fgeom, Box const &dest_domain, IntVect const &ratio, Vector< BCRec > const &bcs, int bcomp) override
Interpolate coarse MultiFab data onto a fine MultiFab region.
Definition AMReX_MFInterpolater.cpp:95
MFCellConsLinInterp(bool do_linear_limiting_)
Definition AMReX_MFInterpolater.H:74
Box CoarseBox(Box const &fine, int ratio) override
Return the coarsened box bounding fine for scalar refinement ratio ratio.
Definition AMReX_MFInterpolater.cpp:87
bool do_linear_limiting
Definition AMReX_MFInterpolater.H:85
Linear conservative interpolation on cell centered data.
Definition AMReX_MFInterpolater.H:101
Box CoarseBox(Box const &fine, int ratio) override
Return the coarsened box bounding fine for scalar refinement ratio ratio.
Definition AMReX_MFInterpolater.cpp:389
void interp(MultiFab const &crsemf, int ccomp, MultiFab &finemf, int fcomp, int ncomp, IntVect const &ng, Geometry const &cgeom, Geometry const &fgeom, Box const &dest_domain, IntVect const &ratio, Vector< BCRec > const &bcs, int bcomp) override
Interpolate coarse MultiFab data onto a fine MultiFab region.
Definition AMReX_MFInterpolater.cpp:397
Definition AMReX_MFInterpolater.H:20
virtual void interp(MultiFab const &crsemf, int ccomp, MultiFab &finemf, int fcomp, int ncomp, IntVect const &ng, Geometry const &cgeom, Geometry const &fgeom, Box const &dest_domain, IntVect const &ratio, Vector< BCRec > const &bcs, int bcscomp)=0
Interpolate coarse MultiFab data onto a fine MultiFab region.
Definition AMReX_MFInterpolater.H:133
void interp(MultiFab const &crsemf, int ccomp, MultiFab &finemf, int fcomp, int ncomp, IntVect const &ng, Geometry const &cgeom, Geometry const &fgeom, Box const &dest_domain, IntVect const &ratio, Vector< BCRec > const &bcs, int bcscomp) override
Interpolate coarse MultiFab data onto a fine MultiFab region.
Definition AMReX_MFInterpolater.cpp:568
Box CoarseBox(Box const &fine, int ratio) override
Return the coarsened box bounding fine for scalar refinement ratio ratio.
Definition AMReX_MFInterpolater.cpp:562
Piecewise constant interpolation on cell-centered data.
Definition AMReX_MFInterpolater.H:49
void interp(MultiFab const &crsemf, int ccomp, MultiFab &finemf, int fcomp, int ncomp, IntVect const &ng, Geometry const &cgeom, Geometry const &fgeom, Box const &dest_domain, IntVect const &ratio, Vector< BCRec > const &bcs, int bcscomp) override
Interpolate coarse MultiFab data onto a fine MultiFab region.
Definition AMReX_MFInterpolater.cpp:33
Box CoarseBox(Box const &fine, int ratio) override
Return the coarsened box bounding fine for scalar refinement ratio ratio.
Definition AMReX_MFInterpolater.cpp:27
A collection (stored as an array) of FArrayBox objects.
Definition AMReX_MultiFab.H:40
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition AMReX_Vector.H:28
Definition AMReX_Amr.cpp:49
MFNodeBilinear mf_node_bilinear_interp
Definition AMReX_MFInterpolater.cpp:18
MFCellConsLinInterp mf_lincc_interp(true)
Definition AMReX_MFInterpolater.H:146
MFCellConsLinMinmaxLimitInterp mf_linear_slope_minmax_interp
Definition AMReX_MFInterpolater.cpp:14
MFPCInterp mf_pc_interp
Definition AMReX_MFInterpolater.cpp:11
MFCellBilinear mf_cell_bilinear_interp
Definition AMReX_MFInterpolater.cpp:15
MFCellConsLinInterp mf_cell_cons_interp(false)
Definition AMReX_MFInterpolater.H:145