REMORA
Regional Modeling of Oceans Refined Adaptively
Loading...
Searching...
No Matches
REMORAPhysBCFunct Class Reference

#include <REMORA_PhysBCFunct.H>

Collaboration diagram for REMORAPhysBCFunct:

Public Member Functions

 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.
 
 ~REMORAPhysBCFunct ()
 
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
 
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
 
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
 
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 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
 

Private Attributes

int m_lev
 
amrex::Geometry m_geom
 
amrex::Vector< amrex::BCRec > m_domain_bcs_type
 
amrex::Gpu::DeviceVector< amrex::BCRec > m_domain_bcs_type_d
 
amrex::Array< amrex::Array< amrex::Real, AMREX_SPACEDIM *2 >, AMREX_SPACEDIM+NCONS+8 > m_bc_extdir_vals
 

Detailed Description

Definition at line 21 of file REMORA_PhysBCFunct.H.

Constructor & Destructor Documentation

◆ REMORAPhysBCFunct()

REMORAPhysBCFunct::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 
)
inline

Constructor for physical boundary condition functor.

Definition at line 25 of file REMORA_PhysBCFunct.H.

◆ ~REMORAPhysBCFunct()

REMORAPhysBCFunct::~REMORAPhysBCFunct ( )
inline

Definition at line 35 of file REMORA_PhysBCFunct.H.

Member Function Documentation

◆ impose_cons_bcs()

void REMORAPhysBCFunct::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

Parameters
[in,out]dest_arrdata on which to apply BCs
[in]bxbox to update on
[in]valid_bxvalid box
[in]domaindomain box
[in]dxInvpm or pn
[in]mskrland-sea mask on rho-points
[in]mskuland-sea mask on u-points
[in]mskvland-sea mask on v-points
[in]calc_arrdata to use in the RHS of calculations
[in]icompcomponent to update
[in]ncompnumber of components to update, starting from icomp
[in]timecurrent time
[in]bccompindex into both domain_bcs_type_bcr and bc_extdir_vals for icomp=0
[in]n_not_fillperimter of cells in x and y where BCs are not applied for non-ext_dir conditions

Definition at line 22 of file REMORA_BoundaryConditions_cons.cpp.

Referenced by impose_cons_bcs(), and operator()().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ impose_xvel_bcs()

void REMORAPhysBCFunct::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

Parameters
[in,out]dest_arrdata on which to apply BCs
[in]bxbox to update on
[in]domaindomain box
[in]dxInvpm or pn
[in]mskuland-sea mask on u-points
[in]calc_arrdata to use in the RHS of calculations
[in]timecurrent time
[in]bccompindex into both domain_bcs_type_bcr and bc_extdir_vals for icomp=0

Definition at line 16 of file REMORA_BoundaryConditions_xvel.cpp.

Referenced by impose_xvel_bcs(), and operator()().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ impose_yvel_bcs()

void REMORAPhysBCFunct::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

Parameters
[in,out]dest_arrdata on which to apply BCs
[in]bxbox to update on
[in]domaindomain box
[in]dxInvpm or pn
[in]mskvland-sea mask on v-points
[in]calc_arrdata to use in the RHS of calculations
[in]timecurrent time
[in]bccompindex into both domain_bcs_type_bcr and bc_extdir_vals for icomp=0

Definition at line 16 of file REMORA_BoundaryConditions_yvel.cpp.

Referenced by impose_yvel_bcs(), and operator()().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ impose_zvel_bcs()

void REMORAPhysBCFunct::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

Parameters
[in,out]dest_arrdata on which to apply BCs
[in]bxbox to update on
[in]domaindomain box
[in]dxInvpm or pn
[in]mskrland-sea mask on rho-points
[in]calc_arrdata to use in the RHS of calculations
[in]timecurrent time
[in]bccompindex into both domain_bcs_type_bcr and bc_extdir_vals for icomp=0

Based on BCRec for the domain, we need to make BCRec for this Box

Definition at line 17 of file REMORA_BoundaryConditions_zvel.cpp.

Referenced by operator()().

Here is the caller graph for this function:

◆ operator()()

void REMORAPhysBCFunct::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

Parameters
[in,out]mfmultifab to be filled
[in]mskland/sea mask for the variable
[in]icompindex into the MultiFab – if cell-centered this can be any value from 0 to NCONS-1, if face-centered can be any value from 0 to 2 (inclusive)
[in]ncompnumber of components – if cell-centered this can be any value from 1 to NCONS as long as icomp+ncomp <= NCONS-1. If face-centered this must be 1
[in]nghosthow many ghost cells to be filled
[in]timetime at which the data should be filled
[in]bccompindex into both domain_bcs_type_bcr and bc_extdir_vals for icomp = 0 so this follows the BCVars enum
[in]n_not_fillhalo size to not fill
[in]mf_calcdata to use in calculation of RHS
[in]mf_mskuland-sea mask at u-points
[in]mf_mskvland-sea mask at v-points

Definition at line 20 of file REMORA_PhysBCFunct.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ m_bc_extdir_vals

amrex::Array<amrex::Array<amrex::Real, AMREX_SPACEDIM*2>,AMREX_SPACEDIM+NCONS+8> REMORAPhysBCFunct::m_bc_extdir_vals
private

◆ m_domain_bcs_type

amrex::Vector<amrex::BCRec> REMORAPhysBCFunct::m_domain_bcs_type
private

◆ m_domain_bcs_type_d

amrex::Gpu::DeviceVector<amrex::BCRec> REMORAPhysBCFunct::m_domain_bcs_type_d
private

Definition at line 73 of file REMORA_PhysBCFunct.H.

◆ m_geom

amrex::Geometry REMORAPhysBCFunct::m_geom
private

◆ m_lev

int REMORAPhysBCFunct::m_lev
private

Definition at line 70 of file REMORA_PhysBCFunct.H.


The documentation for this class was generated from the following files: