Simple Block Structured Mesh object. More...
Simple Block Structured Mesh object.
Block structured mesh object holds irange, jrange, and krange. Elements are ordered in dictionary ordering of lower left node
Definition at line 21 of file IndexUtil.H.
#include <IndexUtil.H>
Public Member Functions | |
sizeextent () | |
sizeextent (const sizeextent &inExtent) | |
template<typename IntType > | |
sizeextent (const std::vector< IntType > &inStart, const std::vector< IntType > &inSize) | |
template<typename IntType > | |
sizeextent (const std::vector< std::vector< IntType > > &inextent) | |
template<typename ContainerType > | |
sizeextent (const ContainerType &inflatextent) | |
template<typename T > | |
sizeextent (const T *src, int nd=3) | |
template<typename T > | |
sizeextent (int nd, const T *src) | |
void | destroy () |
template<typename ContainerType > | |
void | Init (const ContainerType &inflatextent) |
template<typename IntType > | |
void | Init (const std::vector< IntType > &inStart, const std::vector< IntType > &inSize) |
template<typename ContainerType > | |
void | InitSimple (const ContainerType &inSize) |
template<typename T > | |
void | InitSimple (int numDim, const T *inSizes) |
std::vector< size_t > | Starts () const |
std::vector< size_t > | Ends () const |
std::vector< size_t > | Sizes () const |
void | Copy (const sizeextent &inExtent) |
void | Sync () |
size_t | NNodes () const |
size_t | NNodes (int inDir) const |
size_t | ND () const |
template<typename ContainerType > | |
void | Flatten (ContainerType &output) const |
template<typename ContainerType > | |
void | dir_loop (size_t nd, size_t indoff, std::vector< size_t > &NP, const sizeextent &inExtent, ContainerType &indices) const |
template<typename ContainerType > | |
void | GetFlatIndices (const sizeextent &extent, ContainerType &indices) const |
template<typename ContainerType > | |
ContainerType | FlatIndices (const sizeextent &extent) const |
void | Overlap (const sizeextent &inextent, sizeextent &outextent) const |
sizeextent | Neighboring (const sizeextent &inextent, int nbrDim) const |
sizeextent | Overlap (const sizeextent &inextent) const |
int | Protrude (const sizeextent &inExtent) |
template<typename ContainerType > | |
int | ProtrudeLimit (const ContainerType &inOffset, const ContainerType &inLimits) |
sizeextent | Protruded (const sizeextent &inExtent) |
template<typename ContainerType > | |
int | Protrude (const ContainerType &protrusionOffsets) |
sizeextent | operator- (const sizeextent &inExtent) const |
sizeextent & | operator+= (const sizeextent &inExtent) |
sizeextent | RelativeTranslation (const sizeextent &inOrigin, const sizeextent &inDestination) const |
int | RelativeTranslation (const sizeextent &inOrigin, const sizeextent &inDestination, sizeextent &returnExtent) const |
template<typename ContainerType > | |
sizeextent | Protruded (const ContainerType &protrusionOffsets) |
template<typename ContainerType > | |
int | Translate (const ContainerType &translationOffsets, bool reverseOffset=false) |
template<typename ContainerType > | |
void | FindSharedNodes (std::vector< sizeextent > &extent_pool, std::vector< sizeextent > &shared_extents, ContainerType &neighbors) const |
int | Skewness (const sizeextent &inExtent) |
template<typename ContainerType > | |
std::vector< size_t > | Coordinates (size_t nodeIndex) |
template<typename ContainerType > | |
size_t | NodeIndex (ContainerType &index) const |
std::ostream & | PrettyPrint (std::ostream &outStream) const |
Private Attributes | |
size_t | _nd |
std::vector< size_t > | _Np |
std::vector< size_t > | _N |
Friends | |
std::ostream & | operator<< (std::ostream &outStream, const sizeextent &sizeExtent) |
std::istream & | operator>> (std::istream &inStream, sizeextent &sizeExtent) |
|
inline |
Definition at line 30 of file IndexUtil.H.
|
inline |
Definition at line 38 of file IndexUtil.H.
References sizeextent::Copy().
|
inlineexplicit |
Definition at line 45 of file IndexUtil.H.
References sizeextent::_nd, and sizeextent::Sync().
|
inlineexplicit |
Definition at line 66 of file IndexUtil.H.
References sizeextent::_nd, and sizeextent::Sync().
|
inlineexplicit |
Definition at line 81 of file IndexUtil.H.
References sizeextent::_nd, and sizeextent::Sync().
|
inlineexplicit |
Definition at line 95 of file IndexUtil.H.
References sizeextent::Sync().
|
inlineexplicit |
Definition at line 110 of file IndexUtil.H.
References sizeextent::Sync().
|
inline |
Definition at line 706 of file IndexUtil.H.
|
inline |
Definition at line 228 of file IndexUtil.H.
References sizeextent::_N, sizeextent::_nd, and sizeextent::_Np.
Referenced by sizeextent::operator-(), sizeextent::Protruded(), sizeextent::RelativeTranslation(), halo::SetLocalHaloExtents(), halo::SetRemoteHaloExtents(), sizeextent::sizeextent(), and pcpp::util::SubIntervalFromStream().
|
inline |
Definition at line 123 of file IndexUtil.H.
Referenced by sizeextent::Init(), and sizeextent::InitSimple().
|
inline |
Definition at line 284 of file IndexUtil.H.
Referenced by sizeextent::GetFlatIndices().
|
inline |
Definition at line 208 of file IndexUtil.H.
|
inline |
Definition at line 667 of file IndexUtil.H.
References sizeextent::Overlap().
|
inline |
Definition at line 317 of file IndexUtil.H.
|
inline |
Definition at line 274 of file IndexUtil.H.
References sizeextent::_nd.
Referenced by parallel_blockstructured::ComputeCurvilinearMetrics2D(), parallel_blockstructured::ComputeCurvilinearMetrics3D(), parallel_blockstructured::ComputeMetricIdentities(), parallel_blockstructured::ComputeRectilinearMetrics(), parallel_blockstructured::CurvilinearMetrics(), parallel_blockstructured::GradIJK(), rhs< GridT, StateT, OperatorT >::SetDomainBCs(), rhs< GridT, StateT, OperatorT >::SetGrid(), rk4advancer< DomainType >::SyncIntervals(), TestEOS_ComputeBuffers(), TestEulerKernels(), TestOperators(), TestViscidKernels(), TestViscidKernelsCurvilinear(), and TestViscidKernelsMetrics().
|
inline |
Definition at line 302 of file IndexUtil.H.
References sizeextent::dir_loop(), and sizeextent::ND().
Referenced by rhs< GridT, StateT, OperatorT >::ApplyWENO(), plascom2::operators::sbp::BoundaryStencilConnectivity(), parallel_blockstructured::ComputeUniformRectangularMetrics(), pcpp::util::CopyInterval(), halo::CreateRecvBuffers(), halo::CreateSimpleRecvBuffers(), halo::CreateSimpleRecvIndices(), halo::CreateSimpleSendBuffers(), halo::CreateSimpleSendIndices(), halo::CreateThreadRecvIndices(), halo::CreateThreadSendIndices(), plascom2::operators::sbp::DetectHoles(), parallel_blockstructured::ExchangeCoordinates(), parallel_blockstructured::Finalize(), parallel_blockstructured::FlagMask(), plascom2::operators::sbp::HoleStencilConnectivity(), plascom2::operators::sbp::MaskStencilConnectivity(), mask::SetMask(), parallel_blockstructured::SetupThreads(), plascom2::operators::sbp::StructuredHole(), TestGrid_PBS_IntegratedHalo(), TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), TestHaloThreaded(), TestHoleDetection(), TestIntervalBasic(), TestProbe(), and mask::UnSetMask().
|
inline |
Definition at line 133 of file IndexUtil.H.
References sizeextent::destroy(), and sizeextent::Sync().
Referenced by pcpp::util::PartitionCartesianExtent(), pcpp::util::PartitionCartesianInterval(), TestHaloBasic(), TestHaloThreaded(), and TestProbe().
|
inline |
Definition at line 149 of file IndexUtil.H.
References sizeextent::_nd, sizeextent::destroy(), and sizeextent::Sync().
|
inline |
Definition at line 169 of file IndexUtil.H.
References sizeextent::destroy(), and sizeextent::Sync().
Referenced by rhs< GridT, StateT, OperatorT >::ApplyWENO(), plascom2::operators::sbp::BoundaryStencilConnectivity(), parallel_blockstructured::ComputeUniformRectangularMetrics(), application::ConfigureSimulation(), pcpp::util::CopyInterval(), testfixtures::CreateSerialSimulationFixtures(), halo::CreateSimpleRecvBuffers(), halo::CreateSimpleRecvIndices(), halo::CreateSimpleSendBuffers(), halo::CreateSimpleSendIndices(), testfixtures::CreateSimulationFixtures(), euler::util::CreateSimulationFixtures(), halo::CreateThreadRecvIndices(), halo::CreateThreadSendIndices(), parallel_blockstructured::CurvilinearMetrics(), parallel_blockstructured::ExchangeCoordinates(), parallel_blockstructured::Finalize(), parallel_blockstructured::FlagMask(), plascom2::operators::sbp::HoleStencilConnectivity(), euler::util::InitializeAcousticPulse(), euler::util::InitializeAdvectionDiffusion(), euler::util::InitializeDensityPulse(), Maxwell::util::InitializeGaussianPulse1DXDir(), euler::util::InitializeGaussianScalar(), viscid::util::InitializePoiseuille(), euler::util::InitializeProtoY4Test1(), euler::util::InitializeRiemann1D(), euler::util::InitializeShocktube(), euler::util::InitializeSimulationFixtures(), euler::util::InitializeUniformFlow(), simulation::grid::InitSubRegionFromString(), parallel_blockstructured::ParallelSetup(), mask::SetMask(), parallel_blockstructured::SetupThreads(), TestEOS_ComputeBuffers(), TestEulerKernels(), TestGrid_PBS_IntegratedHalo(), TestGrid_SubRegion(), TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), TestHaloThreaded(), TestHDF5GridIO(), TestHDF5HyperSlab(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), TestHoleDetection(), TestIntervalBasic(), TestMaxwellRHS(), TestOperators(), TestPlasCom2Output(), TestProbe(), TestRK4Advancer(), TestRK4Advancer2(), TestViscidKernels(), TestViscidKernelsCurvilinear(), TestViscidKernelsMetrics(), mask::UnSetMask(), and pcpp::io::hdf5::WriteGrid().
|
inline |
Definition at line 185 of file IndexUtil.H.
References sizeextent::destroy(), and sizeextent::Sync().
|
inline |
Definition at line 271 of file IndexUtil.H.
Referenced by sizeextent::GetFlatIndices(), sizeextent::Neighboring(), ix::util::operator<<(), sizeextent::Overlap(), pcpp::util::PartitionCartesianExtent(), and pcpp::util::PartitionCartesianInterval().
|
inline |
Definition at line 351 of file IndexUtil.H.
References ix::util::IntervalOverlaps(), and sizeextent::ND().
Referenced by TestIntervalBasic().
|
inline |
Definition at line 254 of file IndexUtil.H.
References sizeextent::_nd.
Referenced by plascom2::operators::sbp::BoundaryStencilConnectivity(), parallel_blockstructured::ComputeCurvilinearMetrics2D(), parallel_blockstructured::ComputeCurvilinearMetrics3D(), parallel_blockstructured::ComputeMetrics(), pcpp::util::CopyInterval(), halo::CreateHaloBuffers(), halo::CreateRecvBuffers(), halo::CreateThreadRecvIndices(), halo::CreateThreadSendIndices(), parallel_blockstructured::CurvilinearMetrics(), parallel_blockstructured::Finalize(), parallel_blockstructured::FlagMask(), parallel_blockstructured::GenerateCoordinates(), parallel_blockstructured::GenerateGrid(), simulation::report::Grid(), rhs< GridT, StateT, OperatorT >::HandleBoundaryConditions(), plascom2::operators::sbp::HoleStencilConnectivity(), euler::util::InitializeProtoY4Test1(), halo::ReportSimpleBufferContents(), rhs< GridT, StateT, OperatorT >::SetDomainBCs(), rhs< GridT, StateT, OperatorT >::SetGrid(), halo::SetRemoteHaloExtents(), parallel_blockstructured::SetupThreads(), halo::SimpleSend(), TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), TestHaloThreaded(), TestHDF5HyperSlab(), TestHoleDetection(), and TestIntervalBasic().
|
inline |
Definition at line 263 of file IndexUtil.H.
|
inline |
Definition at line 719 of file IndexUtil.H.
References sizeextent::operator<<, sizeextent::operator>>, and sizeextent::PrettyPrint().
|
inline |
Definition at line 520 of file IndexUtil.H.
|
inline |
Definition at line 501 of file IndexUtil.H.
References sizeextent::Copy().
|
inline |
Definition at line 324 of file IndexUtil.H.
References sizeextent::ND(), and sizeextent::Sync().
Referenced by plascom2::operators::sbp::BoundaryStencilConnectivity(), halo::CreateRecvBuffers(), halo::CreateThreadRecvIndices(), halo::CreateThreadSendIndices(), parallel_blockstructured::Finalize(), sizeextent::FindSharedNodes(), plascom2::operators::sbp::HoleStencilConnectivity(), probe::InitFlatProbeIndices(), euler::util::InitializeProtoY4Test1(), simulation::grid::ResolveBufferInterval(), parallel_blockstructured::SetupThreads(), plascom2::operators::sbp::StructuredHole(), pcpp::util::SubIntervalFromStream(), TestHaloThreaded(), TestHoleDetection(), TestIntervalBasic(), and pcpp::util::UniqueUnion().
|
inline |
Definition at line 379 of file IndexUtil.H.
References sizeextent::ND(), and sizeextent::Sync().
std::ostream & PrettyPrint | ( | std::ostream & | outStream | ) | const |
Definition at line 6 of file IndexUtil.C.
Referenced by simulation::report::Grid(), euler::util::InitializeProtoY4Test1(), sizeextent::NodeIndex(), OutputTestPartition(), base< GridT, StateT >::Report(), TestGrid_PBS_IntegratedHalo(), TestHaloParallel(), TestHaloPeriodic(), TestHDF5GridIO(), TestHDF5HyperSlab(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), and TestIntervalBasic().
|
inline |
Definition at line 406 of file IndexUtil.H.
References sizeextent::Sync().
|
inline |
Definition at line 475 of file IndexUtil.H.
References sizeextent::Sync().
|
inline |
Definition at line 450 of file IndexUtil.H.
References sizeextent::Copy(), and sizeextent::Sync().
|
inline |
Definition at line 602 of file IndexUtil.H.
References sizeextent::Copy(), and sizeextent::Sync().
|
inline |
Definition at line 429 of file IndexUtil.H.
References sizeextent::Sync().
|
inline |
Definition at line 535 of file IndexUtil.H.
References sizeextent::Copy().
Referenced by euler::util::InitializeProtoY4Test1(), rhs< GridT, StateT, OperatorT >::SetDomainBCs(), and TestHoleDetection().
|
inline |
Definition at line 570 of file IndexUtil.H.
References sizeextent::Copy().
|
inline |
Definition at line 217 of file IndexUtil.H.
Referenced by rhs< GridT, StateT, OperatorT >::HandleBoundaryConditions(), and TestHDF5HyperSlab().
|
inline |
Definition at line 688 of file IndexUtil.H.
References sizeextent::_nd.
|
inline |
Definition at line 199 of file IndexUtil.H.
Referenced by TestHDF5HyperSlab().
|
inline |
Definition at line 240 of file IndexUtil.H.
References sizeextent::_nd.
Referenced by parallel_blockstructured::Finalize(), sizeextent::Init(), sizeextent::InitSimple(), simulation::grid::InitSubRegionFromString(), ix::util::operator>>(), sizeextent::Overlap(), sizeextent::Protrude(), sizeextent::Protruded(), sizeextent::ProtrudeLimit(), simulation::grid::ResolveBufferInterval(), parallel_blockstructured::SetupThreads(), sizeextent::sizeextent(), and sizeextent::Translate().
|
inline |
Definition at line 632 of file IndexUtil.H.
References sizeextent::_nd, and sizeextent::Sync().
|
friend |
Definition at line 24 of file IndexUtil.C.
Referenced by sizeextent::NodeIndex().
|
friend |
Definition at line 35 of file IndexUtil.C.
Referenced by sizeextent::NodeIndex().
|
private |
Definition at line 28 of file IndexUtil.H.
Referenced by sizeextent::Copy().
|
private |
Definition at line 26 of file IndexUtil.H.
Referenced by sizeextent::Copy(), sizeextent::Flatten(), sizeextent::Init(), sizeextent::NNodes(), sizeextent::sizeextent(), sizeextent::Skewness(), sizeextent::Sync(), and sizeextent::Translate().
|
private |
Definition at line 27 of file IndexUtil.H.
Referenced by sizeextent::Copy().