diff --git a/src/mixers/broyden.hpp b/src/mixers/broyden.hpp index 12476aa3..32f5e042 100644 --- a/src/mixers/broyden.hpp +++ b/src/mixers/broyden.hpp @@ -183,25 +183,33 @@ TEST_CASE(INQ_TEST_FILE, INQ_TEST_TAG) { using namespace inq; using namespace Catch::literals; -#if 0 - gpu::array vin({10.0, -20.0}); - gpu::array vout({0.0, 22.2}); - - mixers::broyden lm(5, 0.5, 2, boost::mpi3::environment::get_self_instance()); + auto comm = parallel::communicator{boost::mpi3::environment::get_self_instance()}; - lm(vin, vout); - - CHECK(vin[0] == 5.0_a); - CHECK(vin[1] == 1.1_a); + basis::trivial bas(2, comm); + + basis::field_set vin(bas, 1); + vin.matrix()[0][0] = 10.0; + vin.matrix()[1][0] = -20.0; - vout = gpu::array({4.0, 5.5}); + basis::field_set vout(bas, 1); + vout.matrix()[0][0] = 0.0; + vout.matrix()[1][0] = 22.2; - lm(vin, vout); + mixers::broyden mixer(5, 0.5, 2, comm); + + mixer(vin, vout); + + CHECK(vin.matrix()[0][0] == 5.0_a); + CHECK(vin.matrix()[1][0] == 1.1_a); - CHECK(vin[0] == 4.4419411001_a); - CHECK(vin[1] == 3.5554591594_a); -#endif + vout.matrix()[0][0] = 4.0; + vout.matrix()[1][0] = 5.5; + + mixer(vin, vout); + + CHECK(vin.matrix()[0][0] == 4.4419411001_a); + CHECK(vin.matrix()[1][0] == 3.5554591594_a); } #endif