Block-Structured AMR Software Framework
AMReX_InterpFaceRegister.H
Go to the documentation of this file.
1 #ifndef AMREX_INTERP_FACE_REGISTER_H_
2 #define AMREX_INTERP_FACE_REGISTER_H_
3 #include <AMReX_Config.H>
4 
5 #include <AMReX_MultiFab.H>
6 #include <AMReX_iMultiFab.H>
7 #include <AMReX_Geometry.H>
8 
9 namespace amrex {
10 
16 {
17 public:
18 
19  InterpFaceRegister () = default;
20 
29  InterpFaceRegister (BoxArray const& fba, DistributionMapping const& fdm,
30  Geometry const& fgeom, IntVect const& ref_ratio);
31 
40  void define (BoxArray const& fba, DistributionMapping const& fdm,
41  Geometry const& fgeom, IntVect const& ref_ratio);
42 
54  iMultiFab const& mask (Orientation face) const;
55 
67  int scomp, int ncomp);
68 
69 private:
74 
76 
79  Array<iMultiFab,2*AMREX_SPACEDIM> m_face_mask; // crse/fine: 1, fine/fine & fine/physbc: 0
80 };
81 
82 }
83 
84 #endif
Array4< Real > fine
Definition: AMReX_InterpFaceRegister.cpp:90
Array4< Real const > crse
Definition: AMReX_InterpFaceRegister.cpp:92
A collection of Boxes stored in an Array.
Definition: AMReX_BoxArray.H:530
Calculates the distribution of FABs to MPI processes.
Definition: AMReX_DistributionMapping.H:41
Rectangular problem domain geometry.
Definition: AMReX_Geometry.H:73
InterpFaceRegister is a coarse/fine boundary register for interpolation of face data at the coarse/fi...
Definition: AMReX_InterpFaceRegister.H:16
void interp(Array< MultiFab *, AMREX_SPACEDIM > const &fine, Array< MultiFab const *, AMREX_SPACEDIM > const &crse, int scomp, int ncomp)
Interpolates from coarse to fine data at coarse/fine boundaries.
Definition: AMReX_InterpFaceRegister.cpp:102
iMultiFab const & mask(Orientation face) const
Returns a coarse/fine boundary mask for a given face.
Definition: AMReX_InterpFaceRegister.cpp:82
DistributionMapping m_fine_dm
Definition: AMReX_InterpFaceRegister.H:71
Geometry m_crse_geom
Definition: AMReX_InterpFaceRegister.H:75
void define(BoxArray const &fba, DistributionMapping const &fdm, Geometry const &fgeom, IntVect const &ref_ratio)
Defines an InterpFaceRegister object.
Definition: AMReX_InterpFaceRegister.cpp:12
Geometry m_fine_geom
Definition: AMReX_InterpFaceRegister.H:72
IntVect m_ref_ratio
Definition: AMReX_InterpFaceRegister.H:73
Array< BoxArray, 2 *AMREX_SPACEDIM > m_crse_face_ba
Definition: AMReX_InterpFaceRegister.H:78
Array< BoxArray, 2 *AMREX_SPACEDIM > m_fine_face_ba
Definition: AMReX_InterpFaceRegister.H:77
Array< iMultiFab, 2 *AMREX_SPACEDIM > m_face_mask
Definition: AMReX_InterpFaceRegister.H:79
BoxArray m_fine_ba
Definition: AMReX_InterpFaceRegister.H:70
Encapsulation of the Orientation of the Faces of a Box.
Definition: AMReX_Orientation.H:29
Definition: AMReX_iMultiFab.H:32
Definition: AMReX_Amr.cpp:49
std::array< T, N > Array
Definition: AMReX_Array.H:23