void peanoclaw::tests::StatisticsTest::testGetNeighborPositionOnSameLevel() { tarch::la::Vector<DIMENSIONS, double> position; assignList(position) = 2.0/3.0 ,1.0/3.0 #ifdef Dim3 ,1.0/3.0 #endif ; tarch::la::Vector<DIMENSIONS, double> size(1.0/3.0); int level = 2; tarch::la::Vector<DIMENSIONS, double> expectedNeighborPosition; assignList(expectedNeighborPosition) = 1.0 ,0.0 #ifdef Dim3 ,0.0 #endif ; tarch::la::Vector<DIMENSIONS, int> discreteNeighborPosition; assignList(discreteNeighborPosition) = 1 ,0 #ifdef Dim3 ,0 #endif ; tarch::la::Vector<DIMENSIONS, double> domainOffset(0.0); tarch::la::Vector<DIMENSIONS, double> domainSize(1.0); peanoclaw::statistics::ParallelGridValidator validator(domainOffset, domainSize, false); tarch::la::Vector<DIMENSIONS, double> neighborPosition = validator.getNeighborPositionOnLevel( position, size, level, level-1, discreteNeighborPosition ); validateWithParams2(tarch::la::equals(neighborPosition, expectedNeighborPosition), neighborPosition, expectedNeighborPosition); }
void peano::kernel::regulargrid::parallel::tests::SetupPartitionerTest::test2D_12x8ForkMessages() { #ifdef Dim2 tarch::la::Vector<DIMENSIONS,int> domain; assignList(domain) = 12,9; peano::kernel::regulargrid::parallel::SetupPartitioner partitioner(domain,9); partitioner._ranks.push_back(0); partitioner._ranks.push_back(1); partitioner._ranks.push_back(2); partitioner._ranks.push_back(3); partitioner._ranks.push_back(4); partitioner._ranks.push_back(5); partitioner._ranks.push_back(6); partitioner._ranks.push_back(7); partitioner._ranks.push_back(8); tarch::la::Vector<DIMENSIONS,int> partition; tarch::la::Vector<DIMENSIONS,double> domainOffset; tarch::la::Vector<DIMENSIONS,double> h; assignList(domainOffset) = -2.0, -3.0; assignList(h) = 0.4, 0.5; assignList(partition) = 0,0; peano::kernel::regulargrid::parallel::messages::ForkMessage message00 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 1,0; peano::kernel::regulargrid::parallel::messages::ForkMessage message10 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 2,0; peano::kernel::regulargrid::parallel::messages::ForkMessage message20 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 0,1; peano::kernel::regulargrid::parallel::messages::ForkMessage message01 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 1,1; peano::kernel::regulargrid::parallel::messages::ForkMessage message11 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 2,1; peano::kernel::regulargrid::parallel::messages::ForkMessage message21 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 0,2; peano::kernel::regulargrid::parallel::messages::ForkMessage message02 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 1,2; peano::kernel::regulargrid::parallel::messages::ForkMessage message12 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 2,2; peano::kernel::regulargrid::parallel::messages::ForkMessage message22 = partitioner.getForkMessage( partition, domainOffset, h ); // validateEquals( message00.getNeighbourRanks(), h ); validateEquals( message00.getH(), h ); validateEquals( message00.getNumberOfGridPoints()(0), 5 ); validateEquals( message00.getNumberOfGridPoints()(1), 4 ); validateEquals( message00.getDomainOffset()(0), domainOffset(0) + 0*h(0)); validateEquals( message00.getDomainOffset()(1), domainOffset(1) + 0*h(1)); validateEquals( message10.getH(), h ); validateEquals( message10.getNumberOfGridPoints()(0), 5 ); validateEquals( message10.getNumberOfGridPoints()(1), 4 ); validateEquals( message10.getDomainOffset()(0), domainOffset(0) + 4*h(0)); validateEquals( message10.getDomainOffset()(1), domainOffset(1) + 0*h(1)); validateEquals( message20.getH(), h ); validateEquals( message20.getNumberOfGridPoints()(0), 4 ); validateEquals( message20.getNumberOfGridPoints()(1), 4 ); validateEquals( message20.getDomainOffset()(0), domainOffset(0) + 8*h(0)); validateEquals( message20.getDomainOffset()(1), domainOffset(1) + 0*h(1)); validateEquals( message01.getH(), h ); validateEquals( message01.getNumberOfGridPoints()(0), 5 ); validateEquals( message01.getNumberOfGridPoints()(1), 4 ); validateEquals( message01.getDomainOffset()(0), domainOffset(0) + 0*h(0)); validateEquals( message01.getDomainOffset()(1), domainOffset(1) + 3*h(1)); #endif }