|
| static void | computeMatrixCoefficients (SAMRAI::pdat::CellData< NDIM, double > &matrix_coefficients, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const std::vector< SAMRAI::hier::Index< NDIM >> &stencil, const SAMRAI::solv::PoissonSpecifications &poisson_spec, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef, double data_time) |
| |
| static void | computeMatrixCoefficients (SAMRAI::pdat::CellData< NDIM, double > &matrix_coefficients, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const std::vector< SAMRAI::hier::Index< NDIM >> &stencil, const SAMRAI::solv::PoissonSpecifications &poisson_spec, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, double data_time) |
| |
| static void | computeMatrixCoefficients (SAMRAI::pdat::SideData< NDIM, double > &matrix_coefficients, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const std::vector< SAMRAI::hier::Index< NDIM >> &stencil, const SAMRAI::solv::PoissonSpecifications &poisson_spec, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, double data_time) |
| |
| static void | computeVCSCViscousOpMatrixCoefficients (SAMRAI::pdat::SideData< NDIM, double > &matrix_coefficients, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const std::vector< std::map< SAMRAI::hier::Index< NDIM >, int, IndexFortranOrder >> &stencil_map_vec, const SAMRAI::solv::PoissonSpecifications &poisson_spec, double alpha, double beta, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, double data_time, VCInterpType mu_interp_type=VC_HARMONIC_INTERP) |
| |
| static void | adjustRHSAtPhysicalBoundary (SAMRAI::pdat::CellData< NDIM, double > &rhs_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const SAMRAI::solv::PoissonSpecifications &poisson_spec, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef, double data_time, bool homogeneous_bc) |
| |
| static void | adjustRHSAtPhysicalBoundary (SAMRAI::pdat::CellData< NDIM, double > &rhs_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const SAMRAI::solv::PoissonSpecifications &poisson_spec, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, double data_time, bool homogeneous_bc) |
| |
| static void | adjustRHSAtPhysicalBoundary (SAMRAI::pdat::SideData< NDIM, double > &rhs_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const SAMRAI::solv::PoissonSpecifications &poisson_spec, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, double data_time, bool homogeneous_bc) |
| |
| static void | adjustVCSCViscousOpRHSAtPhysicalBoundary (SAMRAI::pdat::SideData< NDIM, double > &rhs_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const SAMRAI::solv::PoissonSpecifications &poisson_spec, double alpha, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, double data_time, bool homogeneous_bc, VCInterpType mu_interp_type=VC_HARMONIC_INTERP) |
| |
| static void | adjustRHSAtCoarseFineBoundary (SAMRAI::pdat::CellData< NDIM, double > &rhs_data, const SAMRAI::pdat::CellData< NDIM, double > &sol_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const SAMRAI::solv::PoissonSpecifications &poisson_spec, const SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM >> &type1_cf_bdry) |
| |
| static void | adjustRHSAtCoarseFineBoundary (SAMRAI::pdat::SideData< NDIM, double > &rhs_data, const SAMRAI::pdat::SideData< NDIM, double > &sol_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const SAMRAI::solv::PoissonSpecifications &poisson_spec, const SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM >> &type1_cf_bdry, const SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM >> &type2_cf_bdry, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, double data_time, bool homogeneous_bc) |
| |
| static void | adjustVCSCViscousOpRHSAtCoarseFineBoundary (SAMRAI::pdat::SideData< NDIM, double > &rhs_data, const SAMRAI::pdat::SideData< NDIM, double > &sol_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> patch, const SAMRAI::solv::PoissonSpecifications &poisson_spec, double alpha, const SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM >> &type1_cf_bdry, VCInterpType mu_interp_type=VC_HARMONIC_INTERP) |
| |
| static void IBTK::PoissonUtilities::adjustRHSAtCoarseFineBoundary |
( |
SAMRAI::pdat::SideData< NDIM, double > & |
rhs_data, |
|
|
const SAMRAI::pdat::SideData< NDIM, double > & |
sol_data, |
|
|
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM >> |
patch, |
|
|
const SAMRAI::solv::PoissonSpecifications & |
poisson_spec, |
|
|
const SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM >> & |
type1_cf_bdry, |
|
|
const SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM >> & |
type2_cf_bdry, |
|
|
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & |
bc_coefs, |
|
|
double |
data_time, |
|
|
bool |
homogeneous_bc |
|
) |
| |
|
static |
Modify the right-hand side entries to account for coarse-fine interface boundary conditions corresponding to a side-centered discretization of the Laplacian.
For each side of the patch, this function subtracts from the right-hand side the contribution of each stencil neighbor that is not a side of any patch of the level, using the ghost values in sol_data; neighbors across a physical boundary contribute nothing. It modifies only rhs_data in the side box of the patch, so rhs_data needs no ghost cells.
The boundary boxes of codimension 2 (the corner cells in 2D and the edge cells in 3D) determine which ghost cells that touch the patch only along an edge or a corner belong to the level. This function does not modify the entries of the sides on a physical boundary normal to their component at which the coefficient b of bc_coefs is exactly zero, because such an entry is the Dirichlet value. It evaluates the coefficients as adjustRHSAtPhysicalBoundary() does.
- Note
- This function simply uses ghost cell values in sol_data to provide Dirichlet boundary values at coarse-fine interfaces. A more complete implementation would employ the interpolation stencil used at coarse-fine interfaces to modify both the matrix coefficients and RHS values at coarse-fine interfaces.