Skip to content
This repository was archived by the owner on Jun 13, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ All notable changes to this project will be documented in this file.

**Fixed bugs:**
- [hypre]: Correctly clear hypre solver errors
- [core]: Fix name clashing between `Move` and `Ref` APIs ([issue#12](https://github.com/arcaneframework/alien/issues/12))

**Changes:**
- switch to mono-repo for all Alien related projects
- `move` api is now in `Alien::Move` namespace
30 changes: 8 additions & 22 deletions plugins/hypre/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,36 +1,22 @@
enable_testing()
find_package(GTest REQUIRED)

add_executable(hypre_gtest_move main.cpp
move_use.cpp)

target_link_libraries(hypre_gtest_move
PRIVATE GTest::GTest
PRIVATE Alien::alien_core Alien::alien_semantic_move
Alien::alien_hypre
)

add_executable(hypre_gtest_ref main.cpp
add_executable(hypre_gtest main.cpp
move_use.cpp
ref_use.cpp)

target_link_libraries(hypre_gtest_ref
target_link_libraries(hypre_gtest
PRIVATE GTest::GTest
PRIVATE Alien::alien_core Alien::alien_semantic_ref
PRIVATE Alien::alien_core Alien::alien_semantic_move
Alien::alien_semantic_ref
Alien::alien_hypre
)

include(LoadAlienTest)

alien_test(
BENCH hypre_gtest_move
NAME use_solve_move
PROCS 2
COMMAND hypre_gtest_move
)

alien_test(
BENCH hypre_gtest_ref
NAME use_solve_ref
BENCH hypre_gtest
NAME use_solve
PROCS 2
COMMAND hypre_gtest_ref
COMMAND hypre_gtest
)
20 changes: 10 additions & 10 deletions plugins/hypre/tests/move_use.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ class SimpleLinearProblemFixtureMove : public ::testing::Test

m_distribution = Alien::MatrixDistribution(size, size, m_pm.get());

m_matrix = Alien::MatrixData(m_distribution);
m_matrix = Alien::Move::MatrixData(m_distribution);

m_rhs = Alien::VectorData(m_distribution.rowDistribution());
m_rhs = Alien::Move::VectorData(m_distribution.rowDistribution());
}

void SetUp() override
Expand All @@ -50,7 +50,7 @@ class SimpleLinearProblemFixtureMove : public ::testing::Test
int gsize = dist.globalRowSize();

{
Alien::DirectMatrixBuilder builder(
Alien::Move::DirectMatrixBuilder builder(
std::move(m_matrix), Alien::DirectMatrixOptions::eResetAllocation);
builder.reserve(3); // Réservation de 3 coefficients par ligne
builder.allocate(); // Allocation de l'espace mémoire réservé
Expand All @@ -67,7 +67,7 @@ class SimpleLinearProblemFixtureMove : public ::testing::Test
}

{
Alien::LocalVectorWriter v_build(std::move(m_rhs));
Alien::Move::LocalVectorWriter v_build(std::move(m_rhs));
for (int i = 0 ; i < v_build.size() ; i++) {
v_build[i] = 1.0;
}
Expand All @@ -77,16 +77,16 @@ class SimpleLinearProblemFixtureMove : public ::testing::Test

public:
Alien::MatrixDistribution m_distribution;
Alien::MatrixData m_matrix;
Alien::VectorData m_rhs;
Alien::Move::MatrixData m_matrix;
Alien::Move::VectorData m_rhs;

private:
std::unique_ptr<Arccore::MessagePassing::IMessagePassingMng> m_pm;
};

TEST_F(SimpleLinearProblemFixtureMove, SimpleSolve)
{
Alien::VectorData x(m_matrix.distribution().rowDistribution());
Alien::Move::VectorData x(m_matrix.distribution().rowDistribution());

auto solver = Alien::Hypre::LinearSolver();

Expand All @@ -95,7 +95,7 @@ TEST_F(SimpleLinearProblemFixtureMove, SimpleSolve)

TEST_F(SimpleLinearProblemFixtureMove, ParametrizedSolve)
{
Alien::VectorData x(m_matrix.distribution().rowDistribution());
Alien::Move::VectorData x(m_matrix.distribution().rowDistribution());

auto options = Alien::Hypre::Options()
.numIterationsMax(10)
Expand All @@ -110,11 +110,11 @@ TEST_F(SimpleLinearProblemFixtureMove, ParametrizedSolve)

TEST_F(SimpleLinearProblemFixtureMove, MultipleSolve)
{
Alien::VectorData x(m_matrix.distribution().rowDistribution());
Alien::Move::VectorData x(m_matrix.distribution().rowDistribution());

{
// First call, should fail
Alien::LocalVectorWriter w(std::move(x));
Alien::Move::LocalVectorWriter w(std::move(x));
for (int i = 0 ; i < w.size() ; i++) {
w[i] = 1.0;
}
Expand Down
Loading