#define BOOST_TEST_DYN_LINK #define BOOST_TEST_MODULE 0002 #define BOOST_TEST_NO_MAIN #include #include using namespace AMDiS; using namespace std; /* - */ BOOST_AUTO_TEST_CASE(amdis_mpi_feti) { BOOST_REQUIRE(MPI::COMM_WORLD.Get_size() == 16); ProblemStat ellipt("ellipt"); ellipt.initialize(INIT_ALL); MeshDistributor *meshDist = MeshDistributor::globalMeshDistributor; meshDist->initParallelization(); Mesh* mesh = ellipt.getMesh(); BOOST_REQUIRE(mesh->getNumberOfLeaves() == 8); BOOST_REQUIRE(meshDist->getMeshLevelData().getLevelNumber() == 1); vector feSpaces; feSpaces.push_back(ellipt.getFeSpace(0)); PetscSolverFeti &feti = *(dynamic_cast(ellipt.getPetscSolver())); feti.setMeshDistributor(meshDist); feti.initialize(feSpaces); feti.createFetiData(); BOOST_REQUIRE(feti.getNumberOfPrimals() == 21); BOOST_REQUIRE(feti.getNumberOfDuals() == 48); } int main(int argc, char **argv) { AMDiS::init(argc, argv, "./init/test0002.dat.2d"); boost::unit_test::unit_test_main(&init_unit_test, argc, argv); AMDiS::finalize(); }