Files
IFEM/Apps/Common/Test/MPI/TestMultiPatchModelGenerator.C
2019-11-24 07:06:38 +01:00

69 lines
2.0 KiB
C

//==============================================================================
//!
//! \file TestMultiPatchModelGenerator.C
//!
//! \date Dec 14 2016
//!
//! \author Arne Morten Kvarving / SINTEF
//!
//! \brief Tests for multi-patch model generators with subdivision.
//!
//==============================================================================
#include "SIMMultiPatchModelGen.h"
#include "SIM2D.h"
#include "SIM3D.h"
#include <fstream>
#include "gtest/gtest.h"
static void check_intvectors_equal (const std::vector<int>& A,
const std::string& Bfile)
{
std::ifstream f(Bfile);
size_t Bsize;
f >> Bsize;
if (!f) Bsize = 0;
ASSERT_EQ(A.size(),Bsize);
std::vector<int> B(Bsize);
for (int& bi : B) f >> bi;
for (size_t i = 0; i < A.size(); i++)
EXPECT_EQ(A[i],B[i]);
};
TEST(TestMultiPatchModelGenerator2D, SubdivisionsMPI)
{
SIMMultiPatchModelGen<SIM2D> sim(1);
ASSERT_TRUE(sim.read("Test/refdata/modelgen2d_subdivision.xinp"));
ASSERT_TRUE(sim.preprocess());
const ProcessAdm& adm = sim.getProcessAdm();
std::stringstream str;
str << "Test/refdata/modelgen2d_subdivision_nodes" << adm.getProcId() << ".ref";
check_intvectors_equal(adm.dd.getMLGN(), str.str());
str.str("");
str << "Test/refdata/modelgen2d_subdivision_eqs" << adm.getProcId() << ".ref";
check_intvectors_equal(adm.dd.getMLGEQ(), str.str());
}
/*
TES(TestMultiPatchModelGenerator3D, SubdivisionsMPI)
{
SIMMultiPatchModelGen<SIM3D> sim;
ASSERT_TRUE(sim.read("Test/refdata/modelgen3d_subdivision.xinp"));
ASSERT_TRUE(sim.preprocess());
const ProcessAdm& adm = sim.getProcessAdm();
for (int i : adm.dd.getMLGN()) std::cout <<" "<< i;
std::cout << std::endl;
// std::stringstream str;
// str << "Test/refdata/modelgen3d_subdivision_nodes" << adm.getProcId() << ".ref";
// check_intvectors_equal(adm.dd.getMLGN(), str.str());
// str.str("");
// str << "Test/refdata/modelgen2d_subdivision_eqs" << adm.getProcId() << ".ref";
// check_intvectors_equal(adm.dd.getMLGEQ(), str.str());
}
*/