1#ifndef REMORA_PhysBCFunct_H_
2#define REMORA_PhysBCFunct_H_
3#include <AMReX_Config.H>
5#include <AMReX_BCRec.H>
6#include <AMReX_Geometry.H>
7#include <AMReX_MultiFab.H>
8#include <AMReX_ArrayLim.H>
9#include <AMReX_FilCC_C.H>
10#include <AMReX_FilND_C.H>
11#include <AMReX_FilFC_C.H>
12#include "AMReX_TypeTraits.H"
13#include "AMReX_Orientation.H"
26 const amrex::Geometry& geom,
const amrex::Vector<amrex::BCRec>& domain_bcs_type,
27 const amrex::Gpu::DeviceVector<amrex::BCRec>& domain_bcs_type_d,
28 amrex::Array<amrex::Array<amrex::Real,AMREX_SPACEDIM*2>,AMREX_SPACEDIM+
NCONS+8> bc_extdir_vals
38 void operator() (amrex::MultiFab& mf,
const amrex::MultiFab& mask,
int icomp,
int ncomp, amrex::IntVect
const& nghost,
39 amrex::Real time,
int bccomp,
int n_not_fill=0,
40 const amrex::MultiFab& mf_calc = amrex::MultiFab(),
41 const amrex::MultiFab& mf_msku = amrex::MultiFab(),
42 const amrex::MultiFab& mf_mskv = amrex::MultiFab());
45 void impose_xvel_bcs (
const amrex::Array4<amrex::Real>& dest_arr,
const amrex::Box& bx,
const amrex::Box& domain,
46 const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> dxInv,
const amrex::Array4<const amrex::Real>& msku,
47 const amrex::Array4<const amrex::Real>& calc_arr, amrex::Real time,
int bccomp);
50 void impose_yvel_bcs (
const amrex::Array4<amrex::Real>& dest_arr,
const amrex::Box& bx,
const amrex::Box& domain,
51 const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> dxInv,
const amrex::Array4<const amrex::Real>& mskv,
52 const amrex::Array4<const amrex::Real>& calc_arr, amrex::Real time,
int bccomp);
57 const amrex::Box& bx,
const amrex::Box& domain,
58 const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> dxInv,
const amrex::Array4<const amrex::Real>& mskr,
59 amrex::Real time,
int bccomp);
62 void impose_cons_bcs (
const amrex::Array4<amrex::Real>& mf,
const amrex::Box& bx,
const amrex::Box& valid_bx,
63 const amrex::Box& domain,
64 const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> dxInv,
const amrex::Array4<const amrex::Real>& mskr,
65 const amrex::Array4<const amrex::Real>& msku,
const amrex::Array4<const amrex::Real>& mskv,
66 const amrex::Array4<const amrex::Real>& calc_arr,
int icomp,
int ncomp, amrex::Real time,
int bccomp,
int n_not_fill);
amrex::Vector< amrex::FArrayBox > PlaneVector
amrex::Array< amrex::Array< amrex::Real, AMREX_SPACEDIM *2 >, AMREX_SPACEDIM+NCONS+8 > m_bc_extdir_vals
void impose_xvel_bcs(const amrex::Array4< amrex::Real > &dest_arr, const amrex::Box &bx, const amrex::Box &domain, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > dxInv, const amrex::Array4< const amrex::Real > &msku, const amrex::Array4< const amrex::Real > &calc_arr, amrex::Real time, int bccomp)
apply x-velocity type boundary conditions
amrex::Vector< amrex::BCRec > m_domain_bcs_type
void impose_cons_bcs(const amrex::Array4< amrex::Real > &mf, const amrex::Box &bx, const amrex::Box &valid_bx, const amrex::Box &domain, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > dxInv, const amrex::Array4< const amrex::Real > &mskr, const amrex::Array4< const amrex::Real > &msku, const amrex::Array4< const amrex::Real > &mskv, const amrex::Array4< const amrex::Real > &calc_arr, int icomp, int ncomp, amrex::Real time, int bccomp, int n_not_fill)
apply scalar type boundary conditions
amrex::Gpu::DeviceVector< amrex::BCRec > m_domain_bcs_type_d
void impose_yvel_bcs(const amrex::Array4< amrex::Real > &dest_arr, const amrex::Box &bx, const amrex::Box &domain, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > dxInv, const amrex::Array4< const amrex::Real > &mskv, const amrex::Array4< const amrex::Real > &calc_arr, amrex::Real time, int bccomp)
apply y-velocity type boundary conditions
REMORAPhysBCFunct(const int lev, const amrex::Geometry &geom, const amrex::Vector< amrex::BCRec > &domain_bcs_type, const amrex::Gpu::DeviceVector< amrex::BCRec > &domain_bcs_type_d, amrex::Array< amrex::Array< amrex::Real, AMREX_SPACEDIM *2 >, AMREX_SPACEDIM+NCONS+8 > bc_extdir_vals)
Constructor for physical boundary condition functor.
void impose_zvel_bcs(const amrex::Array4< amrex::Real > &dest_arr, const amrex::Box &bx, const amrex::Box &domain, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > dxInv, const amrex::Array4< const amrex::Real > &mskr, amrex::Real time, int bccomp)
apply z-velocity type boundary conditions
void operator()(amrex::MultiFab &mf, const amrex::MultiFab &mask, int icomp, int ncomp, amrex::IntVect const &nghost, amrex::Real time, int bccomp, int n_not_fill=0, const amrex::MultiFab &mf_calc=amrex::MultiFab(), const amrex::MultiFab &mf_msku=amrex::MultiFab(), const amrex::MultiFab &mf_mskv=amrex::MultiFab())
apply boundary condition to mf