Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_InterpBase.H
Go to the documentation of this file.
1#ifndef AMREX_INTERP_BASE_H_
2#define AMREX_INTERP_BASE_H_
3#include <AMReX_Config.H>
4
5#include <AMReX_BCRec.H>
6#include <AMReX_Box.H>
7#include <AMReX_Vector.H>
8
14namespace amrex {
15
16class InterpBase;
17
19 : public BoxConverter
20{
21public:
23 InterpolaterBoxCoarsener (InterpBase* mapper_, const IntVect& ratio_);
25 [[nodiscard]] Box doit (const Box& fine) const override;
27 [[nodiscard]] BoxConverter* clone () const override;
28private:
29 InterpBase* mapper;
30 IntVect ratio;
31};
32
34{
35public:
36 InterpBase () = default;
37 virtual ~InterpBase () = default;
38 InterpBase (InterpBase const&) noexcept = default;
39 InterpBase (InterpBase &&) noexcept = default;
40 InterpBase& operator= (InterpBase const&) noexcept = default;
41 InterpBase& operator= (InterpBase &&) noexcept = default;
42
46 virtual Box CoarseBox (const Box& fine, int ratio) = 0;
47
49 virtual Box CoarseBox (const Box& fine, const IntVect& ratio) = 0;
50
53
55 static Vector<int> GetBCArray (const Vector<BCRec>& bcr);
56};
57
58}
59
60#endif
Array4< Real > fine
Definition AMReX_InterpFaceRegister.cpp:90
Boundary Condition Records. Necessary information and functions for computing boundary conditions.
Definition AMReX_BCRec.H:17
Definition AMReX_Box.H:1257
Definition AMReX_InterpBase.H:34
InterpBase(InterpBase const &) noexcept=default
InterpBase(InterpBase &&) noexcept=default
virtual Box CoarseBox(const Box &fine, int ratio)=0
Return the coarsened box bounding fine for scalar refinement ratio ratio.
virtual ~InterpBase()=default
InterpolaterBoxCoarsener BoxCoarsener(const IntVect &ratio)
Convenience helper that returns a BoxConverter bound to this interpolater.
Definition AMReX_InterpBase.cpp:22
static Vector< int > GetBCArray(const Vector< BCRec > &bcr)
Convert BCRec entries to an integer array that interpolaters can consume.
Definition AMReX_InterpBase.cpp:28
InterpBase()=default
Definition AMReX_InterpBase.H:20
Box doit(const Box &fine) const override
Apply the coarse-box logic to the supplied fine box.
Definition AMReX_InterpBase.cpp:10
BoxConverter * clone() const override
Clone this converter (used by FAB factory code).
Definition AMReX_InterpBase.cpp:16
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