Commit daf36c05 authored by Pietro Incardona's avatar Pietro Incardona

Make ghost put test stringer

parent 2bd620dd
...@@ -8,8 +8,8 @@ All notable changes to this project will be documented in this file. ...@@ -8,8 +8,8 @@ All notable changes to this project will be documented in this file.
- Full-Support for complex property on vector-dist (Serialization) + example - Full-Support for complex property on vector-dist (Serialization) + example
### Fixed ### Fixed
- Installation in case of MPI preinstalled PETSC fail - Installation PETSC installation fail in case of preinstalled MPI
- vector_dist with negative domain - vector_dist with negative domain (Now supported)
- Grid 1D fixing - Grid 1D fixing
### Changed ### Changed
......
...@@ -57,6 +57,9 @@ fi ...@@ -57,6 +57,9 @@ fi
if [ -d "$1/MPI" ]; then if [ -d "$1/MPI" ]; then
configure_trilinos_options="$configure_trilinos_options -D MPI_BASE_DIR=$1/MPI " configure_trilinos_options="$configure_trilinos_options -D MPI_BASE_DIR=$1/MPI "
mpi_dir="$1/MPI"
else
mpi_dir=$(dirname "$(dirname "$(which mpic++)")")
fi fi
### It seem that the PETSC --download-packege option has several problems and cannot produce ### It seem that the PETSC --download-packege option has several problems and cannot produce
...@@ -286,9 +289,9 @@ fi ...@@ -286,9 +289,9 @@ fi
tar -xf petsc-lite-3.6.4.tar.gz tar -xf petsc-lite-3.6.4.tar.gz
cd petsc-3.6.4 cd petsc-3.6.4
echo "./configure --with-cxx-dialect=C++11 --with-mpi-dir=$1/MPI $configure_options --prefix=$1/PETSC" echo "./configure --with-cxx-dialect=C++11 --with-mpi-dir=$mpi_dir $configure_options --prefix=$1/PETSC"
./configure --with-cxx-dialect=C++11 $petsc_openmp --with-mpi-dir=$1/MPI $configure_options --with-mumps-lib="$MUMPS_extra_lib" --prefix=$1/PETSC ./configure --with-cxx-dialect=C++11 $petsc_openmp --with-mpi-dir=$mpi_dir $configure_options --with-mumps-lib="$MUMPS_extra_lib" --prefix=$1/PETSC
make all test make all test
make install make install
......
...@@ -1632,6 +1632,7 @@ BOOST_AUTO_TEST_CASE( vector_dist_ghost_put ) ...@@ -1632,6 +1632,7 @@ BOOST_AUTO_TEST_CASE( vector_dist_ghost_put )
// sync the ghost // sync the ghost
vd.ghost_get<0>(); vd.ghost_get<0>();
{
auto NN = vd.getCellList(1.3/k); auto NN = vd.getCellList(1.3/k);
float a = 1.0f*k*k; float a = 1.0f*k*k;
...@@ -1685,10 +1686,66 @@ BOOST_AUTO_TEST_CASE( vector_dist_ghost_put ) ...@@ -1685,10 +1686,66 @@ BOOST_AUTO_TEST_CASE( vector_dist_ghost_put )
++it3; ++it3;
} }
BOOST_REQUIRE_EQUAL(ret,true);
}
{
auto NN = vd.getCellList(1.3/k);
float a = 1.0f*k*k;
// run trough all the particles + ghost
auto it2 = vd.getDomainIterator();
while (it2.isNext())
{
// particle p
auto p = it2.get();
Point<3,float> xp = vd.getPos(p);
// Get an iterator over the neighborhood particles of p
auto Np = NN.template getNNIterator<NO_CHECK>(NN.getCell(vd.getPos(p)));
// For each neighborhood particle ...
while (Np.isNext())
{
auto q = Np.get();
Point<3,float> xq = vd.getPos(q);
float dist = xp.distance(xq);
if (dist < 1.0/k)
vd.getProp<0>(q) += a*(-dist*dist+1.0/k/k);
++Np;
}
++it2;
}
vd.ghost_put<add_,0>();
bool ret = true;
auto it3 = vd.getDomainIterator();
float constant = vd.getProp<0>(it3.get());
float eps = 0.001;
while (it3.isNext())
{
float constant2 = vd.getProp<0>(it3.get());
if (fabs(constant - constant2)/constant > eps)
{
std::cout << Point<3,float>(vd.getPos(it3.get())).toString() << " " << constant2 << "/" << constant << " " << v_cl.getProcessUnitID() << std::endl;
ret = false;
break;
}
++it3;
}
BOOST_REQUIRE_EQUAL(ret,true); BOOST_REQUIRE_EQUAL(ret,true);
} }
}
} }
#include "vector_dist_cell_list_tests.hpp" #include "vector_dist_cell_list_tests.hpp"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment