Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_EB_utils.H
Go to the documentation of this file.
1#ifndef AMREX_EB_UTILS_H_
2#define AMREX_EB_UTILS_H_
3#include <AMReX_Config.H>
4
5#include <AMReX.H>
6#include <AMReX_MultiFab.H>
7#include <AMReX_EB2.H>
9
16namespace amrex {
30 template <typename G>
31 void FillImpFunc (MultiFab& mf, G const& gshop, Geometry const& geom)
32 {
34
35 Box bounding_box = geom.Domain();
36 bounding_box.surroundingNodes();
37 bool extend_domain_face = EB2::ExtendDomainFace();
38 for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
39 if (!extend_domain_face || geom.isPeriodic(idim)) {
40 bounding_box.grow(mf.nGrowVect()[idim]);
41 }
42 }
43
44#ifdef AMREX_USE_OMP
45#pragma omp parallel if (Gpu::notInLaunchRegion())
46#endif
47 for(MFIter mfi(mf); mfi.isValid(); ++ mfi) {
48 gshop.fillFab(mf[mfi], geom, RunOn::Gpu, bounding_box);
49 }
50 }
51
65 void FillSignedDistance (MultiFab& mf, EB2::Level const& ls_lev,
66 EBFArrayBoxFactory const& eb_fac, int refratio,
67 bool fluid_has_positive_sign=true);
68
79 void FillSignedDistance (MultiFab& mf, bool fluid_has_positive_sign=true);
80}
81
82#endif
#define AMREX_ALWAYS_ASSERT(EX)
Definition AMReX_BLassert.H:50
__host__ __device__ BoxND & grow(int i) noexcept
Definition AMReX_Box.H:641
__host__ __device__ BoxND & surroundingNodes() noexcept
Convert to NODE type in all directions.
Definition AMReX_Box.H:1008
IntVect nGrowVect() const noexcept
Definition AMReX_FabArrayBase.H:80
bool is_nodal() const noexcept
This tests on whether the FabArray is fully nodal.
Definition AMReX_FabArrayBase.cpp:2686
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:74
const Box & Domain() const noexcept
Returns our rectangular domain.
Definition AMReX_Geometry.H:211
bool isPeriodic(int dir) const noexcept
Is the domain periodic in the specified direction?
Definition AMReX_Geometry.H:332
Iterator for looping ever tiles and boxes of amrex::FabArray based containers.
Definition AMReX_MFIter.H:88
bool isValid() const noexcept
Is the iterator valid i.e. is it associated with a FAB?
Definition AMReX_MFIter.H:172
A collection (stored as an array) of FArrayBox objects.
Definition AMReX_MultiFab.H:40
bool ExtendDomainFace()
Definition AMReX_EB2.cpp:53
Definition AMReX_Amr.cpp:49
void FillImpFunc(MultiFab &mf, G const &gshop, Geometry const &geom)
Fill MultiFab with implicit function.
Definition AMReX_EB_utils.H:31
void FillSignedDistance(MultiFab &mf, bool fluid_has_positive_sign)
Fill MultiFab with signed distance.
Definition AMReX_EB_utils.cpp:11