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

Class INSVCStaggeredPressureBcCoef is a concrete StokesBcCoefStrategy that is used to specify pressure boundary conditions for the staggered grid incompressible Navier-Stokes solver with variable coefficients. More...

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

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

Public Member Functions

 INSVCStaggeredPressureBcCoef (const INSVCStaggeredHierarchyIntegrator *fluid_solver, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, TractionBcType traction_bc_type, bool homogeneous_bc=false)
 Constructor.
 
 ~INSVCStaggeredPressureBcCoef ()=default
 Destructor.
 
void setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs)
 Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions. More...
 
void setSolutionTime (double solution_time)
 Set the time at which the solution is to be evaluated.
 
void setTimeInterval (double current_time, double new_time)
 Set the current time interval.
 
StokesBcCoefStrategy interface.
void setStokesSpecifications (const StokesSpecifications *problem_coefs) override
 Set the StokesSpecifications object used by this boundary condition specification object. More...
 
void setTargetVelocityPatchDataIndex (int u_target_data_idx) override
 Set the target velocity data index to use when setting physical boundary conditions and the time at which it is defined.
 
void clearTargetVelocityPatchDataIndex () override
 Clear the target velocity data index used when setting physical boundary conditions.
 
void setTargetPressurePatchDataIndex (int p_target_data_idx) override
 Set the target pressure data index to use when setting physical boundary conditions and the time at which it is defined.
 
void clearTargetPressurePatchDataIndex () override
 Clear the target pressure data index used when setting physical boundary conditions.
 
Extended SAMRAI::solv::RobinBcCoefStrategy interface.
void setTargetPatchDataIndex (int target_idx) override
 Set the target data index.
 
void clearTargetPatchDataIndex () override
 Clear the target data index.
 
void setHomogeneousBc (bool homogeneous_bc) override
 Set whether the class is filling homogeneous or inhomogeneous boundary conditions.
 
- Public Member Functions inherited from IBAMR::StokesBcCoefStrategy
 StokesBcCoefStrategy ()=default
 Empty default constructor.
 
 ~StokesBcCoefStrategy ()=default
 Empty destructor.
 
virtual void setTractionBcType (TractionBcType bc_type)
 Set the type of traction boundary conditions. Supported options are: TRACTION_BOUNDARY_CONDITIONS and PSEUDO_TRACTION_BOUNDARY_CONDITIONS. More...
 
virtual TractionBcType getTractionBcType () const
 Get the type of traction boundary conditions.
 
- Public Member Functions inherited from IBTK::ExtendedRobinBcCoefStrategy
 ExtendedRobinBcCoefStrategy ()=default
 Empty default constructor.
 
virtual ~ExtendedRobinBcCoefStrategy ()=default
 Empty virtual destructor.
 

Implementation of SAMRAI::solv::RobinBcCoefStrategy interface.

void setBcCoefs (SAMRAI::tbox::Pointer< SAMRAI::pdat::ArrayData< NDIM, double > > &acoef_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::ArrayData< NDIM, double > > &bcoef_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::ArrayData< NDIM, double > > &gcoef_data, const SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > &variable, const SAMRAI::hier::Patch< NDIM > &patch, const SAMRAI::hier::BoundaryBox< NDIM > &bdry_box, double fill_time=0.0) const override
 Function to fill arrays of Robin boundary condition coefficients at a patch boundary. More...
 
SAMRAI::hier::IntVector< NDIM > numberOfExtensionsFillable () const override
 
void setViscosityInterpolationType (IBTK::VCInterpType mu_interp_type)
 Set the interpolation type to bring cell centered viscosity to side centers.
 

Additional Inherited Members

- Protected Attributes inherited from IBAMR::StokesBcCoefStrategy
const StokesSpecificationsd_problem_coefs
 
int d_u_target_data_idx = IBTK::invalid_index
 
int d_p_target_data_idx = IBTK::invalid_index
 
TractionBcType d_traction_bc_type = TRACTION
 
- Protected Attributes inherited from IBTK::ExtendedRobinBcCoefStrategy
int d_target_data_idx = IBTK::invalid_index
 
bool d_homogeneous_bc = false
 

Detailed Description

Class INSVCStaggeredPressureBcCoef is a concrete StokesBcCoefStrategy that is used to specify pressure boundary conditions for the staggered grid incompressible Navier-Stokes solver with variable coefficients.

This class interprets pure Dirichlet boundary conditions on the velocity as prescribed velocity boundary conditions, whereas pure Neumann boundary conditions are interpreted as prescribed traction (stress) boundary conditions. These are translated into Neumann and generalized Dirichlet boundary conditions, respectively, for the pressure.

Member Function Documentation

◆ setBcCoefs()

void IBAMR::INSVCStaggeredPressureBcCoef::setBcCoefs ( SAMRAI::tbox::Pointer< SAMRAI::pdat::ArrayData< NDIM, double > > &  acoef_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::ArrayData< NDIM, double > > &  bcoef_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::ArrayData< NDIM, double > > &  gcoef_data,
const SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > &  variable,
const SAMRAI::hier::Patch< NDIM > &  patch,
const SAMRAI::hier::BoundaryBox< NDIM > &  bdry_box,
double  fill_time = 0.0 
) const
overridevirtual

Function to fill arrays of Robin boundary condition coefficients at a patch boundary.

Note
In the original SAMRAI::solv::RobinBcCoefStrategy interface, it was assumed that $ b = (1-a) $. In the new interface, $a$ and $b$ are independent.
See also
SAMRAI::solv::RobinBcCoefStrategy::setBcCoefs()
Parameters
acoef_dataBoundary coefficient data. The array will have been defined to include index range for corresponding to the boundary box bdry_box and appropriate for the alignment of the given variable. If this is a null pointer, then the calling function is not interested in a, and you can disregard it.
bcoef_dataBoundary coefficient data. This array is exactly like acoef_data, except that it is to be filled with the b coefficient.
gcoef_dataBoundary coefficient data. This array is exactly like acoef_data, except that it is to be filled with the g coefficient.
variableVariable to set the coefficients for. If implemented for multiple variables, this parameter can be used to determine which variable's coefficients are being sought.
patchPatch requiring bc coefficients.
bdry_boxBoundary box showing where on the boundary the coefficient data is needed.
fill_timeSolution time corresponding to filling, for use when coefficients are time-dependent.

Implements SAMRAI::solv::RobinBcCoefStrategy< NDIM >.

◆ setPhysicalBcCoefs()

void IBAMR::INSVCStaggeredPressureBcCoef::setPhysicalBcCoefs ( const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  bc_coefs)

Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions.

Parameters
bc_coefsIBTK::Vector of boundary condition specification objects

◆ setStokesSpecifications()

void IBAMR::INSVCStaggeredPressureBcCoef::setStokesSpecifications ( const StokesSpecifications problem_coefs)
overridevirtual

Set the StokesSpecifications object used by this boundary condition specification object.

Parameters
problem_coefsProblem coefficients

Reimplemented from IBAMR::StokesBcCoefStrategy.


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