Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_EBMultiFabUtil.H
Go to the documentation of this file.
1#ifndef AMREX_EBMULTIFABUTIL_H_
2#define AMREX_EBMULTIFABUTIL_H_
3#include <AMReX_Config.H>
4
5#include <AMReX_MultiFab.H>
6#include <AMReX_Array.H>
7#include <AMReX_Vector.H>
8#include <AMReX_BCRec.H>
9
16namespace amrex
17{
21 void EB_set_covered (MultiFab& mf, Real val);
31 void EB_set_covered (MultiFab& mf, int icomp, int ncomp, int ngrow, Real val);
40 void EB_set_covered (MultiFab& mf, int icomp, int ncomp, const Vector<Real>& vals);
50 void EB_set_covered (MultiFab& mf, int icomp, int ncomp, int ngrow, const Vector<Real>& vals);
51
55 void EB_set_covered_faces (const Array<MultiFab*,AMREX_SPACEDIM>& umac, Real val);
59 void EB_set_covered_faces (const Array<MultiFab*,AMREX_SPACEDIM>& umac, int scomp, int ncomp, const Vector<Real>& vals);
60
72 void EB_average_down (const MultiFab& S_fine, MultiFab& S_crse, const MultiFab& vol_fine,
73 const MultiFab& vfrac_fine, int scomp, int ncomp, const IntVect& ratio);
74
76 void EB_average_down (const MultiFab& S_fine, MultiFab& S_crse, int scomp, int ncomp,
77 int ratio);
79 void EB_average_down (const MultiFab& S_fine, MultiFab& S_crse, int scomp, int ncomp,
80 const IntVect& ratio);
81
90 void EB_average_down_faces (const Array<const MultiFab*,AMREX_SPACEDIM>& fine,
91 const Array< MultiFab*,AMREX_SPACEDIM>& crse,
92 int ratio, int ngcrse);
94 void EB_average_down_faces (const Array<const MultiFab*,AMREX_SPACEDIM>& fine,
95 const Array< MultiFab*,AMREX_SPACEDIM>& crse,
96 const IntVect& ratio, int ngcrse);
97
101 void EB_average_down_faces (const Array<const MultiFab*,AMREX_SPACEDIM>& fine,
102 const Array< MultiFab*,AMREX_SPACEDIM>& crse,
103 const IntVect& ratio, const Geometry& crse_geom);
104
106 void EB_average_down_boundaries (const MultiFab& fine, MultiFab& crse,
107 int ratio, int ngcrse);
109 void EB_average_down_boundaries (const MultiFab& fine, MultiFab& crse,
110 const IntVect& ratio, int ngcrse);
111
120 void EB_computeDivergence (MultiFab& divu, const Array<MultiFab const*,AMREX_SPACEDIM>& umac,
121 const Geometry& geom, bool already_on_centroids);
122
132 void EB_computeDivergence (MultiFab& divu, const Array<MultiFab const*,AMREX_SPACEDIM>& umac,
133 const Geometry& geom, bool already_on_centroids,
134 const MultiFab& vel_eb);
135
139 void EB_average_face_to_cellcenter (MultiFab& ccmf, int dcomp,
140 const Array<MultiFab const*,AMREX_SPACEDIM>& fmf);
141
145 void EB_interp_CC_to_Centroid (MultiFab& cent, const MultiFab& cc, int scomp, int dcomp, int ncomp, const Geometry& geom);
146
150 void EB_interp_CC_to_FaceCentroid (const MultiFab& cc,
151 AMREX_D_DECL( MultiFab& fc_x,
152 MultiFab& fc_y,
153 MultiFab& fc_z),
154 int scomp, int dcomp, int nc,
155 const Geometry& geom,
156 const amrex::Vector<amrex::BCRec>& a_bcs);
157
159 void EB_interp_CellCentroid_to_FaceCentroid (const MultiFab& phi_centroid,
160 const Array<MultiFab *,AMREX_SPACEDIM>& phi_faces,
161 int scomp, int dcomp, int nc,
162 const Geometry& geom,
163 const amrex::Vector<amrex::BCRec>& a_bcs);
164
166 void EB_interp_CellCentroid_to_FaceCentroid (const MultiFab& phi_centroid,
167 const Vector<MultiFab*>& phi_faces,
168 int scomp, int dcomp, int nc,
169 const Geometry& geom,
170 const amrex::Vector<amrex::BCRec>& a_bcs);
171
173 void EB_interp_CellCentroid_to_FaceCentroid (const MultiFab& phi_centroid,
174 AMREX_D_DECL( MultiFab& phi_xface,
175 MultiFab& phi_yface,
176 MultiFab& phi_zface),
177 int scomp, int dcomp, int nc,
178 const Geometry& geom,
179 const amrex::Vector<amrex::BCRec>& a_bcs);
180}
181
182#endif
Array4< Real > fine
Definition AMReX_InterpFaceRegister.cpp:90
Array4< Real const > crse
Definition AMReX_InterpFaceRegister.cpp:92
#define AMREX_D_DECL(a, b, c)
Definition AMReX_SPACE.H:171
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition AMReX_Vector.H:28
amrex_real Real
Floating Point Type for Fields.
Definition AMReX_REAL.H:79
Definition AMReX_Amr.cpp:49
void EB_average_face_to_cellcenter(MultiFab &ccmf, int dcomp, const Array< MultiFab const *, 3 > &fmf)
Average face-centered values to cell centers.
Definition AMReX_EBMultiFabUtil.cpp:806
void EB_set_covered(MultiFab &mf, Real val)
Fill all covered cells with a single value val.
Definition AMReX_EBMultiFabUtil.cpp:21
void EB_average_down(const MultiFab &S_fine, MultiFab &S_crse, const MultiFab &vol_fine, const MultiFab &vfrac_fine, int scomp, int ncomp, const IntVect &ratio)
Volume-weighted average-down from fine to coarse using EB volume fractions.
Definition AMReX_EBMultiFabUtil.cpp:336
void EB_interp_CellCentroid_to_FaceCentroid(const MultiFab &phi_centroid, const Array< MultiFab *, 3 > &phi_faces, int scomp, int dcomp, int nc, const Geometry &geom, const amrex::Vector< amrex::BCRec > &a_bcs)
Interpolate cell centroids to face centroids (array overload).
Definition AMReX_EBMultiFabUtil.cpp:1024
IntVectND< 3 > IntVect
IntVect is an alias for amrex::IntVectND instantiated with AMREX_SPACEDIM.
Definition AMReX_BaseFwd.H:33
void EB_interp_CC_to_Centroid(MultiFab &cent, const MultiFab &cc, int scomp, int dcomp, int ncomp, const Geometry &geom)
Interpolate cell-centered data to cell centroids.
Definition AMReX_EBMultiFabUtil.cpp:861
void EB_average_down_faces(const Array< const MultiFab *, 3 > &fine, const Array< MultiFab *, 3 > &crse, int ratio, int ngcrse)
Average face-centered data from fine to coarse grids weighted by area fractions.
Definition AMReX_EBMultiFabUtil.cpp:500
void EB_computeDivergence(MultiFab &divu, const Array< MultiFab const *, 3 > &umac, const Geometry &geom, bool already_on_centroids)
Compute divergence of face-centered velocity umac.
Definition AMReX_EBMultiFabUtil.cpp:681
void EB_set_covered_faces(const Array< MultiFab *, 3 > &umac, Real val)
Fill covered faces in all directions with constant val.
Definition AMReX_EBMultiFabUtil.cpp:109
void EB_average_down_boundaries(const MultiFab &fine, MultiFab &crse, int ratio, int ngcrse)
Average EB boundary data from fine to coarse faces.
Definition AMReX_EBMultiFabUtil.cpp:619
void EB_interp_CC_to_FaceCentroid(const MultiFab &cc, MultiFab &fc_x, MultiFab &fc_y, MultiFab &fc_z, int scomp, int dcomp, int ncomp, const Geometry &a_geom, const Vector< BCRec > &a_bcs)
Interpolate cell-centered data to face centroids for each direction.
Definition AMReX_EBMultiFabUtil.cpp:911