本文整理汇总了C++中hier::Patch::getPatchLevelNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ Patch::getPatchLevelNumber方法的具体用法?C++ Patch::getPatchLevelNumber怎么用?C++ Patch::getPatchLevelNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类hier::Patch
的用法示例。
在下文中一共展示了Patch::getPatchLevelNumber方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: coarsen
void SkeletonOutersideDoubleWeightedAverage::coarsen(
hier::Patch& coarse,
const hier::Patch& fine,
const int dst_component,
const int src_component,
const hier::Box& coarse_box,
const hier::IntVector& ratio) const
{
boost::shared_ptr<pdat::OuterfaceData<double> > fdata(
BOOST_CAST<pdat::OuterfaceData<double>, hier::PatchData>(
fine.getPatchData(src_component)));
boost::shared_ptr<pdat::OuterfaceData<double> > cdata(
BOOST_CAST<pdat::OuterfaceData<double>, hier::PatchData>(
coarse.getPatchData(dst_component)));
TBOX_ASSERT(fdata);
TBOX_ASSERT(cdata);
TBOX_ASSERT(cdata->getDepth() == fdata->getDepth());
const hier::Index filo = fdata->getGhostBox().lower();
const hier::Index fihi = fdata->getGhostBox().upper();
const hier::Index cilo = cdata->getGhostBox().lower();
const hier::Index cihi = cdata->getGhostBox().upper();
const boost::shared_ptr<hier::PatchGeometry> fgeom(
fine.getPatchGeometry());
const boost::shared_ptr<hier::PatchGeometry> cgeom(
coarse.getPatchGeometry());
const hier::Index ifirstc = coarse_box.lower();
const hier::Index ilastc = coarse_box.upper();
int flev_num = fine.getPatchLevelNumber();
int clev_num = coarse.getPatchLevelNumber();
// deal with levels not in hierarchy
if (flev_num < 0) flev_num = clev_num + 1;
if (clev_num < 0) clev_num = flev_num - 1;
double cdx[SAMRAI::MAX_DIM_VAL];
double fdx[SAMRAI::MAX_DIM_VAL];
getDx(clev_num, cdx);
getDx(flev_num, fdx);
for (int d = 0; d < cdata->getDepth(); ++d) {
// loop over lower and upper outerside arrays
for (int i = 0; i < 2; ++i) {
if (d_dim == tbox::Dimension(1)) {
SAMRAI_F77_FUNC(cartwgtavgoutfacedoub1d, CARTWGTAVGOUTFACEDOUB1D) (
ifirstc(0), ilastc(0),
filo(0), fihi(0),
cilo(0), cihi(0),
&ratio[0],
fdx,
cdx,
fdata->getPointer(0, i, d),
cdata->getPointer(0, i, d));
} else if (d_dim == tbox::Dimension(2)) {
SAMRAI_F77_FUNC(cartwgtavgoutfacedoub2d0, CARTWGTAVGOUTFACEDOUB2D0) (
ifirstc(0), ifirstc(1), ilastc(0), ilastc(1),
filo(0), filo(1), fihi(0), fihi(1),
cilo(0), cilo(1), cihi(0), cihi(1),
&ratio[0],
fdx,
cdx,
fdata->getPointer(0, i, d),
cdata->getPointer(0, i, d));
SAMRAI_F77_FUNC(cartwgtavgoutfacedoub2d1, CARTWGTAVGOUTFACEDOUB2D1) (
ifirstc(0), ifirstc(1), ilastc(0), ilastc(1),
filo(0), filo(1), fihi(0), fihi(1),
cilo(0), cilo(1), cihi(0), cihi(1),
&ratio[0],
fdx,
cdx,
fdata->getPointer(1, i, d),
cdata->getPointer(1, i, d));
} else if (d_dim == tbox::Dimension(3)) {
SAMRAI_F77_FUNC(cartwgtavgoutfacedoub3d0, CARTWGTAVGOUTFACEDOUB3D0) (
ifirstc(0), ifirstc(1), ifirstc(2),
ilastc(0), ilastc(1), ilastc(2),
filo(0), filo(1), filo(2),
fihi(0), fihi(1), fihi(2),
cilo(0), cilo(1), cilo(2),
cihi(0), cihi(1), cihi(2),
&ratio[0],
fdx,
cdx,
fdata->getPointer(0, i, d),
cdata->getPointer(0, i, d));
SAMRAI_F77_FUNC(cartwgtavgoutfacedoub3d1, CARTWGTAVGOUTFACEDOUB3D1) (
ifirstc(0), ifirstc(1), ifirstc(2),
ilastc(0), ilastc(1), ilastc(2),
filo(0), filo(1), filo(2),
fihi(0), fihi(1), fihi(2),
cilo(0), cilo(1), cilo(2),
cihi(0), cihi(1), cihi(2),
&ratio[0],
fdx,
cdx,
fdata->getPointer(1, i, d),
cdata->getPointer(1, i, d));
//.........这里部分代码省略.........