IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
IBAMR::StaggeredStokesPhysicalBoundaryHelper Class Reference

Class StaggeredStokesPhysicalBoundaryHelper provides helper functions to enforce physical boundary conditions for a staggered grid discretization of the incompressible (Navier-)Stokes equations. More...

#include </home/runner/work/IBAMR/IBAMR/include/ibamr/StaggeredStokesPhysicalBoundaryHelper.h>

Inheritance diagram for IBAMR::StaggeredStokesPhysicalBoundaryHelper:
Inheritance graph
[legend]

Public Member Functions

 StaggeredStokesPhysicalBoundaryHelper ()=default
 Default constructor.
 
 ~StaggeredStokesPhysicalBoundaryHelper ()=default
 Destructor.
 
void enforceNormalVelocityBoundaryConditions (int u_data_idx, int p_data_idx, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &u_bc_coefs, double fill_time, bool homogeneous_bc, int coarsest_ln=IBTK::invalid_level_number, int finest_ln=IBTK::invalid_level_number) const
 At Dirichlet boundaries, set values to enforce normal velocity boundary conditions at the boundary.
 
void enforceDivergenceFreeConditionAtBoundary (int u_data_idx, int coarsest_ln=IBTK::invalid_level_number, int finest_ln=IBTK::invalid_level_number, short int bdry_tag=NORMAL_TRACTION_BDRY) const
 Set normal velocity ghost cell values to enforce discrete divergence-free condition in the ghost cells abutting the physical boundary. More...
 
void enforceDivergenceFreeConditionAtBoundary (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > u_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, short int bdry_tag=NORMAL_TRACTION_BDRY) const
 Set normal velocity ghost cell values to enforce discrete divergence-free condition in the ghost cells abutting the physical boundary. More...
 
- Public Member Functions inherited from IBTK::StaggeredPhysicalBoundaryHelper
 StaggeredPhysicalBoundaryHelper ()=default
 Default constructor.
 
virtual ~StaggeredPhysicalBoundaryHelper ()=default
 Destructor.
 
void copyDataAtDirichletBoundaries (int u_out_data_idx, int u_in_data_idx, int coarsest_ln=invalid_level_number, int finest_ln=invalid_level_number) const
 Copy data to u_data_out_idx from u_data_in_idx at Dirichlet boundaries over the specified range of levels in the patch hierarchy.
 
void copyDataAtDirichletBoundaries (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > u_out_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > u_in_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch) const
 Copy data to u_data_out_idx from u_data_in_idx at Dirichlet boundaries on a single patch.
 
void setupMaskingFunction (int mask_data_idx, int coarsest_ln=invalid_level_number, int finest_ln=invalid_level_number) const
 Setup a masking function over the specified range of levels in the patch hierarchy.
 
void setupMaskingFunction (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, int > > u_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch) const
 Setup a masking function on a single patch.
 
bool patchTouchesDirichletBoundary (SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch) const
 Return a boolean value indicating whether a patch has Dirichlet boundaries.
 
bool patchTouchesDirichletBoundaryAxis (SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const unsigned int axis) const
 Return a boolean value indicating whether a patch has Dirichlet boundaries in the specified coordinate axis.
 
void cacheBcCoefData (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &u_bc_coefs, double fill_time, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy)
 Cache boundary coefficient data.
 
virtual void clearBcCoefData ()
 Clear cached boundary coefficient data.
 

Static Public Member Functions

static void setupBcCoefObjects (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &u_bc_coefs, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *p_bc_coef, int u_target_data_idx, int p_target_data_idx, bool homogeneous_bc)
 Setup physical boundary condition specification objects for simultaneously filling velocity and pressure data.
 
static void resetBcCoefObjects (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &u_bc_coefs, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *p_bc_coef)
 Reset physical boundary condition specification objects.
 

Static Public Attributes

static const short int NORMAL_TRACTION_BDRY = 0x100
 Boundary tags.
 
static const short int NORMAL_VELOCITY_BDRY = 0x200
 
static const short int ALL_BDRY = 0x100 | 0x200
 

Additional Inherited Members

- Static Protected Member Functions inherited from IBTK::StaggeredPhysicalBoundaryHelper
static void setupBcCoefBoxes (SAMRAI::hier::Box< NDIM > &bc_coef_box, SAMRAI::hier::BoundaryBox< NDIM > &trimmed_bdry_box, const SAMRAI::hier::BoundaryBox< NDIM > &bdry_box, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch)
 Setup boundary boxes used for setting boundary condition coefficients.
 
- Protected Attributes inherited from IBTK::StaggeredPhysicalBoundaryHelper
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > d_hierarchy
 
std::vector< std::map< int, SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM > > > > d_physical_codim1_boxes
 
std::vector< std::map< int, std::vector< SAMRAI::tbox::Pointer< SAMRAI::pdat::ArrayData< NDIM, bool > > > > > d_dirichlet_bdry_locs
 

Detailed Description

Class StaggeredStokesPhysicalBoundaryHelper provides helper functions to enforce physical boundary conditions for a staggered grid discretization of the incompressible (Navier-)Stokes equations.

Member Function Documentation

◆ enforceDivergenceFreeConditionAtBoundary() [1/2]

void IBAMR::StaggeredStokesPhysicalBoundaryHelper::enforceDivergenceFreeConditionAtBoundary ( int  u_data_idx,
int  coarsest_ln = IBTK::invalid_level_number,
int  finest_ln = IBTK::invalid_level_number,
short int  bdry_tag = NORMAL_TRACTION_BDRY 
) const

Set normal velocity ghost cell values to enforce discrete divergence-free condition in the ghost cells abutting the physical boundary.

Note
The default behavior is to set these values only in cells adjacent to boundary locations where normal traction conditions are imposed. Values can also be set where normal velocity boundary conditions, or both.

◆ enforceDivergenceFreeConditionAtBoundary() [2/2]

void IBAMR::StaggeredStokesPhysicalBoundaryHelper::enforceDivergenceFreeConditionAtBoundary ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  u_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
short int  bdry_tag = NORMAL_TRACTION_BDRY 
) const

Set normal velocity ghost cell values to enforce discrete divergence-free condition in the ghost cells abutting the physical boundary.

Note
The default behavior is to set these values only in cells adjacent to boundary locations where normal traction conditions are imposed. Values can also be set where normal velocity boundary conditions, or both.

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