moab-dev
Threads by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
March 2014
- 17 participants
- 82 discussions
1
0
1
0
See <https://jenkins-ci.mcs.anl.gov/job/moab_serial/264/changes>
Changes:
[tautges] AdaptiveKDTree, BVHTree: split some of the stats into separate initialization/traversal stats
[tautges] Adding a timing class for spatial locator; all times on this object are local, but a function is provided for
------------------------------------------
[...truncated 473 lines...]
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
Making all in dagmc
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o dagmc_preproc dagmc_preproc.o obb_analysis.o libdagmc.la ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o dagmc_preproc dagmc_preproc.o obb_analysis.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libdagmc.a ../../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o quads_to_tris quads_to_tris_driver.o quads_to_tris.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o quads_to_tris quads_to_tris_driver.o quads_to_tris.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
Making all in test
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
Making all in .
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
Making all in io
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
Making all in dual
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/dual'>
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/dual'>
Making all in obb
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/obb'>
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/obb'>
Making all in perf
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/perf'>
Making all in point_location
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/perf/point_location'>
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/perf/point_location'>
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/perf'>
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/perf'>
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/perf'>
Making all in h5file
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/h5file'>
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/h5file'>
Making all in oldinc
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/oldinc'>
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/oldinc'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
Making all in doc
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/doc'>
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/doc'>
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/'>
./config.status --version | \
sed -e 's/.*options "\(.*\)"/\1/p' -e 'd' | \
tr "'" "\n" | \
sed -e '/^ *$/d' > moab.config
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/'>
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/'>
+ make check
Making check in src
make[1]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src'>
make check-recursive
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src'>
Making check in io
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/io'>
Making check in mhdf
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/io/mhdf'>
make[4]: Nothing to be done for `check'.
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/io/mhdf'>
Making check in .
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/io'>
make[4]: Nothing to be done for `check-am'.
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/io'>
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/io'>
Making check in LocalDiscretization
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/LocalDiscretization'>
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/LocalDiscretization'>
Making check in .
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src'>
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src'>
Making check in oldinc
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/oldinc'>
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/oldinc'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src'>
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src'>
Making check in MeshFiles
make[1]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles'>
Making check in unittest
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles/unittest'>
Making check in io
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles/unittest/io'>
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles/unittest/io'>
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles/unittest'>
make[3]: Nothing to be done for `check-am'.
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles/unittest'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles/unittest'>
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles'>
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles'>
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/MeshFiles'>
Making check in itaps
make[1]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps'>
Making check in imesh
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make check-am
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make testc_cbind MOAB_iMesh_unit_tests MOAB_iMesh_extensions_tests ScdMeshF90 ScdMeshF77 FindAdjacencyF90
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src/moab -I../../src/parallel -I../../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DSRCDIR=. -DMESHDIR=../../MeshFiles/unittest -I./.. -I../../src -I../../src -I../../itaps -I../../test -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT testc_cbind.o -MD -MP -MF .deps/testc_cbind.Tpo -c -o testc_cbind.o testc_cbind.cpp
mv -f .deps/testc_cbind.Tpo .deps/testc_cbind.Po
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o testc_cbind testc_cbind.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o testc_cbind testc_cbind.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src/moab -I../../src/parallel -I../../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DSRCDIR=. -DMESHDIR=../../MeshFiles/unittest -I./.. -I../../src -I../../src -I../../itaps -I../../test -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT MOAB_iMesh_unit_tests.o -MD -MP -MF .deps/MOAB_iMesh_unit_tests.Tpo -c -o MOAB_iMesh_unit_tests.o MOAB_iMesh_unit_tests.cpp
mv -f .deps/MOAB_iMesh_unit_tests.Tpo .deps/MOAB_iMesh_unit_tests.Po
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o MOAB_iMesh_unit_tests MOAB_iMesh_unit_tests.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o MOAB_iMesh_unit_tests MOAB_iMesh_unit_tests.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src/moab -I../../src/parallel -I../../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DSRCDIR=. -DMESHDIR=../../MeshFiles/unittest -I./.. -I../../src -I../../src -I../../itaps -I../../test -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT MOAB_iMesh_extensions_tests.o -MD -MP -MF .deps/MOAB_iMesh_extensions_tests.Tpo -c -o MOAB_iMesh_extensions_tests.o MOAB_iMesh_extensions_tests.cpp
mv -f .deps/MOAB_iMesh_extensions_tests.Tpo .deps/MOAB_iMesh_extensions_tests.Po
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o MOAB_iMesh_extensions_tests MOAB_iMesh_extensions_tests.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o MOAB_iMesh_extensions_tests MOAB_iMesh_extensions_tests.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=FC --mode=link gfortran -O2 -fcray-pointer -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o ScdMeshF90 ScdMeshF90.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: gfortran -O2 -fcray-pointer -o ScdMeshF90 ScdMeshF90.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=F77 --mode=link f77 -O2 -fcray-pointer -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o ScdMeshF77 ScdMeshF77.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: f77 -O2 -fcray-pointer -o ScdMeshF77 ScdMeshF77.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=FC --mode=link gfortran -O2 -fcray-pointer -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o FindAdjacencyF90 FindAdjacencyF90.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: gfortran -O2 -fcray-pointer -o FindAdjacencyF90 FindAdjacencyF90.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make check-TESTS
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[5]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
PASS: testc_cbind
PASS: MOAB_iMesh_unit_tests
PASS: MOAB_iMesh_extensions_tests
PASS: ScdMeshF90
PASS: ScdMeshF77
PASS: FindAdjacencyF90
==================
All 6 tests passed
==================
make[5]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps'>
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps'>
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps'>
Making check in tools
make[1]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
Making check in .
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
Making check in dagmc
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make test_geom pt_vol_test ray_fire_test
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o test_geom test_geom.o libdagmc.la ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o test_geom test_geom.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libdagmc.a ../../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o pt_vol_test pt_vol_test.o libdagmc.la ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o pt_vol_test pt_vol_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libdagmc.a ../../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o ray_fire_test ray_fire_test.o libdagmc.la ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o ray_fire_test ray_fire_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libdagmc.a ../../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make check-TESTS
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
PASS: test_geom
=============
1 test passed
=============
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
Making check in test
make[1]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
Making check in .
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make range_test moab_test homxform_test scdseq_test scd_test_partn test_adj seq_man_test geom_util_test xform_test obb_test adaptive_kd_tree_tests bsp_tree_test file_options_test kd_tree_test var_len_test var_len_test_no_template tag_test mesh_set_test mbcn_test bsp_tree_poly_test reorder_test test_prog_opt coords_connect_iterate elem_eval_test spatial_locator_test test_boundbox mbfacet_test gttool_test cropvol_test mergemesh_test mbground_test lloyd_smoother_test kd_tree_tool kd_tree_time
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o range_test range_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o range_test range_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o moab_test moab_test-MBTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o moab_test moab_test-MBTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o homxform_test homxform_test-HomXform.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o homxform_test homxform_test-HomXform.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o scdseq_test scdseq_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o scdseq_test scdseq_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o scd_test_partn scd_test_partn.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o scd_test_partn scd_test_partn.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o test_adj test_adj.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o test_adj test_adj.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o seq_man_test TestTypeSequenceManager.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o seq_man_test TestTypeSequenceManager.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o geom_util_test GeomUtilTests.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o geom_util_test GeomUtilTests.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o xform_test xform_test-AffineXform.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o xform_test xform_test-AffineXform.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o obb_test OBBTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o obb_test OBBTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I.. -I../src/moab -I../src/parallel -I../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DIS_BUILDING_MB -DSRCDIR=. -DMESHDIR=../MeshFiles/unittest -I../src -I../src -I../src/LocalDiscretization -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT adaptive_kd_tree_tests.o -MD -MP -MF .deps/adaptive_kd_tree_tests.Tpo -c -o adaptive_kd_tree_tests.o adaptive_kd_tree_tests.cpp
mv -f .deps/adaptive_kd_tree_tests.Tpo .deps/adaptive_kd_tree_tests.Po
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o adaptive_kd_tree_tests adaptive_kd_tree_tests.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o adaptive_kd_tree_tests adaptive_kd_tree_tests.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o bsp_tree_test bsp_tree_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o bsp_tree_test bsp_tree_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[3]: `file_options_test' is up to date.
g++ -DHAVE_CONFIG_H -I. -I.. -I../src/moab -I../src/parallel -I../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DIS_BUILDING_MB -DSRCDIR=. -DMESHDIR=../MeshFiles/unittest -I../src -I../src -I../src/LocalDiscretization -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT kd_tree_test-kd_tree_test.o -MD -MP -MF .deps/kd_tree_test-kd_tree_test.Tpo -c -o kd_tree_test-kd_tree_test.o `test -f 'kd_tree_test.cpp' || echo './'`kd_tree_test.cpp
mv -f .deps/kd_tree_test-kd_tree_test.Tpo .deps/kd_tree_test-kd_tree_test.Po
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o kd_tree_test kd_tree_test-kd_tree_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o kd_tree_test kd_tree_test-kd_tree_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o var_len_test VarLenTagTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o var_len_test VarLenTagTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o var_len_test_no_template var_len_test_no_template-VarLenTagTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o var_len_test_no_template var_len_test_no_template-VarLenTagTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o tag_test TagTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o tag_test TagTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o mesh_set_test Test_MBMeshSet.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o mesh_set_test Test_MBMeshSet.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I.. -I../src/moab -I../src/parallel -I../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DIS_BUILDING_MB -DSRCDIR=. -DMESHDIR=../MeshFiles/unittest -I../src -I../src -I../src/LocalDiscretization -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT CN.o -MD -MP -MF .deps/CN.Tpo -c -o CN.o `test -f '../src/CN.cpp' || echo './'`../src/CN.cpp
mv -f .deps/CN.Tpo .deps/CN.Po
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o mbcn_test CN.o mbcn_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o mbcn_test CN.o mbcn_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o bsp_tree_poly_test bsp_tree_poly_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o bsp_tree_poly_test bsp_tree_poly_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o reorder_test reorder_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o reorder_test reorder_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o test_prog_opt test_prog_opt-test_prog_opt.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o test_prog_opt test_prog_opt-test_prog_opt.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o coords_connect_iterate coords_connect_iterate-coords_connect_iterate.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o coords_connect_iterate coords_connect_iterate-coords_connect_iterate.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I.. -I../src/moab -I../src/parallel -I../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DIS_BUILDING_MB -DSRCDIR=. -DMESHDIR=../MeshFiles/unittest -I../src -I../src -I../src/LocalDiscretization -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT elem_eval_test.o -MD -MP -MF .deps/elem_eval_test.Tpo -c -o elem_eval_test.o elem_eval_test.cpp
mv -f .deps/elem_eval_test.Tpo .deps/elem_eval_test.Po
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o elem_eval_test elem_eval_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o elem_eval_test elem_eval_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a -L/homes/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I.. -I../src/moab -I../src/parallel -I../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DIS_BUILDING_MB -DSRCDIR=. -DMESHDIR=../MeshFiles/unittest -I../src -I../src -I../src/LocalDiscretization -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT spatial_locator_test.o -MD -MP -MF .deps/spatial_locator_test.Tpo -c -o spatial_locator_test.o spatial_locator_test.cpp
spatial_locator_test.cpp: In function ‘void test_locator(moab::SpatialLocator*)’:
spatial_locator_test.cpp:143:32: error: ‘class moab::TreeStats’ has no member named ‘output’
make[3]: *** [spatial_locator_test.o] Error 1
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make: *** [check-recursive] Error 1
Build step 'Execute shell' marked build as failure
2
2
commit/MOAB: tautges: Fixing some tests after function name was changed.
by commits-noreply@bitbucket.org 17 Mar '14
by commits-noreply@bitbucket.org 17 Mar '14
17 Mar '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/f706e6af436c/
Changeset: f706e6af436c
Branch: master
User: tautges
Date: 2014-03-17 20:12:40
Summary: Fixing some tests after function name was changed.
Affected #: 3 files
diff --git a/test/perf/point_location/sploc_searching_perf.cpp b/test/perf/point_location/sploc_searching_perf.cpp
index fcda676..d150ec4 100644
--- a/test/perf/point_location/sploc_searching_perf.cpp
+++ b/test/perf/point_location/sploc_searching_perf.cpp
@@ -118,7 +118,7 @@ int main(int argc, char **argv)
<< cpu_time << " "
<< perc_outside << " ";
- tree->tree_stats().output();
+ tree->tree_stats().output_all_stats();
if (eeval) delete eeval;
diff --git a/test/perf/point_location/tree_searching_perf.cpp b/test/perf/point_location/tree_searching_perf.cpp
index 241aab8..0b09ba0 100644
--- a/test/perf/point_location/tree_searching_perf.cpp
+++ b/test/perf/point_location/tree_searching_perf.cpp
@@ -111,7 +111,7 @@ int main(int argc, char **argv)
<< cpu_time << " "
<< perc_outside << " ";
- tree->tree_stats().output();
+ tree->tree_stats().output_all_stats();
} // tree_tp
diff --git a/test/spatial_locator_test.cpp b/test/spatial_locator_test.cpp
index 404e668..4415d78 100644
--- a/test/spatial_locator_test.cpp
+++ b/test/spatial_locator_test.cpp
@@ -140,7 +140,7 @@ void test_locator(SpatialLocator *sl)
}
std::cout << "Traversal stats:" << std::endl;
- sl->get_tree()->tree_stats().output();
+ sl->get_tree()->tree_stats().output_trav_stats();
if (print_tree) {
std::cout << "Tree information: " << std::endl;
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in MOAB:
https://bitbucket.org/fathomteam/moab/commits/fa4d3ff0c3c9/
Changeset: fa4d3ff0c3c9
Branch: None
User: tautges
Date: 2014-03-17 18:41:58
Summary: AdaptiveKDTree, BVHTree: split some of the stats into separate initialization/traversal stats
TreeStats: add some stats on leaf node objects
ElemEvaluator: return MB_INDEX_NOT_FOUND instead of MB_FAILURE on failure to converge reverse evaluation test, allows applications to react differently to this type of failure. Also, add some documentation of function args.
LinearTet: in reverse evaluation function, on failure to converge, return success if intermediate result is outside element; same thing is done in ElemEvaluator form of this funciton.
BVHTree: fix bug in decrement of unsigned possibly-zero variable.
TreeStats: separate output into init/traversal stats; also add leaf object details, and functionality in compute_stats to compute these quantities.
Affected #: 7 files
diff --git a/src/AdaptiveKDTree.cpp b/src/AdaptiveKDTree.cpp
index 8aafdd1..4b104b4 100644
--- a/src/AdaptiveKDTree.cpp
+++ b/src/AdaptiveKDTree.cpp
@@ -798,7 +798,7 @@ namespace moab {
double& t_enter,
double& t_exit ) const
{
- treeTool->treeStats.leafObjectTests++;
+ treeTool->treeStats.traversalLeafObjectTests++;
return GeomUtil::ray_box_intersect( CartVect(box_min()),
CartVect(box_max()),
CartVect(ray_point),
@@ -850,7 +850,7 @@ namespace moab {
// vertices
for (i = elems.begin(); i != elem_begin; ++i) {
- tree_stats().leafObjectTests++;
+ tree_stats().constructLeafObjectTests++;
rval = moab()->get_coords( &*i, 1, coords[0].array() );
if (MB_SUCCESS != rval)
return rval;
@@ -872,7 +872,7 @@ namespace moab {
// non-polyhedron elements
std::vector<EntityHandle> dum_vector;
for (i = elem_begin; i != poly_begin; ++i) {
- tree_stats().leafObjectTests++;
+ tree_stats().constructLeafObjectTests++;
rval = moab()->get_connectivity( *i, conn, count, true, &dum_vector);
if (MB_SUCCESS != rval)
return rval;
@@ -916,7 +916,7 @@ namespace moab {
// polyhedra
for (i = poly_begin; i != set_begin; ++i) {
- tree_stats().leafObjectTests++;
+ tree_stats().constructLeafObjectTests++;
rval = moab()->get_connectivity( *i, conn, count, true );
if (MB_SUCCESS != rval)
return rval;
@@ -950,7 +950,7 @@ namespace moab {
// sets
BoundBox tbox;
for (i = set_begin; i != elems.end(); ++i) {
- tree_stats().leafObjectTests++;
+ tree_stats().constructLeafObjectTests++;
rval = tbox.update(*moab(), *i);
if (MB_SUCCESS != rval)
return rval;
@@ -1354,7 +1354,7 @@ namespace moab {
treeStats.leavesVisited++;
if (myEval && params) {
rval = myEval->find_containing_entity(node, point, iter_tol, inside_tol,
- leaf_out, params->array(), &treeStats.leafObjectTests);
+ leaf_out, params->array(), &treeStats.traversalLeafObjectTests);
if (MB_SUCCESS != rval) return rval;
}
else
@@ -1494,7 +1494,7 @@ namespace moab {
EntityHandle ent;
CartVect params;
rval = myEval->find_containing_entity(node.handle, from_point, iter_tol, inside_tol,
- ent, params.array(), &treeStats.leafObjectTests);
+ ent, params.array(), &treeStats.traversalLeafObjectTests);
if (MB_SUCCESS != rval) return rval;
else if (ent) {
result_list.push_back(ent);
diff --git a/src/BVHTree.cpp b/src/BVHTree.cpp
index e2592fb..2c13871 100644
--- a/src/BVHTree.cpp
+++ b/src/BVHTree.cpp
@@ -151,6 +151,7 @@ namespace moab
const BoundBox &box = i->myBox;
for (unsigned int dim = 0; dim < 3; ++dim){
const unsigned int index = Bucket::bucket_index(splitsPerDir, box, interval, dim);
+ assert(index < buckets[dim].size());
Bucket &bucket = buckets[dim][index];
if (bucket.mySize > 0)
bucket.boundingBox.update(box);
@@ -452,7 +453,7 @@ namespace moab
if (MB_SUCCESS != rval) return rval;
for(Range::iterator i = entities.begin(); i != entities.end(); i++) {
- treeStats.leafObjectTests++;
+ treeStats.traversalLeafObjectTests++;
myEval->set_ent_handle(*i);
myEval->reverse_eval(&point[0], iter_tol, inside_tol, params.array(), &is_inside);
if (is_inside) {
@@ -518,7 +519,7 @@ namespace moab
EntityHandle entity = 0;
treeStats.leavesVisited++;
ErrorCode rval = myEval->find_containing_entity(startSetHandle+i, point, iter_tol, inside_tol,
- entity, params.array(), &treeStats.leafObjectTests);
+ entity, params.array(), &treeStats.traversalLeafObjectTests);
if (entity) return entity;
else if (MB_SUCCESS != rval) return 0;
}
@@ -584,7 +585,7 @@ namespace moab
}
else if (myTree[ind].dim == 3 && myEval && params) {
rval = myEval->find_containing_entity(startSetHandle+ind, point, iter_tol, inside_tol,
- leaf_out, params->array(), &treeStats.leafObjectTests);
+ leaf_out, params->array(), &treeStats.traversalLeafObjectTests);
if (leaf_out || MB_SUCCESS != rval) return rval;
}
else {
@@ -657,7 +658,7 @@ namespace moab
EntityHandle ent;
CartVect params;
rval = myEval->find_containing_entity(startSetHandle+ind, from_point, iter_tol, inside_tol,
- ent, params.array(), &treeStats.leafObjectTests);
+ ent, params.array(), &treeStats.traversalLeafObjectTests);
if (MB_SUCCESS != rval) return rval;
else if (ent) {
result_list.push_back(ent);
diff --git a/src/LocalDiscretization/ElemEvaluator.cpp b/src/LocalDiscretization/ElemEvaluator.cpp
index 209cd11..68ef791 100644
--- a/src/LocalDiscretization/ElemEvaluator.cpp
+++ b/src/LocalDiscretization/ElemEvaluator.cpp
@@ -57,7 +57,7 @@ namespace moab {
if (det < std::numeric_limits<double>::epsilon()) {
*tmp_inside = (*inside_f)(params, ndim, inside_tol);
if (!(*tmp_inside)) return MB_SUCCESS;
- else return MB_FAILURE;
+ else return MB_INDEX_OUT_OF_RANGE;
}
// new params tries to eliminate residual
diff --git a/src/LocalDiscretization/LinearTet.cpp b/src/LocalDiscretization/LinearTet.cpp
index 6d590e7..d8d381e 100644
--- a/src/LocalDiscretization/LinearTet.cpp
+++ b/src/LocalDiscretization/LinearTet.cpp
@@ -126,10 +126,15 @@ namespace moab
int iters=0;
// while |res| larger than tol
+ int dum, *tmp_inside = (inside ? inside : &dum);
while (res % res > error_tol_sqr) {
- if(++iters>25)
- return MB_FAILURE;
-
+ if(++iters>25) {
+ // if we haven't converged but we're outside, that's defined as success
+ *tmp_inside = (*inside_f)(params, ndim, inside_tol);
+ if (!(*tmp_inside)) return MB_SUCCESS;
+ else return MB_INDEX_OUT_OF_RANGE;
+ }
+
// new params tries to eliminate residual
*cvparams -= Ji * res;
diff --git a/src/LocalDiscretization/moab/ElemEvaluator.hpp b/src/LocalDiscretization/moab/ElemEvaluator.hpp
index 6a1efd0..9989dfc 100644
--- a/src/LocalDiscretization/moab/ElemEvaluator.hpp
+++ b/src/LocalDiscretization/moab/ElemEvaluator.hpp
@@ -118,8 +118,8 @@ namespace moab {
public:
/** \brief Constructor
* \param impl MOAB instance
- * \param ent Entity handle to cache on the evaluator
- * \param tag Tag to cache on the evaluator
+ * \param ent Entity handle to cache on the evaluator; if non-zero, calls set_ent_handle, which does some other stuff.
+ * \param tag Tag to cache on the evaluator; if non-zero, calls set_tag_handle, which does some other stuff too.
* \param tagged_ent_dim Dimension of entities to be tagged to cache on the evaluator
*/
ElemEvaluator(Interface *impl, EntityHandle ent = 0, Tag tag = 0, int tagged_ent_dim = -1);
diff --git a/src/moab/BVHTree.hpp b/src/moab/BVHTree.hpp
index 354d3a1..eb0e4e4 100644
--- a/src/moab/BVHTree.hpp
+++ b/src/moab/BVHTree.hpp
@@ -260,6 +260,7 @@ namespace moab {
const int index, const BoundBox &box,
const int depth=0);
+ // builds up vector of HandleData, which caches elements' bounding boxes
ErrorCode construct_element_vec(std::vector<HandleData> &handle_data_vec,
const Range &elements,
BoundBox & bounding_box);
@@ -300,7 +301,8 @@ namespace moab {
std::cout << "index: " << std::ceil(center/length)-1 << std::endl;
#endif
#endif
- return std::ceil(center/length)-1;
+ unsigned int cl = std::ceil(center/length);
+ return (cl > 0 ? cl-1 : 0);
}
inline BVHTree::BVHTree(Interface *impl) :
diff --git a/src/moab/TreeStats.hpp b/src/moab/TreeStats.hpp
index 4ae685b..0bb9478 100644
--- a/src/moab/TreeStats.hpp
+++ b/src/moab/TreeStats.hpp
@@ -43,8 +43,11 @@ namespace moab
//! print the contents of this structure
void print() const ;
- //! output the contents of this structure on a single line
- void output() const ;
+ //! output all the contents of this structure on a single line
+ void output_all_stats(const bool with_endl = true) const ;
+
+ //! output just the traversal stats of this structure on a single line
+ void output_trav_stats(const bool with_endl = true) const ;
// times
double initTime;
@@ -53,13 +56,18 @@ namespace moab
unsigned int maxDepth;
unsigned int numNodes;
unsigned int numLeaves;
+ double avgObjPerLeaf;
+ unsigned int minObjPerLeaf;
+ unsigned int maxObjPerLeaf;
+
// traversal statistics
- unsigned int nodesVisited;
- unsigned int leavesVisited;
- unsigned int numTraversals;
- unsigned int leafObjectTests;
- unsigned int boxElemTests;
+ unsigned int nodesVisited; // number of tree nodes visited since last reset
+ unsigned int leavesVisited; // number of tree leaves visited since last reset
+ unsigned int numTraversals; // number of tree traversals since last reset
+ unsigned int constructLeafObjectTests; // during construction, number of tests of objects (e.g. elements)
+ unsigned int traversalLeafObjectTests; // during traversals, number of tests of objects (e.g. elements)
+ unsigned int boxElemTests; // during construction, number of calls to GeomUtil::box_elem_overlap (KD tree only)
private:
ErrorCode traverse(Interface *impl, EntityHandle node, unsigned int &depth);
@@ -71,7 +79,13 @@ namespace moab
maxDepth = 0;
numNodes = 0;
numLeaves = 0;
- return traverse(impl, root_node, maxDepth);
+ avgObjPerLeaf = 0.0;
+ minObjPerLeaf = 0;
+ maxObjPerLeaf = 0;
+
+ ErrorCode rval = traverse(impl, root_node, maxDepth);
+ avgObjPerLeaf = (avgObjPerLeaf > 0 ? avgObjPerLeaf/(double)numLeaves : 0.0);
+ return rval;
}
inline ErrorCode TreeStats::traverse(Interface *impl, EntityHandle node, unsigned int &depth)
@@ -84,6 +98,11 @@ namespace moab
if (MB_SUCCESS != rval) return rval;
if (children.empty()) {
numLeaves++;
+ rval = impl->get_entities_by_handle(node, children);
+ if (MB_SUCCESS != rval) return rval;
+ avgObjPerLeaf += children.size();
+ minObjPerLeaf = std::min((unsigned int)children.size(), minObjPerLeaf);
+ maxObjPerLeaf = std::max((unsigned int)children.size(), maxObjPerLeaf);
return MB_SUCCESS;
}
else {
@@ -104,6 +123,11 @@ namespace moab
maxDepth = 0;
numNodes = 0;
numLeaves = 0;
+ constructLeafObjectTests = 0;
+ boxElemTests = 0;
+ avgObjPerLeaf = 0.0;
+ minObjPerLeaf = 0.0;
+ maxObjPerLeaf = 0.0;
reset_trav_stats();
}
@@ -113,8 +137,7 @@ namespace moab
nodesVisited = 0;
leavesVisited = 0;
numTraversals = 0;
- leafObjectTests = 0;
- boxElemTests = 0;
+ traversalLeafObjectTests = 0;
}
inline void TreeStats::print() const {
@@ -124,17 +147,32 @@ namespace moab
std::cout << "Num leaves = " << numLeaves << std::endl;
std::cout << "Max depth = " << maxDepth << std::endl << std::endl;
+ std::cout << "Avg objs per leaf = " << avgObjPerLeaf << std::endl;
+ std::cout << "Min objs per leaf = " << minObjPerLeaf << std::endl;
+ std::cout << "Max objs per leaf = " << maxObjPerLeaf << std::endl;
+
+ std::cout << "Construction Leaf Object Tests = " << constructLeafObjectTests << std::endl;
+ std::cout << "Box-Element Tests = " << boxElemTests << std::endl;
+
std::cout << "NodesVisited = " << nodesVisited << std::endl;
std::cout << "LeavesVisited = " << leavesVisited << std::endl;
std::cout << "Num Traversals = " << numTraversals << std::endl;
- std::cout << "Leaf Object Tests = " << leafObjectTests << std::endl;
- std::cout << "Box-Element Tests = " << boxElemTests << std::endl;
+ std::cout << "Traversal Leaf Object Tests = " << traversalLeafObjectTests << std::endl;
+ }
+
+ inline void TreeStats::output_all_stats(const bool with_endl) const
+ {
+ std::cout << initTime << " " << numNodes << " " << numLeaves << " " << maxDepth << " "
+ << avgObjPerLeaf << " " << minObjPerLeaf << " " << maxObjPerLeaf << " "
+ << constructLeafObjectTests << " " << boxElemTests << " "
+ << nodesVisited << " " << leavesVisited << " " << numTraversals << " " << traversalLeafObjectTests << " ";
+ if (with_endl) std::cout << std::endl;
}
- inline void TreeStats::output() const
+ inline void TreeStats::output_trav_stats(const bool with_endl) const
{
- std::cout << initTime << " " << nodesVisited << " " << leavesVisited << " " << numTraversals << " " << leafObjectTests << " " << boxElemTests
- << " # initTime, nodesVisited, leavesVisited, numTraversals, leafObjectTests, boxElemTests" << std::endl;
+ std::cout << nodesVisited << " " << leavesVisited << " " << numTraversals << " " << traversalLeafObjectTests << " ";
+ if (with_endl) std::cout << std::endl;
}
}
https://bitbucket.org/fathomteam/moab/commits/c88d8437a1c2/
Changeset: c88d8437a1c2
Branch: master
User: tautges
Date: 2014-03-17 18:41:58
Summary: Adding a timing class for spatial locator; all times on this object are local, but a function is provided for
accumulating results across procs.
Affected #: 4 files
diff --git a/src/Makefile.am b/src/Makefile.am
index 5772d12..a9adf0d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -193,6 +193,7 @@ nobase_libMOAB_la_include_HEADERS = \
moab/SetIterator.hpp \
moab/Skinner.hpp \
moab/SpatialLocator.hpp \
+ moab/SpatialLocatorTimes.hpp \
moab/SpectralMeshTool.hpp \
moab/Tree.hpp \
moab/TreeStats.hpp \
diff --git a/src/SpatialLocator.cpp b/src/SpatialLocator.cpp
index 702399e..8556a81 100644
--- a/src/SpatialLocator.cpp
+++ b/src/SpatialLocator.cpp
@@ -11,13 +11,14 @@
#include "moab/ParallelComm.hpp"
#endif
-bool debug = true;
+bool debug = false;
namespace moab
{
SpatialLocator::SpatialLocator(Interface *impl, Range &elems, Tree *tree, ElemEvaluator *eval)
- : mbImpl(impl), myElems(elems), myDim(-1), myTree(tree), elemEval(eval), iCreatedTree(false)
+ : mbImpl(impl), myElems(elems), myDim(-1), myTree(tree), elemEval(eval), iCreatedTree(false),
+ timerInitialized(false)
{
create_tree();
@@ -178,14 +179,20 @@ namespace moab
TupleList TLforward_o; //TLforward_outbound
TupleList TLsearch_results_o; //TLsearch_results_outbound
+ // initialize timer
+ myTimer.time_elapsed();
+ timerInitialized = true;
// steps 1-2 - initialize the alternative decomposition box from global box
rval = initialize_intermediate_partition(pc);
+ if (rval != MB_SUCCESS) return rval;
//steps 3-6 - set up TLreg_o, gs_transfer, gather registrations
rval = register_src_with_intermediate_procs(pc, abs_iter_tol, TLreg_o);
if (rval != MB_SUCCESS) return rval;
+ myTimes.slTimes[SpatialLocatorTimes::INTMED_INIT] = myTimer.time_elapsed();
+
// actual parallel point location using intermediate partition
// target_pts: TL(to_proc, tgt_index, x, y, z): tuples sent to source mesh procs representing pts to be located
@@ -219,6 +226,8 @@ namespace moab
if (pc)
pc->proc_config().crystal_router()->gs_transfer(1, TLquery_o, 0);
+ myTimes.slTimes[SpatialLocatorTimes::INTMED_SEND] = myTimer.time_elapsed();
+
//now read forwarding requests and forward to corresponding procs
//TLquery_o is now TLforw_req_i
@@ -244,9 +253,17 @@ namespace moab
}
+ myTimes.slTimes[SpatialLocatorTimes::INTMED_SEARCH] = myTimer.time_elapsed();
+
if (pc)
pc->proc_config().crystal_router()->gs_transfer(1, TLforward_o, 0);
+ myTimes.slTimes[SpatialLocatorTimes::SRC_SEND] = myTimer.time_elapsed();
+
+ // cache time here, because locate_points also calls elapsed functions and we want to account
+ // for tuple list initialization here
+ double tstart = myTimer.time_since_birth();
+
//step 12
//now read Point Search requests
//TLforward_o is now TLsearch_req_i
@@ -285,10 +302,14 @@ namespace moab
}
locTable.disableWriteAccess();
+ myTimes.slTimes[SpatialLocatorTimes::SRC_SEARCH] = myTimer.time_since_birth() - tstart;
+ myTimer.time_elapsed(); // call this to reset last time called
+
//step 14: send TLsearch_results_o and receive TLloc_i
if (pc)
pc->proc_config().crystal_router()->gs_transfer(1, TLsearch_results_o, 0);
+ myTimes.slTimes[SpatialLocatorTimes::TARG_RETURN] = myTimer.time_elapsed();
// store proc/index tuples in parLocTable
parLocTable.initialize(2, 0, 0, 0, num_points);
@@ -308,6 +329,8 @@ namespace moab
<< " (" << 100.0*((double)num_found/num_points) << "%)" << std::endl;
}
+ myTimes.slTimes[SpatialLocatorTimes::TARG_STORE] = myTimer.time_elapsed();
+
return MB_SUCCESS;
}
@@ -317,6 +340,13 @@ namespace moab
const double rel_iter_tol, const double abs_iter_tol,
const double inside_tol)
{
+ bool i_initialized = false;
+ if (!timerInitialized) {
+ myTimer.time_elapsed();
+ timerInitialized = true;
+ i_initialized = true;
+ }
+
assert(!verts.empty() && mbImpl->type_from_handle(*verts.rbegin()) == MBVERTEX);
std::vector<double> pos(3*verts.size());
ErrorCode rval = mbImpl->get_coords(verts, &pos[0]);
@@ -324,6 +354,10 @@ namespace moab
rval = locate_points(&pos[0], verts.size(), rel_iter_tol, abs_iter_tol, inside_tol);
if (MB_SUCCESS != rval) return rval;
+ // only call this if I'm the top-level function, since it resets the last time called
+ if (i_initialized)
+ myTimes.slTimes[SpatialLocatorTimes::SRC_SEARCH] = myTimer.time_elapsed();
+
return MB_SUCCESS;
}
@@ -331,6 +365,12 @@ namespace moab
const double rel_iter_tol, const double abs_iter_tol,
const double inside_tol)
{
+ bool i_initialized = false;
+ if (!timerInitialized) {
+ myTimer.time_elapsed();
+ timerInitialized = true;
+ i_initialized = true;
+ }
// initialize to tuple structure (p_ui, hs_ul, r[3]_d) (see header comments for locTable)
locTable.initialize(1, 0, 1, 3, num_points);
locTable.enableWriteAccess();
@@ -341,7 +381,12 @@ namespace moab
std::fill(locTable.vi_wr, locTable.vi_wr+num_points, 0);
locTable.set_n(num_points);
if (MB_SUCCESS != rval) return rval;
+
+ // only call this if I'm the top-level function, since it resets the last time called
+ if (i_initialized)
+ myTimes.slTimes[SpatialLocatorTimes::SRC_SEARCH] = myTimer.time_elapsed();
+
return MB_SUCCESS;
}
@@ -350,11 +395,24 @@ namespace moab
const double rel_iter_tol, const double abs_iter_tol,
const double inside_tol)
{
+ bool i_initialized = false;
+ if (!timerInitialized) {
+ myTimer.time_elapsed();
+ timerInitialized = true;
+ i_initialized = true;
+ }
+
assert(!verts.empty() && mbImpl->type_from_handle(*verts.rbegin()) == MBVERTEX);
std::vector<double> pos(3*verts.size());
ErrorCode rval = mbImpl->get_coords(verts, &pos[0]);
if (MB_SUCCESS != rval) return rval;
- return locate_points(&pos[0], verts.size(), ents, params, is_inside, rel_iter_tol, abs_iter_tol, inside_tol);
+ rval = locate_points(&pos[0], verts.size(), ents, params, is_inside, rel_iter_tol, abs_iter_tol, inside_tol);
+
+ // only call this if I'm the top-level function, since it resets the last time called
+ if (i_initialized)
+ myTimes.slTimes[SpatialLocatorTimes::SRC_SEARCH] = myTimer.time_elapsed();
+
+ return rval;
}
ErrorCode SpatialLocator::locate_points(const double *pos, int num_points,
@@ -362,6 +420,13 @@ namespace moab
const double rel_iter_tol, const double abs_iter_tol,
const double inside_tol)
{
+ bool i_initialized = false;
+ if (!timerInitialized) {
+ myTimer.time_elapsed();
+ timerInitialized = true;
+ i_initialized = true;
+ }
+
double tmp_abs_iter_tol = abs_iter_tol;
if (rel_iter_tol && !tmp_abs_iter_tol) {
// relative epsilon given, translate to absolute epsilon using box dimensions
@@ -389,6 +454,10 @@ namespace moab
if (is_inside) is_inside[i] = (ents[i] ? true : false);
}
+ // only call this if I'm the top-level function, since it resets the last time called
+ if (i_initialized)
+ myTimes.slTimes[SpatialLocatorTimes::SRC_SEARCH] = myTimer.time_elapsed();
+
return rval;
}
diff --git a/src/moab/SpatialLocator.hpp b/src/moab/SpatialLocator.hpp
index 2690058..95e6feb 100644
--- a/src/moab/SpatialLocator.hpp
+++ b/src/moab/SpatialLocator.hpp
@@ -35,6 +35,8 @@
#include "moab/Range.hpp"
#include "moab/TupleList.hpp"
#include "moab/BoundBox.hpp"
+#include "moab/SpatialLocatorTimes.hpp"
+#include "moab/CpuTimer.hpp"
#include <string>
#include <vector>
@@ -166,7 +168,13 @@ namespace moab {
/* set elemEval */
void elem_eval(ElemEvaluator *eval) {elemEval = eval; if (myTree) myTree->set_eval(eval);}
+
+ /** \brief Get spatial locator times object */
+ SpatialLocatorTimes &sl_times() {return myTimes;}
+ /** \brief Get spatial locator times object */
+ const SpatialLocatorTimes &sl_times() const {return myTimes;}
+
private:
#ifdef USE_MPI
@@ -262,6 +270,17 @@ namespace moab {
*/
std::map<int, BoundBox> srcProcBoxes;
+ /* \brief Timing object for spatial location
+ */
+ SpatialLocatorTimes myTimes;
+
+ /* \brief Timer object to manage overloaded search functions
+ */
+ CpuTimer myTimer;
+
+ /* \brief Flag to manage initialization of timer for overloaded search functions
+ */
+ bool timerInitialized;
};
inline SpatialLocator::~SpatialLocator()
diff --git a/src/moab/SpatialLocatorTimes.hpp b/src/moab/SpatialLocatorTimes.hpp
new file mode 100644
index 0000000..e0b210d
--- /dev/null
+++ b/src/moab/SpatialLocatorTimes.hpp
@@ -0,0 +1,138 @@
+/**\file SpatialLocatorTimes.hpp
+ * \class moab::SpatialLocatorTimes
+ * \brief Statistics for spatial location
+ *
+ * Class to accumulate statistics on performance of spatial location. This structure stores
+ * only local (single proc) statistics, but provides functions for accumulating max/min/avg
+ * time properties for performance reporting.
+ *
+ * Similar to TreeStats, this class is very lightweight, with most variables publicly accessible.
+ *
+ */
+
+#ifndef SPATIALLOCATORTIMES_HPP
+#define SPATIALLOCATORTIMES_HPP
+
+#include "moab/Interface.hpp"
+
+#include <iostream>
+
+#ifdef USE_MPI
+#include "moab_mpi.h"
+#endif
+
+namespace moab
+{
+class SpatialLocatorTimes
+{
+public:
+ /* constructor
+ */
+ SpatialLocatorTimes() {reset();}
+
+ /* \brief Reset all stats defined here
+ */
+ void reset();
+
+ /* \brief Output header for stats names
+ */
+ void output_header(bool print_endl = false) const;
+
+ /* \brief Output stats all on one line
+ */
+ void output(bool print_head = false, bool print_endl = false) const;
+
+#ifdef USE_MPI
+ /* \brief Accumulate times over all processors into provided array
+ * Max and min is accumulated over all processors, onto root, for each stat. If avg_stats is non-NULL,
+ * all stats are gathered to root so average can be taken too.
+ *
+ * This function must be called collectively on the communicator
+ * \param comm MPI communictor over which this accumulation is done
+ * \param max_times Array of size NUM_STATS into which max times are inserted
+ * \param min_times Array of size NUM_STATS into which min times are inserted
+ * \param avg_times Array of size NUM_STATS into which avg times are inserted; if NULL, no avg times are computed.
+
+ */
+ ErrorCode accumulate_times(MPI_Comm comm, double *max_times, double *min_times,
+ double *avg_times = NULL);
+#endif
+
+ /* \brief Enumeration to identify fields in performance data
+ */
+ enum {INTMED_INIT = 0, // time to compute intermediate partition, incl global bounding box
+ INTMED_SEND, // time to send search points from target to intermediate parts
+ INTMED_SEARCH, // time to find candidate src boxes for search points on intermidiate procs
+ SRC_SEND, // time to send search points to src procs
+ SRC_SEARCH, // time to search local box/elements on src procs
+ TARG_RETURN, // time to return point location data to target procs
+ TARG_STORE, // time to store point location into local SpatialLocator object
+ NUM_STATS // number of stats, useful for array sizing and terminating loops over stats
+ };
+
+ double slTimes[NUM_STATS];
+};
+
+inline void SpatialLocatorTimes::reset()
+{
+ for (int i = 0; i < NUM_STATS; i++) slTimes[i] = 0.0;
+}
+
+#ifdef USE_MPI
+inline ErrorCode SpatialLocatorTimes::accumulate_times(MPI_Comm comm,
+ double *min_times, double *max_times, double *avg_times)
+{
+ ErrorCode rval = MB_SUCCESS;
+ int success = MPI_Reduce(slTimes, min_times, NUM_STATS, MPI_DOUBLE, MPI_MIN, 0, comm);
+ if (!success) rval = MB_FAILURE;
+
+ success = MPI_Reduce(slTimes, max_times, NUM_STATS, MPI_DOUBLE, MPI_MAX, 0, comm);
+ if (!success) rval = MB_FAILURE;
+
+ if (avg_times) {
+ int sz, rank;
+ MPI_Comm_size(comm, &sz);
+ MPI_Comm_rank(comm, &rank);
+ std::vector<double> all_times;
+ if (!rank) all_times.resize(NUM_STATS*sz+NUM_STATS);
+ success = MPI_Gather(slTimes, NUM_STATS, MPI_DOUBLE, (rank ? NULL : &all_times[0]), NUM_STATS, MPI_DOUBLE, 0, comm);
+ if (!success) rval = MB_FAILURE;
+ if (!rank) {
+ std::fill(avg_times, avg_times+NUM_STATS, 0.0);
+ for (int p = 0; p < sz; p++) {
+ for (int s = 0; s < NUM_STATS; s++)
+ avg_times[s] += all_times[p*NUM_STATS+s];
+ }
+
+ for (int s = 0; s <= NUM_STATS; s++) avg_times[s] /= (double)sz;
+ }
+ }
+
+ return rval;
+}
+#endif
+
+ /* \brief Output stats all on one line
+ */
+inline void SpatialLocatorTimes::output_header(bool print_endl) const
+{
+ std::cout << "Intmed_init Intmed_send Intmed_search src_send src_search targ_return targ_store";
+ if (print_endl) std::cout << std::endl;
+}
+
+ /* \brief Output stats all on one line
+ */
+inline void SpatialLocatorTimes::output(bool print_head, bool print_endl) const
+{
+ if (print_head) output_header(true);
+ for (int i = 0; i < NUM_STATS; i++) std::cout << slTimes[i] << " ";
+
+ if (print_endl) std::cout << std::endl;
+}
+
+
+} // namespace moab
+
+#endif
+
+
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
Re: [MOAB-dev] get_entities_by_handle - entities do not include meshset entities
by Tim Tautges (ANL) 14 Mar '14
by Tim Tautges (ANL) 14 Mar '14
14 Mar '14
[cc'ing moab-dev because this might be of general interest...]
Ok, yes, that is expected behavior. The reasoning behind it is that if you're asking to recurse through contained sets,
chances are you're interested in entities and not sets. I can see where in some cases this might not be the case, but I
would still assert that this isn't the more common case.
Note that this behavior is noted in the documentation of the 'recursive' argument to that function, at least in the
master version (but I'm guessing probably in 4.6 as well, since I don't recall that changing recently).
- tim
On 03/14/2014 01:08 PM, MICHAEL CORTIS wrote:
> Tim,
>
> I've create a simple example and discovered the following:
> if use TRUE for recursive search, such as:
>
> Range tempRange
> rval = mb->get_entities_by_handle(*mit,tempRange,true);
>
> then, the contained meshsets won't be listed in the range,
>
> but if the recursive is FALSE,
>
> I will get those meshset 1 level below listed in the range.
>
> Why, when recursive search in all contained meshsets, these contained meshsets won't be listed in the range?
>
> if you want the program, please let me know, and btw, I am using MOAB 4.6.
> Kind regards
>
> Michael
>
> On 14 Mar 2014, at 15:03, "Tim Tautges (ANL)" <tautges(a)mcs.anl.gov <mailto:[email protected]>> wrote:
>
>> That's almost certainly not true. Can you confirm this with a simple test?
>>
>> - tim
>>
>> On 03/14/2014 09:17 AM, MICHAEL CORTIS wrote:
>>> Dear Tim,
>>>
>>> I've noticed that when using get_entities_by_handle,
>>> the range won't contained meshset entities which are in the handle.
>>> Believe that one should remark in the documentation that only vertices/edges/tri/tet are retrieved,
>>> if there is no plan to gather the meshset entities from a handle into the range/vector.
>>>
>>> Kind regards
>>>
>>> Michael
>>>
>>
>> --
>> ================================================================
>> "You will keep in perfect peace him whose mind is
>> steadfast, because he trusts in you." Isaiah 26:3
>>
>> Tim Tautges Argonne National Laboratory
>> (tautges(a)mcs.anl.gov <mailto:[email protected]>) (telecommuting from UW-Madison)
>> phone (gvoice): (608) 354-1459 1500 Engineering Dr.
>> fax: (608) 263-4499 Madison, WI 53706
>>
>
--
================================================================
"You will keep in perfect peace him whose mind is
steadfast, because he trusts in you." Isaiah 26:3
Tim Tautges Argonne National Laboratory
(tautges(a)mcs.anl.gov) (telecommuting from UW-Madison)
phone (gvoice): (608) 354-1459 1500 Engineering Dr.
fax: (608) 263-4499 Madison, WI 53706
2
1
commit/MOAB: danwu: Renamed a few member functions of NCHelper classes.
by commits-noreply@bitbucket.org 14 Mar '14
by commits-noreply@bitbucket.org 14 Mar '14
14 Mar '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/601ac5fba7d4/
Changeset: 601ac5fba7d4
Branch: error_handling_enhancement
User: danwu
Date: 2014-03-14 23:53:13
Summary: Renamed a few member functions of NCHelper classes.
Affected #: 6 files
diff --git a/src/io/NCHelper.cpp b/src/io/NCHelper.cpp
index 85afdba..58e9e16 100644
--- a/src/io/NCHelper.cpp
+++ b/src/io/NCHelper.cpp
@@ -301,7 +301,7 @@ ErrorCode NCHelper::create_conventional_tags(const std::vector<int>& tstep_nums)
return MB_SUCCESS;
}
-ErrorCode NCHelper::read_variable_setup(std::vector<std::string>& var_names, std::vector<int>& tstep_nums,
+ErrorCode NCHelper::read_variables_setup(std::vector<std::string>& var_names, std::vector<int>& tstep_nums,
std::vector<ReadNC::VarData>& vdatas, std::vector<ReadNC::VarData>& vsetdatas)
{
std::map<std::string, ReadNC::VarData>& varInfo = _readNC->varInfo;
@@ -381,12 +381,12 @@ ErrorCode NCHelper::read_variable_setup(std::vector<std::string>& var_names, std
return MB_SUCCESS;
}
-ErrorCode NCHelper::read_variable_to_set(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode NCHelper::read_variables_to_set(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
Interface*& mbImpl = _readNC->mbImpl;
DebugOutput& dbgOut = _readNC->dbgOut;
- ErrorCode rval = read_variable_to_set_allocate(vdatas, tstep_nums); \
+ ErrorCode rval = read_variables_to_set_allocate(vdatas, tstep_nums); \
CHK_ERR1(rval, "Trouble allocating space to read set variables");
// Finally, read into that space
@@ -784,7 +784,7 @@ ErrorCode NCHelper::create_dummy_variables()
return MB_SUCCESS;
}
-ErrorCode NCHelper::read_variable_to_set_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode NCHelper::read_variables_to_set_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
std::vector<int>& dimLens = _readNC->dimLens;
DebugOutput& dbgOut = _readNC->dbgOut;
@@ -1006,7 +1006,7 @@ ErrorCode ScdNCHelper::read_variables(std::vector<std::string>& var_names, std::
std::vector<ReadNC::VarData> vdatas;
std::vector<ReadNC::VarData> vsetdatas;
- ErrorCode rval = read_variable_setup(var_names, tstep_nums, vdatas, vsetdatas); \
+ ErrorCode rval = read_variables_setup(var_names, tstep_nums, vdatas, vsetdatas); \
CHK_ERR1(rval, "Trouble setting up read variable");
// Create COORDS tag for quads
@@ -1014,12 +1014,12 @@ ErrorCode ScdNCHelper::read_variables(std::vector<std::string>& var_names, std::
CHK_ERR1(rval, "Trouble creating coordinate tags to entities quads");
if (!vsetdatas.empty()) {
- rval = read_variable_to_set(vsetdatas, tstep_nums); \
+ rval = read_variables_to_set(vsetdatas, tstep_nums); \
CHK_ERR1(rval, "Trouble read variables to set");
}
if (!vdatas.empty()) {
- rval = read_scd_variable_to_nonset(vdatas, tstep_nums);
+ rval = read_scd_variables_to_nonset(vdatas, tstep_nums);
if (MB_SUCCESS != rval)
SET_ERR(rval, "Trouble reading variables to entities verts/edges/faces");
}
@@ -1027,7 +1027,7 @@ ErrorCode ScdNCHelper::read_variables(std::vector<std::string>& var_names, std::
return MB_SUCCESS;
}
-ErrorCode ScdNCHelper::read_scd_variable_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode ScdNCHelper::read_scd_variables_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
Interface*& mbImpl = _readNC->mbImpl;
std::vector<int>& dimLens = _readNC->dimLens;
@@ -1149,11 +1149,11 @@ ErrorCode ScdNCHelper::read_scd_variable_to_nonset_allocate(std::vector<ReadNC::
return rval;
}
-ErrorCode ScdNCHelper::read_scd_variable_to_nonset(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode ScdNCHelper::read_scd_variables_to_nonset(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
DebugOutput& dbgOut = _readNC->dbgOut;
- ErrorCode rval = read_scd_variable_to_nonset_allocate(vdatas, tstep_nums); \
+ ErrorCode rval = read_scd_variables_to_nonset_allocate(vdatas, tstep_nums); \
CHK_ERR1(rval, "Trouble allocating space to read non-set variables");
// Finally, read into that space
@@ -1340,22 +1340,22 @@ ErrorCode UcdNCHelper::read_variables(std::vector<std::string>& var_names, std::
std::vector<ReadNC::VarData> vdatas;
std::vector<ReadNC::VarData> vsetdatas;
- ErrorCode rval = read_variable_setup(var_names, tstep_nums, vdatas, vsetdatas); \
+ ErrorCode rval = read_variables_setup(var_names, tstep_nums, vdatas, vsetdatas); \
CHK_ERR1(rval, "Trouble setting up to read variables");
if (!vsetdatas.empty()) {
- rval = read_variable_to_set(vsetdatas, tstep_nums); \
+ rval = read_variables_to_set(vsetdatas, tstep_nums); \
CHK_ERR1(rval, "Trouble reading variables to set");
}
if (!vdatas.empty()) {
#ifdef PNETCDF_FILE
// With pnetcdf support, we will use async read
- rval = read_ucd_variable_to_nonset_async(vdatas, tstep_nums); \
+ rval = read_ucd_variables_to_nonset_async(vdatas, tstep_nums); \
CHK_ERR1(rval, "Trouble reading variables to entities verts/edges/faces");
#else
// Without pnetcdf support, we will use old read
- rval = read_ucd_variable_to_nonset(vdatas, tstep_nums); \
+ rval = read_ucd_variables_to_nonset(vdatas, tstep_nums); \
CHK_ERR1(rval, "Trouble reading variables to entities verts/edges/faces");
#endif
}
diff --git a/src/io/NCHelper.hpp b/src/io/NCHelper.hpp
index 817257c..25103a3 100644
--- a/src/io/NCHelper.hpp
+++ b/src/io/NCHelper.hpp
@@ -37,15 +37,15 @@ public:
protected:
//! Separate set and non-set variables (common to scd mesh and ucd mesh)
- ErrorCode read_variable_setup(std::vector<std::string>& var_names,
+ ErrorCode read_variables_setup(std::vector<std::string>& var_names,
std::vector<int>& tstep_nums,
std::vector<ReadNC::VarData>& vdatas,
std::vector<ReadNC::VarData>& vsetdatas);
//! Read set variables (common to scd mesh and ucd mesh)
- ErrorCode read_variable_to_set(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums);
+ ErrorCode read_variables_to_set(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums);
- //! Convert variables in place
+ //! Convert a variable in place
ErrorCode convert_variable(ReadNC::VarData& var_data, int tstep_num);
ErrorCode read_coordinate(const char* var_name, int lmin, int lmax,
@@ -69,8 +69,8 @@ protected:
ErrorCode create_dummy_variables();
private:
- //! Used by read_variable_to_set()
- ErrorCode read_variable_to_set_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums);
+ //! Used by read_variables_to_set()
+ ErrorCode read_variables_to_set_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums);
protected:
//! Allow NCHelper to directly access members of ReadNC
@@ -126,9 +126,9 @@ private:
virtual ErrorCode read_variables(std::vector<std::string>& var_names, std::vector<int>& tstep_nums);
//! Read non-set variables for scd mesh
- ErrorCode read_scd_variable_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas,
+ ErrorCode read_scd_variables_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums);
- ErrorCode read_scd_variable_to_nonset(std::vector<ReadNC::VarData>& vdatas,
+ ErrorCode read_scd_variables_to_nonset(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums);
//! Create COORDS tag for quads coordinate
@@ -194,13 +194,13 @@ private:
std::vector<int> &tstep_nums);
//! Read non-set variables for ucd mesh (implemented differently in child classes)
- virtual ErrorCode read_ucd_variable_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas,
+ virtual ErrorCode read_ucd_variables_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums) = 0;
#ifdef PNETCDF_FILE
- virtual ErrorCode read_ucd_variable_to_nonset_async(std::vector<ReadNC::VarData>& vdatas,
+ virtual ErrorCode read_ucd_variables_to_nonset_async(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums) = 0;
#else
- virtual ErrorCode read_ucd_variable_to_nonset(std::vector<ReadNC::VarData>& vdatas,
+ virtual ErrorCode read_ucd_variables_to_nonset(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums) = 0;
#endif
diff --git a/src/io/NCHelperHOMME.cpp b/src/io/NCHelperHOMME.cpp
index 53fa9ad..b2dea5e 100644
--- a/src/io/NCHelperHOMME.cpp
+++ b/src/io/NCHelperHOMME.cpp
@@ -551,7 +551,7 @@ ErrorCode NCHelperHOMME::create_mesh(Range& faces)
return MB_SUCCESS;
}
-ErrorCode NCHelperHOMME::read_ucd_variable_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode NCHelperHOMME::read_ucd_variables_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
Interface*& mbImpl = _readNC->mbImpl;
std::vector<int>& dimLens = _readNC->dimLens;
@@ -634,11 +634,11 @@ ErrorCode NCHelperHOMME::read_ucd_variable_to_nonset_allocate(std::vector<ReadNC
}
#ifdef PNETCDF_FILE
-ErrorCode NCHelperHOMME::read_ucd_variable_to_nonset_async(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode NCHelperHOMME::read_ucd_variables_to_nonset_async(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
DebugOutput& dbgOut = _readNC->dbgOut;
- ErrorCode rval = read_ucd_variable_to_nonset_allocate(vdatas, tstep_nums);
+ ErrorCode rval = read_ucd_variables_to_nonset_allocate(vdatas, tstep_nums);
ERRORR(rval, "Trouble allocating read variables.");
// Finally, read into that space
@@ -796,11 +796,11 @@ ErrorCode NCHelperHOMME::read_ucd_variable_to_nonset_async(std::vector<ReadNC::V
return rval;
}
#else
-ErrorCode NCHelperHOMME::read_ucd_variable_to_nonset(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode NCHelperHOMME::read_ucd_variables_to_nonset(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
DebugOutput& dbgOut = _readNC->dbgOut;
- ErrorCode rval = read_ucd_variable_to_nonset_allocate(vdatas, tstep_nums);
+ ErrorCode rval = read_ucd_variables_to_nonset_allocate(vdatas, tstep_nums);
ERRORR(rval, "Trouble allocating read variables.");
// Finally, read into that space
diff --git a/src/io/NCHelperHOMME.hpp b/src/io/NCHelperHOMME.hpp
index a6d50f0..4c383bb 100644
--- a/src/io/NCHelperHOMME.hpp
+++ b/src/io/NCHelperHOMME.hpp
@@ -30,16 +30,16 @@ private:
//! Implementation of NCHelper::get_mesh_type_name()
virtual std::string get_mesh_type_name() { return "CAM_SE"; }
- //! Implementation of UcdNCHelper::read_ucd_variable_to_nonset_allocate()
- virtual ErrorCode read_ucd_variable_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas,
+ //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset_allocate()
+ virtual ErrorCode read_ucd_variables_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums);
#ifdef PNETCDF_FILE
- //! Implementation of UcdNCHelper::read_ucd_variable_to_nonset_async()
- virtual ErrorCode read_ucd_variable_to_nonset_async(std::vector<ReadNC::VarData>& vdatas,
+ //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset_async()
+ virtual ErrorCode read_ucd_variables_to_nonset_async(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums);
#else
- //! Implementation of UcdNCHelper::read_ucd_variable_to_nonset()
- virtual ErrorCode read_ucd_variable_to_nonset(std::vector<ReadNC::VarData>& vdatas,
+ //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset()
+ virtual ErrorCode read_ucd_variables_to_nonset(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums);
#endif
diff --git a/src/io/NCHelperMPAS.cpp b/src/io/NCHelperMPAS.cpp
index 9c70b80..58093e3 100644
--- a/src/io/NCHelperMPAS.cpp
+++ b/src/io/NCHelperMPAS.cpp
@@ -509,7 +509,7 @@ ErrorCode NCHelperMPAS::create_mesh(Range& faces)
return MB_SUCCESS;
}
-ErrorCode NCHelperMPAS::read_ucd_variable_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode NCHelperMPAS::read_ucd_variables_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
Interface*& mbImpl = _readNC->mbImpl;
std::vector<int>& dimLens = _readNC->dimLens;
@@ -646,13 +646,13 @@ ErrorCode NCHelperMPAS::read_ucd_variable_to_nonset_allocate(std::vector<ReadNC:
}
#ifdef PNETCDF_FILE
-ErrorCode NCHelperMPAS::read_ucd_variable_to_nonset_async(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode NCHelperMPAS::read_ucd_variables_to_nonset_async(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
Interface*& mbImpl = _readNC->mbImpl;
bool& noEdges = _readNC->noEdges;
DebugOutput& dbgOut = _readNC->dbgOut;
- ErrorCode rval = read_ucd_variable_to_nonset_allocate(vdatas, tstep_nums);
+ ErrorCode rval = read_ucd_variables_to_nonset_allocate(vdatas, tstep_nums);
ERRORR(rval, "Trouble allocating read variables.");
// Finally, read into that space
@@ -803,13 +803,13 @@ ErrorCode NCHelperMPAS::read_ucd_variable_to_nonset_async(std::vector<ReadNC::Va
return rval;
}
#else
-ErrorCode NCHelperMPAS::read_ucd_variable_to_nonset(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
+ErrorCode NCHelperMPAS::read_ucd_variables_to_nonset(std::vector<ReadNC::VarData>& vdatas, std::vector<int>& tstep_nums)
{
Interface*& mbImpl = _readNC->mbImpl;
bool& noEdges = _readNC->noEdges;
DebugOutput& dbgOut = _readNC->dbgOut;
- ErrorCode rval = read_ucd_variable_to_nonset_allocate(vdatas, tstep_nums);
+ ErrorCode rval = read_ucd_variables_to_nonset_allocate(vdatas, tstep_nums);
ERRORR(rval, "Trouble allocating read variables.");
// Finally, read into that space
diff --git a/src/io/NCHelperMPAS.hpp b/src/io/NCHelperMPAS.hpp
index 6c6dc99..b4a3c01 100644
--- a/src/io/NCHelperMPAS.hpp
+++ b/src/io/NCHelperMPAS.hpp
@@ -30,16 +30,16 @@ private:
//! Implementation of NCHelper::get_mesh_type_name()
virtual std::string get_mesh_type_name() { return "MPAS"; }
- //! Implementation of UcdNCHelper::read_ucd_variable_to_nonset_allocate()
- virtual ErrorCode read_ucd_variable_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas,
+ //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset_allocate()
+ virtual ErrorCode read_ucd_variables_to_nonset_allocate(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums);
#ifdef PNETCDF_FILE
- //! Implementation of UcdNCHelper::read_ucd_variable_to_nonset_async()
- virtual ErrorCode read_ucd_variable_to_nonset_async(std::vector<ReadNC::VarData>& vdatas,
+ //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset_async()
+ virtual ErrorCode read_ucd_variables_to_nonset_async(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums);
#else
- //! Implementation of UcdNCHelper::read_ucd_variable_to_nonset()
- virtual ErrorCode read_ucd_variable_to_nonset(std::vector<ReadNC::VarData>& vdatas,
+ //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset()
+ virtual ErrorCode read_ucd_variables_to_nonset(std::vector<ReadNC::VarData>& vdatas,
std::vector<int>& tstep_nums);
#endif
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
Re: [MOAB-dev] get_entities_by_handle - entities do not include meshset entities
by Tim Tautges (ANL) 14 Mar '14
by Tim Tautges (ANL) 14 Mar '14
14 Mar '14
That's almost certainly not true. Can you confirm this with a simple test?
- tim
On 03/14/2014 09:17 AM, MICHAEL CORTIS wrote:
> Dear Tim,
>
> I've noticed that when using get_entities_by_handle,
> the range won't contained meshset entities which are in the handle.
> Believe that one should remark in the documentation that only vertices/edges/tri/tet are retrieved,
> if there is no plan to gather the meshset entities from a handle into the range/vector.
>
> Kind regards
>
> Michael
>
--
================================================================
"You will keep in perfect peace him whose mind is
steadfast, because he trusts in you." Isaiah 26:3
Tim Tautges Argonne National Laboratory
(tautges(a)mcs.anl.gov) (telecommuting from UW-Madison)
phone (gvoice): (608) 354-1459 1500 Engineering Dr.
fax: (608) 263-4499 Madison, WI 53706
1
0
13 Mar '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/9fbdafb94283/
Changeset: 9fbdafb94283
Branch: error_handling_enhancement
User: danwu
Date: 2014-03-13 22:29:27
Summary: Adding a few ignore items.
Affected #: 1 file
diff --git a/.gitignore b/.gitignore
index c80a80a..4b78fb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,6 +36,7 @@ examples/DeformMeshRemap
examples/DirectAccessNoHoles
examples/DirectAccessNoHolesF90
examples/DirectAccessWithHoles
+examples/ErrorHandlingModel
examples/examples.make
examples/freem.mod
examples/GetEntities
@@ -55,6 +56,8 @@ examples/ReduceExchangeTags
examples/SetsNTags
examples/structuredmesh
examples/StructuredMeshSimple
+examples/TestErrorHandling
+examples/TestErrorHandlingPar
examples/TestExodusII
history??.jou
hpctoolkit-*
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/MOAB: danwu: Merged master into error_handling_enhancement
by commits-noreply@bitbucket.org 13 Mar '14
by commits-noreply@bitbucket.org 13 Mar '14
13 Mar '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/81ab0dc8e8c2/
Changeset: 81ab0dc8e8c2
Branch: error_handling_enhancement
User: danwu
Date: 2014-03-13 22:10:27
Summary: Merged master into error_handling_enhancement
Affected #: 31 files
diff --git a/.gitignore b/.gitignore
index 94df472..c80a80a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,14 +31,13 @@ doc/config.tex
doc/dev.dox
doc/user/*
doc/user.dox
+examples/CrystalRouterExample
examples/DeformMeshRemap
examples/DirectAccessNoHoles
examples/DirectAccessNoHolesF90
examples/DirectAccessWithHoles
examples/examples.make
examples/freem.mod
-examples/FileRead
-examples/GeomSetHierarchy
examples/GetEntities
examples/*.h5m
examples/HelloMOAB
@@ -48,14 +47,12 @@ examples/itaps/ListSetsNTagsCXX
examples/itaps/ListSetsNTagsF90
examples/itaps/TagIterateC
examples/itaps/TagIterateF
-examples/KDTree
examples/LloydRelaxation
-examples/ObbTree
+examples/LoadPartial
examples/point_in_elem_search
examples/PushParMeshIntoMoabF90
examples/ReduceExchangeTags
examples/SetsNTags
-examples/SkinMesh
examples/structuredmesh
examples/StructuredMeshSimple
examples/TestExodusII
diff --git a/examples/DeformMeshRemap.cpp b/examples/DeformMeshRemap.cpp
index 5442d1d..55dac45 100644
--- a/examples/DeformMeshRemap.cpp
+++ b/examples/DeformMeshRemap.cpp
@@ -12,6 +12,7 @@
#include "moab/Core.hpp"
#include "moab/Range.hpp"
+#include "moab/Skinner.hpp"
#include "moab/LloydSmoother.hpp"
#include "moab/ProgOptions.hpp"
#include "moab/BoundBox.hpp"
@@ -19,6 +20,10 @@
#include "MBTagConventions.hpp"
#include "DataCoupler.hpp"
+#define IS_BUILDING_MB
+#include "moab/Error.hpp"
+#undef IS_BUILDING_MB
+
#ifdef USE_MPI
# include "moab/ParallelComm.hpp"
#endif
@@ -69,13 +74,13 @@ public:
ErrorCode execute();
//! add a set number
- ErrorCode add_set_no(int fluid_or_solid, int set_no);
+ ErrorCode add_set_no(int m_or_s, int fluid_or_solid, int set_no);
//! remove a set number
- ErrorCode remove_set_no(int fluid_or_solid, int set_no);
+ ErrorCode remove_set_no(int m_or_s, int fluid_or_solid, int set_no);
//! get the set numbers
- ErrorCode get_set_nos(int fluid_or_solid, std::set<int> &set_nos) const;
+ ErrorCode get_set_nos(int m_or_s, int fluid_or_solid, std::set<int> &set_nos) const;
//! get the xNew tag handle
inline Tag x_new() const {return xNew;}
@@ -91,6 +96,10 @@ public:
//! get/set the file name
void set_file_name(int m_or_s, const std::string &name);
+
+ //! get/set the x displacement tag names
+ std::string xdisp_name(int idx = 0);
+ void xdisp_name(const std::string &nm, int idx = 0);
private:
//! apply a known deformation to the solid elements, putting the results in the xNew tag; also
@@ -101,24 +110,32 @@ private:
ErrorCode read_file(int m_or_s, string &fname, EntityHandle &seth);
//! write the input tag to the coordinates for the vertices in the input elems
- ErrorCode write_to_coords(Range &elems, Tag tagh);
+ //! if non-zero tmp_tag is input, save coords to tmp_tag before over-writing with tag value
+ ErrorCode write_to_coords(Range &elems, Tag tagh, Tag tmp_tag = 0);
//! write the tag to the vertices, then save to the specified file
- ErrorCode write_and_save(Range &ents, EntityHandle seth, Tag tagh, const char *filename);
+ //! if restore_coords is true, coords are restored to their initial state after file is written
+ ErrorCode write_and_save(Range &ents, EntityHandle seth, Tag tagh, const char *filename,
+ bool restore_coords = false);
+ //! find fluid/solid sets from complement of solid/fluid sets
+ ErrorCode find_other_sets(int m_or_s, EntityHandle file_set);
+
//! moab interface
Interface *mbImpl;
+ Error *mError;
+
#ifdef USE_MPI
//! ParallelComm for master, slave meshes
ParallelComm *pcMaster, *pcSlave;
#endif
- //! material set numbers for fluid materials
- std::set<int> fluidSetNos;
+ //! material set numbers for fluid materials, for master/slave
+ std::set<int> fluidSetNos[2];
- //! material set numbers for solid materials
- std::set<int> solidSetNos;
+ //! material set numbers for solid materials, for master/slave
+ std::set<int> solidSetNos[2];
//! sets defining master/slave meshes
EntityHandle masterSet, slaveSet;
@@ -132,22 +149,31 @@ private:
//! filenames for master/slave meshes
std::string masterFileName, slaveFileName;
+ //! tag from file, might be 3
+ Tag xDisp[3];
+
//! tag used for new positions
Tag xNew;
+ //! tag name used to read disps from file
+ std::string xDispNames[3];
+
//! tag name used for new positions
std::string xNewName;
};
//! add a set number
-inline ErrorCode DeformMeshRemap::add_set_no(int f_or_s, int set_no)
+inline ErrorCode DeformMeshRemap::add_set_no(int m_or_s, int f_or_s, int set_no)
{
std::set<int> *this_set;
+ assert ((m_or_s == MASTER || m_or_s == SLAVE) && "m_or_s should be MASTER or SLAVE.");
+ if (m_or_s != MASTER && m_or_s != SLAVE) return MB_INDEX_OUT_OF_RANGE;
+
switch (f_or_s) {
case FLUID:
- this_set = &fluidSetNos; break;
+ this_set = &fluidSetNos[m_or_s]; break;
case SOLID:
- this_set = &solidSetNos; break;
+ this_set = &solidSetNos[m_or_s]; break;
default:
assert(false && "f_or_s should be FLUID or SOLID.");
return MB_FAILURE;
@@ -159,14 +185,16 @@ inline ErrorCode DeformMeshRemap::add_set_no(int f_or_s, int set_no)
}
//! remove a set number
-inline ErrorCode DeformMeshRemap::remove_set_no(int f_or_s, int set_no)
+inline ErrorCode DeformMeshRemap::remove_set_no(int m_or_s, int f_or_s, int set_no)
{
std::set<int> *this_set;
+ assert ((m_or_s == MASTER || m_or_s == SLAVE) && "m_or_s should be MASTER or SLAVE.");
+ if (m_or_s != MASTER && m_or_s != SLAVE) return MB_INDEX_OUT_OF_RANGE;
switch (f_or_s) {
case FLUID:
- this_set = &fluidSetNos; break;
+ this_set = &fluidSetNos[m_or_s]; break;
case SOLID:
- this_set = &solidSetNos; break;
+ this_set = &solidSetNos[m_or_s]; break;
default:
assert(false && "f_or_s should be FLUID or SOLID.");
return MB_FAILURE;
@@ -181,14 +209,16 @@ inline ErrorCode DeformMeshRemap::remove_set_no(int f_or_s, int set_no)
}
//! get the set numbers
-inline ErrorCode DeformMeshRemap::get_set_nos(int f_or_s, std::set<int> &set_nos) const
+inline ErrorCode DeformMeshRemap::get_set_nos(int m_or_s, int f_or_s, std::set<int> &set_nos) const
{
const std::set<int> *this_set;
+ assert ((m_or_s == MASTER || m_or_s == SLAVE) && "m_or_s should be MASTER or SLAVE.");
+ if (m_or_s != MASTER && m_or_s != SLAVE) return MB_INDEX_OUT_OF_RANGE;
switch (f_or_s) {
case FLUID:
- this_set = &fluidSetNos; break;
+ this_set = &fluidSetNos[m_or_s]; break;
case SOLID:
- this_set = &solidSetNos; break;
+ this_set = &solidSetNos[m_or_s]; break;
default:
assert(false && "f_or_s should be FLUID or SOLID.");
return MB_FAILURE;
@@ -199,56 +229,108 @@ inline ErrorCode DeformMeshRemap::get_set_nos(int f_or_s, std::set<int> &set_nos
return MB_SUCCESS;
}
+inline std::string DeformMeshRemap::xdisp_name(int idx)
+{
+ return xDispNames[idx];
+}
+
+void DeformMeshRemap::xdisp_name(const std::string &nm, int idx)
+{
+ xDispNames[idx] = nm;
+}
+
ErrorCode DeformMeshRemap::execute()
{
// read master/slave files and get fluid/solid material sets
ErrorCode rval = read_file(MASTER, masterFileName, masterSet);
if (MB_SUCCESS != rval) return rval;
-
- rval = read_file(SLAVE, slaveFileName, slaveSet);
- if (MB_SUCCESS != rval) return rval;
+ if (solidSetNos[MASTER].empty() || fluidSetNos[MASTER].empty()) {
+ rval = find_other_sets(MASTER, masterSet); RR("Failed to find other sets in master mesh.");
+ }
+
+ bool have_slave = !(slaveFileName == "none");
+ if (have_slave) {
+ rval = read_file(SLAVE, slaveFileName, slaveSet);
+ if (MB_SUCCESS != rval) return rval;
+
+ if (solidSetNos[SLAVE].empty() || fluidSetNos[SLAVE].empty()) {
+ rval = find_other_sets(SLAVE, slaveSet); RR("Failed to find other sets in slave mesh.");
+ }
+ }
+
+ if (debug) std::cout << "Constructing data coupler/search tree on master mesh..." << std::endl;
+
Range src_elems = solidElems[MASTER];
src_elems.merge(fluidElems[MASTER]);
- // locate slave vertices in master, orig coords; do this with a data coupler, so you can
- // later interpolate
- Range tgt_verts, tmp_range = solidElems[SLAVE];
- tmp_range.merge(fluidElems[SLAVE]);
- rval = mbImpl->get_adjacencies(tmp_range, 0, false, tgt_verts, Interface::UNION);
- RR("Failed to get target verts.");
-
// initialize data coupler on source elements
- DataCoupler dc_master(mbImpl, NULL, src_elems, 0);
-
- // locate slave vertices, caching results in dc
- rval = dc_master.locate_points(tgt_verts); RR("Point location of tgt verts failed.");
- int num_located = dc_master.spatial_locator()->local_num_located();
- if (num_located != (int)tgt_verts.size()) {
- rval = MB_FAILURE;
- std::cout << "Only " << num_located << " out of " << tgt_verts.size() << " target points successfully located." << std::endl;
- return rval;
+ DataCoupler dc_master(mbImpl, src_elems, 0, NULL);
+
+ Range tgt_verts;
+ if (have_slave) {
+ // locate slave vertices in master, orig coords; do this with a data coupler, so you can
+ // later interpolate
+ Range tmp_range = solidElems[SLAVE];
+ tmp_range.merge(fluidElems[SLAVE]);
+ rval = mbImpl->get_adjacencies(tmp_range, 0, false, tgt_verts, Interface::UNION);
+ RR("Failed to get target verts.");
+
+ // locate slave vertices, caching results in dc
+ if (debug) std::cout << "Locating slave vertices in master mesh..." << std::endl;
+ rval = dc_master.locate_points(tgt_verts); RR("Point location of tgt verts failed.");
+ int num_located = dc_master.spatial_locator()->local_num_located();
+ if (num_located != (int)tgt_verts.size()) {
+ rval = MB_FAILURE;
+ std::cout << "Only " << num_located << " out of " << tgt_verts.size() << " target points successfully located." << std::endl;
+ return rval;
+ }
}
-
+
// deform the master's solid mesh, put results in a new tag
+ if (debug) std::cout << "Deforming fluid elements in master mesh..." << std::endl;
rval = deform_master(fluidElems[MASTER], solidElems[MASTER], "xnew"); RR("");
{ // to isolate the lloyd smoother & delete when done
+ if (debug) {
+ // output the skin of smoothed elems, as a check
+ // get the skin; get facets, because we might need to filter on shared entities
+ Skinner skinner(mbImpl);
+ Range skin;
+ rval = skinner.find_skin(0, fluidElems[MASTER], false, skin); RR("Unable to find skin.");
+ EntityHandle skin_set;
+ std::cout << "Writing skin_mesh.g and fluid_mesh.g." << std::endl;
+ rval = mbImpl->create_meshset(MESHSET_SET, skin_set); RR("Failed to create skin set.");
+ rval = mbImpl->add_entities(skin_set, skin); RR("Failed to add skin entities to set.");
+ rval = mbImpl->write_file("skin_mesh.vtk", NULL, NULL, &skin_set, 1); RR("Failure to write skin set.");
+ rval = mbImpl->remove_entities(skin_set, skin); RR("Failed to remove skin entities from set.");
+ rval = mbImpl->add_entities(skin_set, fluidElems[MASTER]); RR("Failed to add fluid entities to set.");
+ rval = mbImpl->write_file("fluid_mesh.vtk", NULL, NULL, &skin_set, 1); RR("Failure to write fluid set.");
+ rval = mbImpl->delete_entities(&skin_set, 1); RR("Failed to delete skin set.");
+ }
// smooth the master mesh
+ if (debug) std::cout << "Smoothing fluid elements in master mesh..." << std::endl;
LloydSmoother ll(mbImpl, NULL, fluidElems[MASTER], xNew);
rval = ll.perform_smooth();
RR("Failed in lloyd smoothing.");
cout << "Lloyd smoothing required " << ll.num_its() << " iterations." << endl;
}
-
- // map new locations to slave
- // interpolate xNew to slave points
- rval = dc_master.interpolate((int)DataCoupler::VOLUME, "xnew"); RR("Failed to interpolate target solution.");
- // transfer xNew to coords, for master and slave
+ // transfer xNew to coords, for master
+ if (debug) std::cout << "Transferring coords tag to vertex coordinates in master mesh..." << std::endl;
+ rval = write_to_coords(solidElems[MASTER], xNew); RR("Failed writing tag to master fluid verts.");
rval = write_to_coords(fluidElems[MASTER], xNew); RR("Failed writing tag to master fluid verts.");
- rval = write_to_coords(tgt_verts, xNew); RR("Failed writing tag to slave verts.");
+
+ if (have_slave) {
+ // map new locations to slave
+ // interpolate xNew to slave points
+ if (debug) std::cout << "Interpolating new coordinates to slave vertices..." << std::endl;
+ rval = dc_master.interpolate((int)DataCoupler::VOLUME, "xnew"); RR("Failed to interpolate target solution.");
+ // transfer xNew to coords, for slave
+ if (debug) std::cout << "Transferring coords tag to vertex coordinates in slave mesh..." << std::endl;
+ rval = write_to_coords(tgt_verts, xNew); RR("Failed writing tag to slave verts.");
+ }
if (debug) {
std::string str;
@@ -256,14 +338,22 @@ ErrorCode DeformMeshRemap::execute()
if (pcMaster && pcMaster->size() > 1)
str = "PARALLEL=WRITE_PART";
#endif
- rval = mbImpl->write_file("smoothed_master.vtk", NULL, str.c_str(), &masterSet, 1);
+ if (debug) std::cout << "Writing smoothed_master.h5m..." << std::endl;
+ rval = mbImpl->write_file("smoothed_master.h5m", NULL, str.c_str(), &masterSet, 1);
+
+ if (have_slave) {
#ifdef USE_MPI
- str.clear();
- if (pcSlave && pcSlave->size() > 1)
- str = "PARALLEL=WRITE_PART";
+ str.clear();
+ if (pcSlave && pcSlave->size() > 1)
+ str = "PARALLEL=WRITE_PART";
#endif
- rval = mbImpl->write_file("slave_interp.vtk", NULL, str.c_str(), &slaveSet, 1);
- }
+ if (debug) std::cout << "Writing slave_interp.h5m..." << std::endl;
+ rval = mbImpl->write_file("slave_interp.h5m", NULL, str.c_str(), &slaveSet, 1);
+ } // if have_slave
+ } // if debug
+
+ if (debug)
+ dc_master.spatial_locator()->get_tree()->tree_stats().print();
return MB_SUCCESS;
}
@@ -296,14 +386,16 @@ void DeformMeshRemap::set_file_name(int m_or_s, const std::string &name)
DeformMeshRemap::DeformMeshRemap(Interface *impl, ParallelComm *master, ParallelComm *slave)
: mbImpl(impl), pcMaster(master), pcSlave(slave), masterSet(0), slaveSet(0), xNew(0), xNewName("xnew")
{
+ mbImpl->query_interface(mError);
+ xDisp[0] = xDisp[1] = xDisp[2] = 0;
+
if (!pcSlave && pcMaster)
pcSlave = pcMaster;
}
DeformMeshRemap::~DeformMeshRemap()
{
- // delete the tag
- mbImpl->tag_delete(xNew);
+ mbImpl->release_interface(mError);
}
int main(int argc, char **argv) {
@@ -312,14 +404,16 @@ int main(int argc, char **argv) {
ProgOptions po("Deformed mesh options");
po.addOpt<std::string> ("master,m", "Specify the master meshfile name" );
- po.addOpt<std::string> ("slave,s", "Specify the slave meshfile name" );
+ po.addOpt<std::string> ("worker,w", "Specify the slave/worker meshfile name, or 'none' (no quotes) if master only" );
+ po.addOpt<std::string> ("d1,", "Tag name for displacement x or xyz" );
+ po.addOpt<std::string> ("d2,", "Tag name for displacement y" );
+ po.addOpt<std::string> ("d3,", "Tag name for displacement z" );
+ po.addOpt<int> ("fm,", "Specify master fluid material set number(s). If none specified, fluid sets derived from complement of solid sets.");
+ po.addOpt<int> ("fs,", "Specify master solid material set number(s). If none specified, solid sets derived from complement of fluid sets.");
+ po.addOpt<int> ("sm,", "Specify slave fluid material set number(s). If none specified, fluid sets derived from complement of solid sets.");
+ po.addOpt<int> ("ss,", "Specify slave solid material set number(s). If none specified, solid sets derived from complement of fluid sets.");
+
po.parseCommandLine(argc, argv);
- std::string foo;
- string masterf, slavef;
- if(!po.getOpt("master", &masterf))
- masterf = string(MESH_DIR) + string("/rodquad.g");
- if(!po.getOpt("slave", &slavef))
- slavef = string(MESH_DIR) + string("/rodtri.g");
mb = new Core();
@@ -330,10 +424,46 @@ int main(int argc, char **argv) {
#else
dfr = new DeformMeshRemap(mb);
#endif
+
+
+ std::string masterf, slavef;
+ if(!po.getOpt("master", &masterf))
+ masterf = string(MESH_DIR) + string("/rodquad.g");
dfr->set_file_name(DeformMeshRemap::MASTER, masterf);
+
+ if(!po.getOpt("worker", &slavef))
+ slavef = string(MESH_DIR) + string("/rodtri.g");
dfr->set_file_name(DeformMeshRemap::SLAVE, slavef);
- rval = dfr->add_set_no(DeformMeshRemap::SOLID, SOLID_SETNO); RR("Failed to add solid set no.");
- rval = dfr->add_set_no(DeformMeshRemap::FLUID, FLUID_SETNO); RR("Failed to add fluid set no.");
+ if (slavef.empty()) {
+ std::cerr << "Empty slave file name; if no slave, use filename 'none' (no quotes)." << std::endl;
+ return 1;
+ }
+
+ std::vector<int> set_nos;
+ po.getOptAllArgs("fm", set_nos);
+ for (std::vector<int>::iterator vit = set_nos.begin(); vit != set_nos.end(); vit++)
+ dfr->add_set_no(DeformMeshRemap::MASTER, DeformMeshRemap::FLUID, *vit);
+ set_nos.clear();
+
+ po.getOptAllArgs("fs", set_nos);
+ for (std::vector<int>::iterator vit = set_nos.begin(); vit != set_nos.end(); vit++)
+ dfr->add_set_no(DeformMeshRemap::SLAVE, DeformMeshRemap::FLUID, *vit);
+ set_nos.clear();
+
+ po.getOptAllArgs("sm", set_nos);
+ for (std::vector<int>::iterator vit = set_nos.begin(); vit != set_nos.end(); vit++)
+ dfr->add_set_no(DeformMeshRemap::MASTER, DeformMeshRemap::SOLID, *vit);
+
+ po.getOptAllArgs("ss", set_nos);
+ for (std::vector<int>::iterator vit = set_nos.begin(); vit != set_nos.end(); vit++)
+ dfr->add_set_no(DeformMeshRemap::SLAVE, DeformMeshRemap::SOLID, *vit);
+
+ std::string tnames[3];
+ po.getOpt("d1", &tnames[0]);
+ po.getOpt("d2", &tnames[1]);
+ po.getOpt("d3", &tnames[2]);
+ for (int i = 0; i < 3; i++)
+ if (!tnames[i].empty()) dfr->xdisp_name(tnames[i], i);
rval = dfr->execute();
@@ -343,20 +473,38 @@ int main(int argc, char **argv) {
return rval;
}
-ErrorCode DeformMeshRemap::write_and_save(Range &ents, EntityHandle seth, Tag tagh, const char *filename)
+ErrorCode DeformMeshRemap::write_and_save(Range &ents, EntityHandle seth, Tag tagh, const char *filename,
+ bool restore_coords)
{
- ErrorCode rval = write_to_coords(ents, tagh); RR("");
+ Tag tmp_tag = 0;
+ ErrorCode rval;
+ if (restore_coords)
+ rval = mbImpl->tag_get_handle("", 3, MB_TYPE_DOUBLE, tmp_tag, MB_TAG_CREAT|MB_TAG_DENSE);
+
+ rval = write_to_coords(ents, tagh, tmp_tag); RR("");
rval = mbImpl->write_file(filename, NULL, NULL, &seth, 1); RR("");
+ if (restore_coords) {
+ rval = write_to_coords(ents, tmp_tag); RR("");
+ rval = mbImpl->tag_delete(tmp_tag);
+ }
+
return rval;
}
-ErrorCode DeformMeshRemap::write_to_coords(Range &elems, Tag tagh)
+ErrorCode DeformMeshRemap::write_to_coords(Range &elems, Tag tagh, Tag tmp_tag)
{
// write the tag to coordinates
Range verts;
ErrorCode rval = mbImpl->get_adjacencies(elems, 0, false, verts, Interface::UNION);
RR("Failed to get adj vertices.");
std::vector<double> coords(3*verts.size());
+
+ if (tmp_tag) {
+ // save the coords to tmp_tag first
+ rval = mbImpl->get_coords(verts, &coords[0]); RR("Failed to get tmp copy of coords.");
+ rval = mbImpl->tag_set_data(tmp_tag, verts, &coords[0]); RR("Failed to save tmp copy of coords.");
+ }
+
rval = mbImpl->tag_get_data(tagh, verts, &coords[0]);
RR("Failed to get tag data.");
rval = mbImpl->set_coords(verts, &coords[0]);
@@ -376,7 +524,6 @@ void deform_func(const BoundBox &bbox, double *xold, double *xnew)
xnew[0] = xold[0] + yfrac * delx;
xnew[1] = xold[1] + yfrac * (1.0 + xfrac) * 0.05;
*/
-
/* Deformation function based on fraction of bounding box dimension in each direction */
double frac = 0.01; // taken from approximate relative deformation from LLNL Diablo of XX09 assys
CartVect *xo = reinterpret_cast<CartVect*>(xold), *xn = reinterpret_cast<CartVect*>(xnew);
@@ -387,40 +534,95 @@ void deform_func(const BoundBox &bbox, double *xold, double *xnew)
ErrorCode DeformMeshRemap::deform_master(Range &fluid_elems, Range &solid_elems, const char *tag_name)
{
// deform elements with an analytic function
+ ErrorCode rval;
- // create the tag
- ErrorCode rval = mbImpl->tag_get_handle((tag_name ? tag_name : ""), 3, MB_TYPE_DOUBLE, xNew, MB_TAG_CREAT|MB_TAG_DENSE);
- RR("Failed to create xnew tag.");
-
- // get all the vertices and coords in the fluid, set xnew to them
- Range verts;
- rval = mbImpl->get_adjacencies(fluid_elems, 0, false, verts, Interface::UNION);
+ // get all the vertices and coords in the solid
+ Range solid_verts, fluid_verts;
+ rval = mbImpl->get_adjacencies(solid_elems, 0, false, solid_verts, Interface::UNION);
RR("Failed to get vertices.");
- std::vector<double> coords(3*verts.size(), 0.0);
- rval = mbImpl->get_coords(verts, &coords[0]);
+ std::vector<double> coords(3*solid_verts.size()), new_coords(3*solid_verts.size());
+ rval = mbImpl->get_coords(solid_verts, &coords[0]);
RR("Failed to get vertex coords.");
- rval = mbImpl->tag_set_data(xNew, verts, &coords[0]);
- RR("Failed to set xnew tag on fluid verts.");
+ unsigned int num_verts = solid_verts.size();
+
+ // get or create the tag
+ if (!xDispNames[0].empty() && !xDispNames[1].empty() && !xDispNames[2].empty()) {
+ // 3 tags, specifying xyz individual data, integrate into one tag
+ rval = mbImpl->tag_get_handle((tag_name ? tag_name : ""), 3, MB_TYPE_DOUBLE, xNew, MB_TAG_CREAT|MB_TAG_DENSE);
+ RR("Failed to create xnew tag.");
+ std::vector<double> disps(num_verts);
+ for (int i = 0; i < 3; i++) {
+ rval = mbImpl->tag_get_handle(xDispNames[0].c_str(), 1, MB_TYPE_DOUBLE, xDisp[i]);
+ RR("Failed to get xDisp tag.");
+ rval = mbImpl->tag_get_data(xDisp[i], solid_verts, &disps[0]);
+ RR("Failed to get xDisp tag values.");
+ for (unsigned int j = 0; j < num_verts; j++)
+ new_coords[3*j+i] = coords[3*j+i] + disps[j];
+ }
+ }
+ else if (!xDispNames[0].empty()) {
+ rval = mbImpl->tag_get_handle(xDispNames[0].c_str(), 3, MB_TYPE_DOUBLE, xDisp[0]);
+ RR("Failed to get first xDisp tag.");
+ xNew = xDisp[0];
+ std::vector<double> disps(3*num_verts);
+ rval = mbImpl->tag_get_data(xDisp[0], solid_verts, &disps[0]);
+ for (unsigned int j = 0; j < 3*num_verts; j++)
+ new_coords[j] = coords[j] + disps[j];
+ }
+ else {
+ // get the bounding box of the solid mesh
+ BoundBox bbox;
+ bbox.update(*mbImpl, solid_elems);
+
+ for (unsigned int j = 0; j < num_verts; j++)
+ deform_func(bbox, &coords[3*j], &new_coords[3*j]);
+ }
- // get the bounding box of the solid mesh
- BoundBox bbox;
- bbox.update(*mbImpl, solid_elems);
+ if (debug) {
+ double len = 0.0;
+ for (unsigned int i = 0; i < num_verts; i++) {
+ CartVect dx = CartVect(&new_coords[3*i]) - CartVect(&coords[3*i]);
+ double tmp_len = dx.length_squared();
+ if (tmp_len > len) len = tmp_len;
+ }
+ Range tmp_elems(fluid_elems);
+ tmp_elems.merge(solid_elems);
+ BoundBox box;
+ box.update(*mbImpl, tmp_elems);
+ double max_len = std::max(box.bMax[2]-box.bMin[2], std::max(box.bMax[1]-box.bMin[1], box.bMax[0]-box.bMin[0]));
+
+ std::cout << "Max displacement = " << len << " (" << 100.0 * len / max_len << "% of max box length)" << std::endl;
+ }
- // get all the vertices and coords in the solid
- verts.clear();
- rval = mbImpl->get_adjacencies(solid_elems, 0, false, verts, Interface::UNION);
- RR("Failed to get vertices.");
- coords.resize(3*verts.size(), 0.0);
- rval = mbImpl->get_coords(verts, &coords[0]);
- RR("Failed to get vertex coords.");
- unsigned int num_verts = verts.size();
- for (unsigned int i = 0; i < num_verts; i++)
- deform_func(bbox, &coords[3*i], &coords[3*i]);
+ if (!xNew) {
+ rval = mbImpl->tag_get_handle((tag_name ? tag_name : ""), 3, MB_TYPE_DOUBLE,
+ xDisp[0], MB_TAG_CREAT|MB_TAG_DENSE);
+ RR("Failed to get xNew tag.");
+ xNew = xDisp[0];
+ }
// set the new tag to those coords
- rval = mbImpl->tag_set_data(xNew, verts, &coords[0]);
+ rval = mbImpl->tag_set_data(xNew, solid_verts, &new_coords[0]);
RR("Failed to set tag data.");
+ // get all the vertices and coords in the fluid, set xnew to them
+ rval = mbImpl->get_adjacencies(fluid_elems, 0, false, fluid_verts, Interface::UNION);
+ RR("Failed to get vertices.");
+ fluid_verts = subtract(fluid_verts, solid_verts);
+
+ if (coords.size() < 3*fluid_verts.size()) coords.resize(3*fluid_verts.size());
+ rval = mbImpl->get_coords(fluid_verts, &coords[0]);
+ RR("Failed to get vertex coords.");
+ rval = mbImpl->tag_set_data(xNew, fluid_verts, &coords[0]);
+ RR("Failed to set xnew tag on fluid verts.");
+
+ if (debug) {
+ // save deformed mesh coords to new file for visualizing
+ Range tmp_range(fluidElems[MASTER]);
+ tmp_range.merge(solidElems[MASTER]);
+ rval = write_and_save(tmp_range, masterSet, xNew, "deformed_master.h5m", true); RR("");
+ }
+
return MB_SUCCESS;
}
@@ -441,17 +643,22 @@ ErrorCode DeformMeshRemap::read_file(int m_or_s, string &fname, EntityHandle &se
rval = mbImpl->load_file(fname.c_str(), &seth, ostr.str().c_str());
RR("Couldn't load master/slave mesh.");
+ if (*solidSetNos[m_or_s].begin() == -1 || *fluidSetNos[m_or_s].begin() == -1) return MB_SUCCESS;
+
// get material sets for solid/fluid
Tag tagh;
rval = mbImpl->tag_get_handle(MATERIAL_SET_TAG_NAME, tagh); RR("Couldn't get material set tag name.");
- for (std::set<int>::iterator sit = solidSetNos.begin(); sit != solidSetNos.end(); sit++) {
+ for (std::set<int>::iterator sit = solidSetNos[m_or_s].begin(); sit != solidSetNos[m_or_s].end(); sit++) {
Range sets;
int set_no = *sit;
const void *setno_ptr = &set_no;
- rval = mbImpl->get_entities_by_type_and_tag(seth, MBENTITYSET, &tagh, &setno_ptr, 1, sets);
- if (sets.empty()) rval = MB_FAILURE;
- RR("Couldn't get any solid sets.");
- solidSets[m_or_s].merge(sets);
+ ErrorCode tmp_rval = mbImpl->get_entities_by_type_and_tag(seth, MBENTITYSET, &tagh, &setno_ptr, 1, sets);
+ if (sets.empty() || MB_SUCCESS != tmp_rval) {
+ rval = MB_FAILURE;
+ mError->set_last_error("Couldn't find solid set #%d.\n", *sit);
+ }
+ else
+ solidSets[m_or_s].merge(sets);
}
// get solid entities, and dimension
@@ -460,19 +667,26 @@ ErrorCode DeformMeshRemap::read_file(int m_or_s, string &fname, EntityHandle &se
rval = mbImpl->get_entities_by_handle(*rit, tmp_range, true);
RR("Failed to get entities in solid.");
}
- int dim = mbImpl->dimension_from_handle(*tmp_range.rbegin());
- assert(dim > 0 && dim < 4);
-
- solidElems[m_or_s] = tmp_range.subset_by_dimension(dim);
+ if (!tmp_range.empty()) {
+ int dim = mbImpl->dimension_from_handle(*tmp_range.rbegin());
+ assert(dim > 0 && dim < 4);
+ solidElems[m_or_s] = tmp_range.subset_by_dimension(dim);
+ }
+
+ if (debug)
+ std::cout << "Read " << solidElems[m_or_s].size() << " solid elements from " << solidSets[m_or_s].size() << " sets in " << (m_or_s == MASTER ? "master" : "slave") << " mesh." << std::endl;
- for (std::set<int>::iterator sit = fluidSetNos.begin(); sit != fluidSetNos.end(); sit++) {
+ for (std::set<int>::iterator sit = fluidSetNos[m_or_s].begin(); sit != fluidSetNos[m_or_s].end(); sit++) {
Range sets;
int set_no = *sit;
const void *setno_ptr = &set_no;
- rval = mbImpl->get_entities_by_type_and_tag(seth, MBENTITYSET, &tagh, &setno_ptr, 1, sets);
- if (sets.empty()) rval = MB_FAILURE;
- RR("Couldn't get any fluid sets.");
- fluidSets[m_or_s].merge(sets);
+ ErrorCode tmp_rval = mbImpl->get_entities_by_type_and_tag(seth, MBENTITYSET, &tagh, &setno_ptr, 1, sets);
+ if (sets.empty() || MB_SUCCESS != tmp_rval) {
+ rval = MB_FAILURE;
+ mError->set_last_error("Couldn't find fluid set #%d.\n", *sit);
+ }
+ else
+ fluidSets[m_or_s].merge(sets);
}
// get fluid entities, and dimension
@@ -481,8 +695,66 @@ ErrorCode DeformMeshRemap::read_file(int m_or_s, string &fname, EntityHandle &se
rval = mbImpl->get_entities_by_handle(*rit, tmp_range, true);
RR("Failed to get entities in fluid.");
}
+ if (!tmp_range.empty()) {
+ int dim = mbImpl->dimension_from_handle(*tmp_range.rbegin());
+ assert(dim > 0 && dim < 4);
+ fluidElems[m_or_s] = tmp_range.subset_by_dimension(dim);
+ }
+
+ if (debug)
+ std::cout << "Read " << fluidElems[m_or_s].size() << " fluid elements from " << fluidSets[m_or_s].size() << " sets in " << (m_or_s == MASTER ? "master" : "slave") << " mesh." << std::endl;
+
+ return rval;
+}
+
+ErrorCode DeformMeshRemap::find_other_sets(int m_or_s, EntityHandle file_set)
+{
+ // solid or fluid sets are missing; find the other
+ Range *filled_sets = NULL, *unfilled_sets = NULL, *unfilled_elems = NULL;
+
+ if (fluidSets[m_or_s].empty() && !solidSets[m_or_s].empty()) {
+ unfilled_sets = &fluidSets[m_or_s];
+ filled_sets = &solidSets[m_or_s];
+ unfilled_elems = &fluidElems[m_or_s];
+ if (debug)
+ std::cout << "Finding unspecified fluid elements in " << (m_or_s == MASTER ? "master" : "slave") << " mesh...";
+ }
+ else if (!fluidSets[m_or_s].empty() && solidSets[m_or_s].empty()) {
+ filled_sets = &fluidSets[m_or_s];
+ unfilled_sets = &solidSets[m_or_s];
+ unfilled_elems = &solidElems[m_or_s];
+ if (debug)
+ std::cout << "Finding unspecified solid elements in " << (m_or_s == MASTER ? "master" : "slave") << " mesh...";
+ }
- fluidElems[m_or_s] = tmp_range.subset_by_dimension(dim);
+ // ok, we know the filled sets, now fill the unfilled sets, and the elems from those
+ Tag tagh;
+ ErrorCode rval = mbImpl->tag_get_handle(MATERIAL_SET_TAG_NAME, tagh); RR("Couldn't get material set tag name.");
+ Range matsets;
+ rval = mbImpl->get_entities_by_type_and_tag(file_set, MBENTITYSET, &tagh, NULL, 1, matsets);
+ if (matsets.empty()) rval = MB_FAILURE;
+ RR("Couldn't get any material sets.");
+ *unfilled_sets = subtract(matsets, *filled_sets);
+ if (unfilled_sets->empty()) {
+ rval = MB_FAILURE;
+ RR("Failed to find any unfilled material sets.");
+ }
+ Range tmp_range;
+ for (Range::iterator rit = unfilled_sets->begin(); rit != unfilled_sets->end(); rit++) {
+ rval = mbImpl->get_entities_by_handle(*rit, tmp_range, true);
+ RR("Failed to get entities in unfilled set.");
+ }
+ int dim = mbImpl->dimension_from_handle(*tmp_range.rbegin());
+ assert(dim > 0 && dim < 4);
+ *unfilled_elems = tmp_range.subset_by_dimension(dim);
+ if (unfilled_elems->empty()) {
+ rval = MB_FAILURE;
+ RR("Failed to find any unfilled set entities.");
+ }
+
+ if (debug)
+ std::cout << "found " << unfilled_sets->size() << " sets and " << unfilled_elems->size() << " elements." << std::endl;
return MB_SUCCESS;
}
+
diff --git a/src/AdaptiveKDTree.cpp b/src/AdaptiveKDTree.cpp
index 1324c30..8aafdd1 100644
--- a/src/AdaptiveKDTree.cpp
+++ b/src/AdaptiveKDTree.cpp
@@ -176,7 +176,6 @@ namespace moab {
else {
rval = iter.step();
if (MB_ENTITY_NOT_FOUND == rval) {
- treeStats.reset();
rval = treeStats.compute_stats(mbImpl, myRoot);
treeStats.initTime = cp.time_elapsed();
return rval; // at end
@@ -807,8 +806,7 @@ namespace moab {
t_enter, t_exit );
}
- static ErrorCode intersect_children_with_elems(
- AdaptiveKDTree* tool,
+ ErrorCode AdaptiveKDTree::intersect_children_with_elems(
const Range& elems,
AdaptiveKDTree::Plane plane,
double eps,
@@ -823,15 +821,16 @@ namespace moab {
right_tris.clear();
both_tris.clear();
CartVect coords[16];
- Interface *const moab = tool->moab();
// get extents of boxes for left and right sides
- CartVect right_min( box_min ), left_max( box_max );
- right_min[plane.norm] = left_max[plane.norm] = plane.coord;
- const CartVect left_cen = 0.5*(left_max + box_min);
- const CartVect left_dim = 0.5*(left_max - box_min);
- const CartVect right_cen = 0.5*(box_max + right_min);
- const CartVect right_dim = 0.5*(box_max - right_min);
+ BoundBox left_box(box_min, box_max), right_box(box_min, box_max);
+ right_box.bMin = box_min;
+ left_box.bMax = box_max;
+ right_box.bMin[plane.norm] = left_box.bMax[plane.norm] = plane.coord;
+ const CartVect left_cen = 0.5*(left_box.bMax + box_min);
+ const CartVect left_dim = 0.5*(left_box.bMax - box_min);
+ const CartVect right_cen = 0.5*(box_max + right_box.bMin);
+ const CartVect right_dim = 0.5*(box_max - right_box.bMin);
const CartVect dim = box_max - box_min;
const double max_tol = std::max(dim[0], std::max(dim[1], dim[2]))/10;
@@ -851,8 +850,8 @@ namespace moab {
// vertices
for (i = elems.begin(); i != elem_begin; ++i) {
- tool->tree_stats().leafObjectTests++;
- rval = moab->get_coords( &*i, 1, coords[0].array() );
+ tree_stats().leafObjectTests++;
+ rval = moab()->get_coords( &*i, 1, coords[0].array() );
if (MB_SUCCESS != rval)
return rval;
@@ -873,13 +872,13 @@ namespace moab {
// non-polyhedron elements
std::vector<EntityHandle> dum_vector;
for (i = elem_begin; i != poly_begin; ++i) {
- tool->tree_stats().leafObjectTests++;
- rval = moab->get_connectivity( *i, conn, count, true, &dum_vector);
+ tree_stats().leafObjectTests++;
+ rval = moab()->get_connectivity( *i, conn, count, true, &dum_vector);
if (MB_SUCCESS != rval)
return rval;
if (count > (int)(sizeof(coords)/sizeof(coords[0])))
return MB_FAILURE;
- rval = moab->get_coords( &conn[0], count, coords[0].array() );
+ rval = moab()->get_coords( &conn[0], count, coords[0].array() );
if (MB_SUCCESS != rval) return rval;
bool lo = false, ro = false;
@@ -894,12 +893,16 @@ namespace moab {
// identified that leaf, then we're done. If triangle is on both
// sides of plane, do more precise test to ensure that it is really
// in both.
+// BoundBox box;
+// box.update(*moab(), *i);
if (lo && ro) {
double tol = eps;
lo = ro = false;
while (!lo && !ro && tol <= max_tol) {
- lo = GeomUtil::box_elem_overlap( coords, TYPE_FROM_HANDLE(*i), left_cen, left_dim+CartVect(tol) );
- ro = GeomUtil::box_elem_overlap( coords, TYPE_FROM_HANDLE(*i),right_cen,right_dim+CartVect(tol) );
+ tree_stats().boxElemTests+= 2;
+ lo = GeomUtil::box_elem_overlap( coords, TYPE_FROM_HANDLE(*i), left_cen, left_dim+CartVect(tol));
+ ro = GeomUtil::box_elem_overlap( coords, TYPE_FROM_HANDLE(*i), right_cen, right_dim+CartVect(tol));
+
tol *= 10.0;
}
}
@@ -913,20 +916,20 @@ namespace moab {
// polyhedra
for (i = poly_begin; i != set_begin; ++i) {
- tool->tree_stats().leafObjectTests++;
- rval = moab->get_connectivity( *i, conn, count, true );
+ tree_stats().leafObjectTests++;
+ rval = moab()->get_connectivity( *i, conn, count, true );
if (MB_SUCCESS != rval)
return rval;
// just check the bounding box of the polyhedron
bool lo = false, ro = false;
for (int j = 0; j < count; ++j) {
- rval = moab->get_connectivity( conn[j], conn2, count2, true );
+ rval = moab()->get_connectivity( conn[j], conn2, count2, true );
if (MB_SUCCESS != rval)
return rval;
for (int k = 0; k < count2; ++k) {
- rval = moab->get_coords( conn2 + k, 1, coords[0].array() );
+ rval = moab()->get_coords( conn2 + k, 1, coords[0].array() );
if (MB_SUCCESS != rval)
return rval;
if (coords[0][plane.norm] <= plane.coord)
@@ -947,8 +950,8 @@ namespace moab {
// sets
BoundBox tbox;
for (i = set_begin; i != elems.end(); ++i) {
- tool->tree_stats().leafObjectTests++;
- rval = tbox.update(*tool->moab(), *i);
+ tree_stats().leafObjectTests++;
+ rval = tbox.update(*moab(), *i);
if (MB_SUCCESS != rval)
return rval;
@@ -1005,8 +1008,7 @@ namespace moab {
AdaptiveKDTree::Plane plane = { box_min[axis] + (p/(1.0+plane_count)) * diff[axis], axis };
Range left, right, both;
double val;
- r = intersect_children_with_elems( iter.tool(),
- entities, plane, eps,
+ r = intersect_children_with_elems( entities, plane, eps,
box_min, box_max,
left, right, both,
val );
@@ -1057,32 +1059,38 @@ namespace moab {
if (MB_SUCCESS != r)
return r;
- tmp_data.resize( vertices.size() );
+ unsigned int nverts = vertices.size();
+ tmp_data.resize( 3*nverts);
+ r = iter.tool()->moab()->get_coords( vertices, &tmp_data[0], &tmp_data[nverts], &tmp_data[2*nverts] );
+ if (MB_SUCCESS != r)
+ return r;
+
for (int axis = 0; axis < 3; ++axis) {
int plane_count = num_planes;
+
+ // if num_planes results in width < eps, reset the plane count
if ((num_planes+1)*eps >= diff[axis])
plane_count = (int)(diff[axis] / eps) - 1;
- double *ptrs[] = { 0, 0, 0 };
- ptrs[axis] = &tmp_data[0];
- r = iter.tool()->moab()->get_coords( vertices, ptrs[0], ptrs[1], ptrs[2] );
- if (MB_SUCCESS != r)
- return r;
-
for (int p = 1; p <= plane_count; ++p) {
+
+ // coord of this plane on axis
double coord = box_min[axis] + (p/(1.0+plane_count)) * diff[axis];
- double closest_coord = tmp_data[0];
- for (unsigned i = 1; i < tmp_data.size(); ++i)
- if (fabs(coord-tmp_data[i]) < fabs(coord-closest_coord))
- closest_coord = tmp_data[i];
+
+ // find closest vertex coordinate to this plane position
+ unsigned int istrt = axis*nverts;
+ double closest_coord = tmp_data[istrt];
+ for (unsigned i = 1; i < nverts; ++i)
+ if (fabs(coord-tmp_data[istrt+i]) < fabs(coord-closest_coord))
+ closest_coord = tmp_data[istrt+i];
if (closest_coord - box_min[axis] <= eps || box_max[axis] - closest_coord <= eps)
continue;
+ // seprate elems into left/right/both, and compute separating metric
AdaptiveKDTree::Plane plane = { closest_coord, axis };
Range left, right, both;
double val;
- r = intersect_children_with_elems( iter.tool(),
- entities, plane, eps,
+ r = intersect_children_with_elems( entities, plane, eps,
box_min, box_max,
left, right, both,
val );
@@ -1160,8 +1168,7 @@ namespace moab {
AdaptiveKDTree::Plane plane = { *citer, axis };
Range left, right, both;
double val;
- r = intersect_children_with_elems( iter.tool(),
- entities, plane, eps,
+ r = intersect_children_with_elems( entities, plane, eps,
box_min, box_max,
left, right, both,
val );
@@ -1276,8 +1283,7 @@ namespace moab {
AdaptiveKDTree::Plane plane = { coords[indices[p]], axis };
Range left, right, both;
double val;
- r = intersect_children_with_elems( iter.tool(),
- entities, plane, eps,
+ r = intersect_children_with_elems( entities, plane, eps,
box_min, box_max,
left, right, both,
val );
diff --git a/src/BVHTree.cpp b/src/BVHTree.cpp
index d54e24d..e2592fb 100644
--- a/src/BVHTree.cpp
+++ b/src/BVHTree.cpp
@@ -48,7 +48,7 @@ namespace moab
#ifndef NDEBUG
for(std::vector<HandleData>::const_iterator i = handle_data_vec.begin(); i != handle_data_vec.end(); ++i) {
- if(!boundBox.contains_box(i->myBox, 0)){
+ if(!boundBox.intersects_box(i->myBox, 0)){
std::cerr << "BB:" << boundBox << "EB:" << i->myBox << std::endl;
return MB_FAILURE;
}
@@ -168,16 +168,16 @@ namespace moab
for (unsigned int dim = 0; dim < 3; ++dim){
const unsigned int index = Bucket::bucket_index(splitsPerDir, box, interval, dim);
Bucket &bucket = buckets[dim][index];
- if(!bucket.boundingBox.contains_box(box))
+ if(!bucket.boundingBox.intersects_box(box))
std::cerr << "Buckets not covering elements!" << std::endl;
}
}
- if(!elt_union.contains_box(interval) ){
+ if(!elt_union.intersects_box(interval) ){
std::cout << "element union: " << std::endl << elt_union;
std::cout << "intervals: " << std::endl << interval;
std::cout << "union of elts does not contain original box!" << std::endl;
}
- if (!interval.contains_box(elt_union) ){
+ if (!interval.intersects_box(elt_union) ){
std::cout << "original box does not contain union of elts" << std::endl;
std::cout << interval << std::endl << elt_union << std::endl;
}
@@ -193,9 +193,9 @@ namespace moab
for(unsigned int i = 0; i < nonempty.size(); ++i)
test_box.update(buckets_[nonempty[i]].boundingBox);
- if(!test_box.contains_box(interval) )
+ if(!test_box.intersects_box(interval) )
std::cout << "union of buckets in dimension: " << d << "does not contain original box!" << std::endl;
- if (!interval.contains_box(test_box) ) {
+ if (!interval.intersects_box(test_box) ) {
std::cout << "original box does " << "not contain union of buckets"
<< "in dimension: " << d << std::endl;
std::cout << interval << std::endl << test_box << std::endl;
@@ -234,7 +234,7 @@ namespace moab
s != splits_end; ++s, ++left_end) {
BoundBox test_box = s->leftBox;
test_box.update(s->rightBox);
- if(!data.boundingBox.contains_box(test_box)) {
+ if(!data.boundingBox.intersects_box(test_box)) {
std::cout << "nr: " << s->nr << std::endl;
std::cout << "Test box: " << std::endl <<
test_box;
@@ -247,7 +247,7 @@ namespace moab
std::cout << "Split boxes larger than bb"
<< std::endl;
}
- if(!test_box.contains_box(data.boundingBox)) {
+ if(!test_box.intersects_box(data.boundingBox)) {
std::cout << "bb larger than union of split boxes" << std::endl;
}
}
@@ -288,7 +288,7 @@ namespace moab
data.Lmax = data.leftBox.bMax[data.dim];
#ifndef NDEBUG
BoundBox test_box(data.rightBox);
- if(!data.boundingBox.contains_box(test_box)) {
+ if(!data.boundingBox.intersects_box(test_box)) {
std::cerr << "MEDIAN: BB Does not contain splits" << std::endl;
std::cerr << "test_box: " << test_box << std::endl;
std::cerr << "data.boundingBox: " << data.boundingBox << std::endl;
@@ -335,7 +335,7 @@ namespace moab
else {
right_box.update(i->myBox);
}
- if(!right_box.contains_box(i->myBox)) {
+ if(!right_box.intersects_box(i->myBox)) {
if(!issue) {
std::cerr << "Bounding right box issue!"
<< std::endl;
@@ -352,7 +352,7 @@ namespace moab
else {
left_box.update(i->myBox);
}
- if(!data.leftBox.contains_box(i->myBox)) {
+ if(!data.leftBox.intersects_box(i->myBox)) {
if(!issue) {
std::cerr << "Bounding left box issue!"
<< std::endl;
@@ -367,13 +367,13 @@ namespace moab
}
}
}
- if(!left_box.contains_box(data.leftBox))
+ if(!left_box.intersects_box(data.leftBox))
std::cout << "left elts do not contain left box" << std::endl;
- if(!data.leftBox.contains_box(left_box))
+ if(!data.leftBox.intersects_box(left_box))
std::cout << "left box does not contain left elts" << std::endl;
- if(!right_box.contains_box(data.rightBox))
+ if(!right_box.intersects_box(data.rightBox))
std::cout << "right elts do not contain right box" << std::endl;
- if(!data.rightBox.contains_box(right_box))
+ if(!data.rightBox.intersects_box(right_box))
std::cout << "right box do not contain right elts" << std::endl;
if(count_left != data.nl || count_right != data.nr) {
@@ -400,7 +400,7 @@ namespace moab
{
#ifndef NDEBUG
for(HandleDataVec::const_iterator i = begin; i != end; ++i) {
- if(!box.contains_box(i->myBox, 0)) {
+ if(!box.intersects_box(i->myBox, 0)) {
std::cerr << "depth: " << depth << std::endl;
std::cerr << "BB:" << box << "EB:" << i->myBox << std::endl;
std::exit(-1);
diff --git a/src/LloydSmoother.cpp b/src/LloydSmoother.cpp
index b1614d2..ba8169a 100644
--- a/src/LloydSmoother.cpp
+++ b/src/LloydSmoother.cpp
@@ -39,6 +39,17 @@ ErrorCode LloydSmoother::perform_smooth()
{
ErrorCode rval;
+ if (myElems.empty()) {
+ rval = MB_FAILURE;
+ RR("No elements specified to Lloyd smoother.");
+ }
+ else if (mbImpl->dimension_from_handle(*myElems.begin()) != mbImpl->dimension_from_handle(*myElems.rbegin())) {
+ rval = MB_FAILURE;
+ RR("Elements of unequal dimension specified to Lloyd smoother.");
+ }
+
+ int dim = mbImpl->dimension_from_handle(*myElems.begin());
+
// first figure out tolerance to use
if (0 > absTol) {
// no tolerance set - get one relative to bounding box around elements
@@ -140,7 +151,7 @@ ErrorCode LloydSmoother::perform_smooth()
if (fix_tag[v]) continue;
// vertex centroid = sum(cell centroids)/ncells
adj_elems.clear();
- rval = mbImpl->get_adjacencies(&(*vit), 1, 2, false, adj_elems); RR("Failed getting adjs.");
+ rval = mbImpl->get_adjacencies(&(*vit), 1, dim, false, adj_elems); RR("Failed getting adjs.");
rval = mbImpl->tag_get_data(centroid, &adj_elems[0], adj_elems.size(), &fcentroids[0]);
RR("Failed to get elem centroid.");
double vnew[] = {0.0, 0.0, 0.0};
@@ -221,7 +232,7 @@ ErrorCode LloydSmoother::initialize()
RR("Trouble getting vertices.");
// mark them fixed
- std::vector<unsigned char> marks(skin.size(), 0x1);
+ std::vector<unsigned char> marks(skin_verts.size(), 0x1);
rval = mbImpl->tag_set_data(fixedTag, skin_verts, &marks[0]);
RR("Unable to set tag on skin.");
}
diff --git a/src/LocalDiscretization/moab/ElemEvaluator.hpp b/src/LocalDiscretization/moab/ElemEvaluator.hpp
index 866388c..6a1efd0 100644
--- a/src/LocalDiscretization/moab/ElemEvaluator.hpp
+++ b/src/LocalDiscretization/moab/ElemEvaluator.hpp
@@ -339,8 +339,13 @@ namespace moab {
std::vector<EntityHandle> dum_vec;
ErrorCode rval = mbImpl->get_connectivity(ent, vertHandles, numVerts, false, &dum_vec);
if (MB_SUCCESS != rval) return rval;
+
+ if (!evalSets[entType].evalFcn)
+ EvalSet::get_eval_set(entType, numVerts, evalSets[entType]);
+
rval = mbImpl->get_coords(vertHandles, numVerts, vertPos[0].array());
if (MB_SUCCESS != rval) return rval;
+
if (tagHandle) {
rval = set_tag_handle(tagHandle);
if (MB_SUCCESS != rval) return rval;
diff --git a/src/SpatialLocator.cpp b/src/SpatialLocator.cpp
index f976ae7..702399e 100644
--- a/src/SpatialLocator.cpp
+++ b/src/SpatialLocator.cpp
@@ -2,6 +2,7 @@
#include "moab/Interface.hpp"
#include "moab/ElemEvaluator.hpp"
#include "moab/AdaptiveKDTree.hpp"
+#include "moab/BVHTree.hpp"
// include ScdInterface for box partitioning
#include "moab/ScdInterface.hpp"
@@ -18,10 +19,8 @@ namespace moab
SpatialLocator::SpatialLocator(Interface *impl, Range &elems, Tree *tree, ElemEvaluator *eval)
: mbImpl(impl), myElems(elems), myDim(-1), myTree(tree), elemEval(eval), iCreatedTree(false)
{
- if (!myTree) {
- myTree = new AdaptiveKDTree(impl);
- iCreatedTree = true;
- }
+ create_tree();
+
if (!elems.empty()) {
myDim = mbImpl->dimension_from_handle(*elems.rbegin());
ErrorCode rval = myTree->build_tree(myElems);
@@ -32,6 +31,20 @@ namespace moab
}
}
+ void SpatialLocator::create_tree()
+ {
+ if (myTree) return;
+
+ if (myElems.empty() || mbImpl->type_from_handle(*myElems.rbegin()) == MBVERTEX)
+ // create a kdtree if only vertices
+ myTree = new AdaptiveKDTree(mbImpl);
+ else
+ // otherwise a BVHtree, since it performs better for elements
+ myTree = new BVHTree(mbImpl);
+
+ iCreatedTree = true;
+ }
+
ErrorCode SpatialLocator::add_elems(Range &elems)
{
if (elems.empty() ||
@@ -40,7 +53,9 @@ namespace moab
myDim = mbImpl->dimension_from_handle(*elems.begin());
myElems = elems;
- return MB_SUCCESS;
+
+ ErrorCode rval = myTree->build_tree(myElems);
+ return rval;
}
#ifdef USE_MPI
@@ -352,90 +367,29 @@ namespace moab
// relative epsilon given, translate to absolute epsilon using box dimensions
tmp_abs_iter_tol = rel_iter_tol * localBox.diagonal_length();
}
-
- EntityHandle closest_leaf;
- std::vector<double> dists;
- std::vector<EntityHandle> leaves;
- ErrorCode rval = MB_SUCCESS;
+ if (elemEval && myTree->get_eval() != elemEval)
+ myTree->set_eval(elemEval);
+
+ ErrorCode rval = MB_SUCCESS;
for (int i = 0; i < num_points; i++) {
int i3 = 3*i;
- ents[i] = 0;
- if (tmp_abs_iter_tol) {
- rval = myTree->distance_search(pos+i3, tmp_abs_iter_tol, leaves, tmp_abs_iter_tol, inside_tol, &dists);
- if (MB_SUCCESS != rval) return rval;
- if (!leaves.empty()) {
- // get closest leaf
- double min_dist = *dists.begin();
- closest_leaf = *leaves.begin();
- std::vector<EntityHandle>::iterator vit = leaves.begin()+1;
- std::vector<double>::iterator dit = dists.begin()+1;
- for (; vit != leaves.end() && min_dist; vit++, dit++) {
- if (*dit < min_dist) {
- min_dist = *dit;
- closest_leaf = *vit;
- }
- }
- dists.clear();
- leaves.clear();
- }
- }
- else {
- rval = myTree->point_search(pos+i3, closest_leaf);
- if (MB_ENTITY_NOT_FOUND == rval) closest_leaf = 0;
- else if (MB_SUCCESS != rval) return rval;
- }
-
- // if no ElemEvaluator, just return the box
- if (!elemEval) {
- ents[i] = closest_leaf;
- params[i3] = params[i3+1] = params[i3+2] = -2;
- if (is_inside && closest_leaf) is_inside[i] = true;
+ ErrorCode tmp_rval = myTree->point_search(pos+i3, ents[i], abs_iter_tol, inside_tol, NULL, NULL,
+ (CartVect*)(params+i3));
+ if (MB_SUCCESS != tmp_rval) {
+ rval = tmp_rval;
continue;
}
-
- // find natural coordinates of point in element(s) in that leaf
- CartVect tmp_nat_coords;
- Range range_leaf;
- rval = mbImpl->get_entities_by_dimension(closest_leaf, myDim, range_leaf, false);
- if(rval != MB_SUCCESS) return rval;
-
- // loop over the range_leaf
- int tmp_inside;
- int *is_ptr = (is_inside ? is_inside+i : &tmp_inside);
- *is_ptr = false;
- EntityHandle ent = 0;
- for(Range::iterator rit = range_leaf.begin(); rit != range_leaf.end(); rit++)
- {
- rval = elemEval->set_ent_handle(*rit);
- if (MB_SUCCESS != rval) return rval;
- rval = elemEval->reverse_eval(pos+i3, tmp_abs_iter_tol, inside_tol, params+i3, is_ptr);
- if (MB_SUCCESS != rval) return rval;
- if (*is_ptr) {
- ent = *rit;
- break;
- }
- }
- if (debug && !ent) {
+
+ if (debug && !ents[i]) {
std::cout << "Point " << i << " not found; point: ("
<< pos[i3] << "," << pos[i3+1] << "," << pos[i3+2] << ")" << std::endl;
- std::cout << "Source element candidates: " << std::endl;
- range_leaf.print(" ");
- for(Range::iterator rit = range_leaf.begin(); rit != range_leaf.end(); rit++)
- {
- std::cout << "Candidate " << CN::EntityTypeName(mbImpl->type_from_handle(*rit)) << " " << mbImpl->id_from_handle(*rit) << ": ";
- rval = elemEval->set_ent_handle(*rit);
- if (MB_SUCCESS != rval) return rval;
- rval = elemEval->reverse_eval(pos+i3, tmp_abs_iter_tol, inside_tol, params+i3, is_ptr);
- if (MB_SUCCESS != rval) return rval;
- std::cout << "Parameters: (" << params[i3] << "," << params[i3+1] << "," << params[i3+2] << ")"
- << " inside = " << *is_ptr << std::endl;
- }
}
- ents[i] = ent;
- }
- return MB_SUCCESS;
+ if (is_inside) is_inside[i] = (ents[i] ? true : false);
+ }
+
+ return rval;
}
/* Count the number of located points in locTable
diff --git a/src/io/Tqdcfr.cpp b/src/io/Tqdcfr.cpp
index 701ff15..7416164 100644
--- a/src/io/Tqdcfr.cpp
+++ b/src/io/Tqdcfr.cpp
@@ -959,7 +959,7 @@ ErrorCode Tqdcfr::read_block(const unsigned int blindex,
FREADD(blockh->attribOrder); num_read += sizeof(double);
void const* tag_data[] = { &dbl_buf[0] };
- int tag_sizes[] = { blockh->attribOrder };
+ int tag_sizes[] = { static_cast<int>(blockh->attribOrder) };
result = mdbImpl->tag_set_by_ptr(block_attribs,&(blockh->setHandle),1,tag_data,tag_sizes);
if (MB_SUCCESS != result) return result;
}
@@ -1932,7 +1932,8 @@ ErrorCode Tqdcfr::BlockHeader::read_info_header(const double data_version,
result = instance->mdbImpl->tag_get_handle(BLOCK_HEADER,3*sizeof(unsigned int),MB_TYPE_INTEGER,
bhTag_header,MB_TAG_CREAT|MB_TAG_SPARSE|MB_TAG_BYTES,&def_uint_zero[0]);
if (MB_SUCCESS != result) return result;
- int block_header_data[] = { block_headers[i].blockCol, block_headers[i].blockMat, block_headers[i].blockDim };
+ int block_header_data[] = { static_cast<int>(block_headers[i].blockCol), static_cast<int>(block_headers[i].blockMat),
+ static_cast<int>(block_headers[i].blockDim) };
result = instance->mdbImpl->tag_set_data(bhTag_header,&(block_headers[i].setHandle), 1,
block_header_data);
}
diff --git a/src/moab/AdaptiveKDTree.hpp b/src/moab/AdaptiveKDTree.hpp
index c77bdbc..e4c5078 100644
--- a/src/moab/AdaptiveKDTree.hpp
+++ b/src/moab/AdaptiveKDTree.hpp
@@ -38,6 +38,13 @@ namespace moab {
~AdaptiveKDTree();
+ /** \brief Parse options for tree creation
+ * \param options Options passed in by application
+ * \return Failure is returned if any options were passed in and not interpreted; could mean
+ * inappropriate options for a particular tree type
+ */
+ ErrorCode parse_options(FileOptions &options);
+
/** Build the tree
* Build a tree with the entities input. If a non-NULL tree_root_set pointer is input,
* use the pointed-to set as the root of this tree (*tree_root_set!=0) otherwise construct
@@ -251,16 +258,8 @@ namespace moab {
virtual ErrorCode print();
private:
-
friend class AdaptiveKDTreeIter;
- /** \brief Parse options for tree creation
- * \param options Options passed in by application
- * \return Failure is returned if any options were passed in and not interpreted; could mean
- * inappropriate options for a particular tree type
- */
- ErrorCode parse_options(FileOptions &options);
-
ErrorCode init();
/**\brief find a triangle near the input point */
@@ -273,7 +272,18 @@ namespace moab {
DataType type, int count, void* default_val, Tag& tag_handle,
std::vector<Tag>& created_tags );
- static ErrorCode best_subdivision_snap_plane( int num_planes,
+ ErrorCode intersect_children_with_elems(
+ const Range& elems,
+ AdaptiveKDTree::Plane plane,
+ double eps,
+ CartVect box_min,
+ CartVect box_max,
+ Range& left_tris,
+ Range& right_tris,
+ Range& both_tris,
+ double& metric_value );
+
+ ErrorCode best_subdivision_snap_plane( int num_planes,
const AdaptiveKDTreeIter& iter,
Range& best_left,
Range& best_right,
@@ -282,7 +292,7 @@ namespace moab {
std::vector<double>& tmp_data,
double eps );
- static ErrorCode best_subdivision_plane( int num_planes,
+ ErrorCode best_subdivision_plane( int num_planes,
const AdaptiveKDTreeIter& iter,
Range& best_left,
Range& best_right,
@@ -290,7 +300,7 @@ namespace moab {
AdaptiveKDTree::Plane& best_plane,
double eps );
- static ErrorCode best_vertex_median_plane( int num_planes,
+ ErrorCode best_vertex_median_plane( int num_planes,
const AdaptiveKDTreeIter& iter,
Range& best_left,
Range& best_right,
@@ -299,7 +309,7 @@ namespace moab {
std::vector<double>& coords,
double eps);
- static ErrorCode best_vertex_sample_plane( int num_planes,
+ ErrorCode best_vertex_sample_plane( int num_planes,
const AdaptiveKDTreeIter& iter,
Range& best_left,
Range& best_right,
diff --git a/src/moab/BVHTree.hpp b/src/moab/BVHTree.hpp
index d435ebf..354d3a1 100644
--- a/src/moab/BVHTree.hpp
+++ b/src/moab/BVHTree.hpp
@@ -272,7 +272,6 @@ namespace moab {
Range entityHandles;
std::vector<TreeNode> myTree;
- ElemEvaluator *myEval;
int splitsPerDir;
EntityHandle startSetHandle;
static const char *treeName;
@@ -305,7 +304,7 @@ namespace moab {
}
inline BVHTree::BVHTree(Interface *impl) :
- Tree(impl), myEval(NULL), splitsPerDir(3), startSetHandle(0) {boxTagName = treeName;}
+ Tree(impl), splitsPerDir(3), startSetHandle(0) {boxTagName = treeName;}
inline unsigned int BVHTree::set_interval(BoundBox &interval,
std::vector<Bucket>::const_iterator begin,
diff --git a/src/moab/BoundBox.hpp b/src/moab/BoundBox.hpp
index 3e525ac..c74707a 100644
--- a/src/moab/BoundBox.hpp
+++ b/src/moab/BoundBox.hpp
@@ -17,7 +17,7 @@ namespace moab {
~BoundBox() {}
bool contains_point(const double *point, const double tol = 0.0) const;
- bool contains_box(const BoundBox &b, const double tol = 0.0) const;
+ bool intersects_box(const BoundBox &b, const double tol = 0.0) const;
void compute_center(CartVect ¢er);
void update(const BoundBox &other_box);
void update(const double *coords);
@@ -75,10 +75,10 @@ namespace moab {
else return true;
}
- inline bool BoundBox::contains_box(const BoundBox &b, const double tol) const {
- if (b.bMin[0] < bMin[0]-tol || b.bMax[0] > bMax[0]+tol ||
- b.bMin[1] < bMin[1]-tol || b.bMax[1] > bMax[1]+tol ||
- b.bMin[2] < bMin[2]-tol || b.bMax[2] > bMax[2]+tol)
+ inline bool BoundBox::intersects_box(const BoundBox &b, const double tol) const {
+ if (b.bMax[0] < bMin[0]-tol || b.bMin[0] > bMax[0]+tol ||
+ b.bMax[1] < bMin[1]-tol || b.bMin[1] > bMax[1]+tol ||
+ b.bMax[2] < bMin[2]-tol || b.bMin[2] > bMax[2]+tol)
return false;
else return true;
diff --git a/src/moab/SpatialLocator.hpp b/src/moab/SpatialLocator.hpp
index 3d29c55..2690058 100644
--- a/src/moab/SpatialLocator.hpp
+++ b/src/moab/SpatialLocator.hpp
@@ -193,6 +193,12 @@ namespace moab {
ErrorCode register_src_with_intermediate_procs(ParallelComm *pc, double abs_iter_tol, TupleList &TLreg_o);
#endif
+
+ /** Create a tree
+ * Tree type depends on what's in myElems: if empty or all vertices, creates a kdtree,
+ * otherwise creates a BVHTree.
+ */
+ void create_tree();
/* MOAB instance */
Interface* mbImpl;
diff --git a/src/moab/Tree.hpp b/src/moab/Tree.hpp
index 4d2694a..0a995b4 100644
--- a/src/moab/Tree.hpp
+++ b/src/moab/Tree.hpp
@@ -236,7 +236,7 @@ namespace moab {
inline Tree::Tree(Interface* iface)
: mbImpl(iface), maxPerLeaf(6), maxDepth(30), treeDepth(-1), minWidth(1.0e-10),
- meshsetFlags(0), cleanUp(true), myRoot(0), boxTag(0)
+ meshsetFlags(0), cleanUp(true), myRoot(0), boxTag(0), myEval(0)
{}
inline Tree::~Tree()
@@ -264,6 +264,14 @@ namespace moab {
if (!boxTag && create_if_missing) {
assert(boxTagName.length() > 0);
ErrorCode rval = moab()->tag_get_handle(boxTagName.c_str(), 6, MB_TYPE_DOUBLE, boxTag, MB_TAG_CREAT | MB_TAG_SPARSE);
+ if (MB_INVALID_SIZE == rval) {
+ // delete the tag and get it again, legacy file...
+ rval = moab()->tag_delete(boxTag);
+ if (MB_SUCCESS != rval) return 0;
+ boxTag = 0;
+ return get_box_tag(true);
+ }
+
if (MB_SUCCESS != rval) return 0;
}
diff --git a/src/moab/TreeStats.hpp b/src/moab/TreeStats.hpp
index be619a5..4ae685b 100644
--- a/src/moab/TreeStats.hpp
+++ b/src/moab/TreeStats.hpp
@@ -59,6 +59,7 @@ namespace moab
unsigned int leavesVisited;
unsigned int numTraversals;
unsigned int leafObjectTests;
+ unsigned int boxElemTests;
private:
ErrorCode traverse(Interface *impl, EntityHandle node, unsigned int &depth);
@@ -68,6 +69,8 @@ namespace moab
inline ErrorCode TreeStats::compute_stats(Interface *impl, EntityHandle root_node)
{
maxDepth = 0;
+ numNodes = 0;
+ numLeaves = 0;
return traverse(impl, root_node, maxDepth);
}
@@ -111,21 +114,27 @@ namespace moab
leavesVisited = 0;
numTraversals = 0;
leafObjectTests = 0;
+ boxElemTests = 0;
}
inline void TreeStats::print() const {
std::cout << "Tree initialization time = " << initTime << " seconds" << std::endl;
+ std::cout << "Num nodes = " << numNodes << std::endl;
+ std::cout << "Num leaves = " << numLeaves << std::endl;
+ std::cout << "Max depth = " << maxDepth << std::endl << std::endl;
+
std::cout << "NodesVisited = " << nodesVisited << std::endl;
std::cout << "LeavesVisited = " << leavesVisited << std::endl;
std::cout << "Num Traversals = " << numTraversals << std::endl;
std::cout << "Leaf Object Tests = " << leafObjectTests << std::endl;
+ std::cout << "Box-Element Tests = " << boxElemTests << std::endl;
}
inline void TreeStats::output() const
{
- std::cout << initTime << " " << nodesVisited << " " << leavesVisited << " " << numTraversals << " " << leafObjectTests
- << " # initTime, nodesVisited, leavesVisited, numTraversals, leafObjectTests" << std::endl;
+ std::cout << initTime << " " << nodesVisited << " " << leavesVisited << " " << numTraversals << " " << leafObjectTests << " " << boxElemTests
+ << " # initTime, nodesVisited, leavesVisited, numTraversals, leafObjectTests, boxElemTests" << std::endl;
}
}
diff --git a/src/parallel/WriteHDF5Parallel.cpp b/src/parallel/WriteHDF5Parallel.cpp
index 20a36a3..be692ba 100644
--- a/src/parallel/WriteHDF5Parallel.cpp
+++ b/src/parallel/WriteHDF5Parallel.cpp
@@ -118,6 +118,7 @@ const char* mpi_err_str( int errorcode ) {
template <typename T> inline
void VALGRIND_MAKE_VEC_UNDEFINED( std::vector<T>& v ) {
+ if (v.size()) {}
VALGRIND_MAKE_MEM_UNDEFINED( &v[0], v.size() * sizeof(T) );
}
diff --git a/test/parallel/Makefile.am b/test/parallel/Makefile.am
index 1b9aeef..aca93e1 100644
--- a/test/parallel/Makefile.am
+++ b/test/parallel/Makefile.am
@@ -116,4 +116,6 @@ MOSTLYCLEANFILES = mhdf_ll.h5m tmp0.h5m tmp1.h5m tmp2.h5m tmp3.h5m \
initial1.vtk \
test_mpas.h5m \
dum.h5m \
- test_mpas_no_mixed_elements.h5m
+ test_mpas_no_mixed_elements.h5m \
+ test_mpas_rcbzoltan.h5m \
+ test_mpas_rcbzoltan_no_mixed_elements.h5m
diff --git a/test/parallel/par_coupler_test.cpp b/test/parallel/par_coupler_test.cpp
index 6ec3143..b0d7c06 100644
--- a/test/parallel/par_coupler_test.cpp
+++ b/test/parallel/par_coupler_test.cpp
@@ -139,8 +139,8 @@ int main(int argc, char **argv)
if (!dbgFile.empty()) {
std::stringstream dfname;
dfname << dbgFile << rank << ".txt";
- std::freopen(dfname.str().c_str(), "a", stdout);
- std::freopen(dfname.str().c_str(), "a", stderr);
+ if (!std::freopen(dfname.str().c_str(), "a", stdout)) return false;
+ if (!std::freopen(dfname.str().c_str(), "a", stderr)) return false;
}
// create MOAB instance based on that
diff --git a/test/spatial_locator_test.cpp b/test/spatial_locator_test.cpp
index 0171bf9..404e668 100644
--- a/test/spatial_locator_test.cpp
+++ b/test/spatial_locator_test.cpp
@@ -4,7 +4,9 @@
#include "moab/HomXform.hpp"
#include "moab/ScdInterface.hpp"
#include "moab/CartVect.hpp"
+#include "moab/AdaptiveKDTree.hpp"
#include "moab/BVHTree.hpp"
+#include "moab/ElemEvaluator.hpp"
#include "moab/ProgOptions.hpp"
#include "moab/CpuTimer.hpp"
@@ -69,11 +71,21 @@ void test_kd_tree()
Range elems;
rval = create_hex_mesh(mb, elems, ints, 3); CHECK_ERR(rval);
- // initialize spatial locator with the elements and the default tree type
- SpatialLocator *sl = new SpatialLocator(&mb, elems);
+ // initialize spatial locator with the elements and KDtree
+ AdaptiveKDTree kd(&mb);
+ std::ostringstream opts;
+ opts << "MAX_DEPTH=" << max_depth << ";MAX_PER_LEAF=" << leaf;
+ FileOptions fo(opts.str().c_str());
+ rval = kd.parse_options(fo);
+ SpatialLocator *sl = new SpatialLocator(&mb, elems, &kd);
test_locator(sl);
+ // test with an evaluator
+ ElemEvaluator eval(&mb);
+ kd.set_eval(&eval);
+ test_locator(sl);
+
// destroy spatial locator, and tree along with it
delete sl;
}
@@ -96,6 +108,11 @@ void test_bvh_tree()
SpatialLocator *sl = new SpatialLocator(&mb, elems, &bvh);
test_locator(sl);
+ // test with an evaluator
+ ElemEvaluator eval(&mb);
+ bvh.set_eval(&eval);
+ test_locator(sl);
+
// destroy spatial locator, and tree along with it
delete sl;
}
diff --git a/test/test_boundbox.cpp b/test/test_boundbox.cpp
index 9fe0357..b089972 100644
--- a/test/test_boundbox.cpp
+++ b/test/test_boundbox.cpp
@@ -35,7 +35,7 @@ void test_bound_box()
// test for contains point failure
bool result = box.contains_point(vec.array(), tol);
CHECK(!result);
- result = box.contains_box(other_box, tol);
+ result = box.intersects_box(other_box, tol);
CHECK(!result);
box = other_box;
@@ -44,7 +44,7 @@ void test_bound_box()
// test for success
result = box.contains_point(&vals[0], tol);
CHECK(result);
- result = box.contains_box(other_box, tol);
+ result = box.intersects_box(other_box, tol);
CHECK(result);
// check update functions
@@ -54,9 +54,9 @@ void test_bound_box()
CHECK(result);
result = box.contains_point((three*1.1).array(), tol);
CHECK(!result);
- result = box.contains_box(BoundBox(three, three), tol);
+ result = box.intersects_box(BoundBox(three, three), tol);
CHECK(result);
- result = box.contains_box(BoundBox(three, 1.1*three), tol);
+ result = box.intersects_box(BoundBox(1.1*three, 3.0*three), tol);
CHECK(!result);
CartVect negthree(-3.0);
@@ -65,9 +65,9 @@ void test_bound_box()
CHECK(result);
result = box.contains_point((negthree*1.1).array(), tol);
CHECK(!result);
- result = box.contains_box(BoundBox(negthree, negthree), tol);
+ result = box.intersects_box(BoundBox(negthree, negthree), tol);
CHECK(result);
- result = box.contains_box(BoundBox(1.1*negthree, negthree), tol);
+ result = box.intersects_box(BoundBox(3.0*negthree, 1.1*negthree), tol);
CHECK(!result);
for (int i = 0; i < 3; i++) {
@@ -78,9 +78,9 @@ void test_bound_box()
CHECK(result);
result = box.contains_point((CartVect(&vals[0])*1.1).array(), tol);
CHECK(!result);
- result = box.contains_box(BoundBox(&vals[0]), tol);
+ result = box.intersects_box(BoundBox(&vals[0]), tol);
CHECK(result);
- result = box.contains_box(BoundBox(1.1*CartVect(&vals[0]), CartVect(&vals[3])), tol);
+ result = box.intersects_box(BoundBox(1.2*CartVect(&vals[0]), 1.1*CartVect(&vals[0])), tol);
CHECK(!result);
// check length functions
diff --git a/tools/mbcoupler/Coupler.cpp b/tools/mbcoupler/Coupler.cpp
index b496441..afee8af 100644
--- a/tools/mbcoupler/Coupler.cpp
+++ b/tools/mbcoupler/Coupler.cpp
@@ -483,10 +483,13 @@ ErrorCode Coupler::test_local_box(double *xyz,
{
std::vector<EntityHandle> entities;
std::vector<CartVect> nat_coords;
- bool canWrite;
+ bool canWrite = false;
if (tl) {
canWrite = tl->get_writeEnabled();
- if(!canWrite) tl->enableWriteAccess();
+ if(!canWrite) {
+ tl->enableWriteAccess();
+ canWrite = true;
+ }
}
if (rel_eps && !abs_eps) {
@@ -833,7 +836,7 @@ ErrorCode Coupler::interp_field(EntityHandle elem,
else
{
double vfields[27]; // will work for linear hex, quadratic hex or Tets
- moab::Element::Map *elemMap;
+ moab::Element::Map *elemMap = NULL;
int num_verts = 0;
// get the EntityType
// get the tag values at the vertices
@@ -1533,7 +1536,7 @@ int Coupler::get_group_integ_vals(std::vector< std::vector<iBase_EntityHandle> >
iMesh_getEntTopo(iMeshInst, (*iter_j), &topo_type, &err);
ERRORR("Failed to get topology for entity.", err);
- moab::Element::Map *elemMap;
+ moab::Element::Map *elemMap = NULL;
int num_verts = 0;
if (topo_type == iMesh_HEXAHEDRON) {
elemMap = new moab::Element::LinearHex();
diff --git a/tools/mbcoupler/DataCoupler.cpp b/tools/mbcoupler/DataCoupler.cpp
index a5a3ec1..06a8564 100644
--- a/tools/mbcoupler/DataCoupler.cpp
+++ b/tools/mbcoupler/DataCoupler.cpp
@@ -1,24 +1,27 @@
#include "DataCoupler.hpp"
-#include "moab/ParallelComm.hpp"
#include "moab/Tree.hpp"
#include "moab/TupleList.hpp"
#include "moab/SpatialLocator.hpp"
#include "moab/ElemEvaluator.hpp"
#include "moab/Error.hpp"
+#ifdef USE_MPI
+#include "moab/ParallelComm.hpp"
+#endif
+
#include "iostream"
-#include <stdio.h>
#include <algorithm>
#include <sstream>
+#include <stdio.h>
#include "assert.h"
namespace moab {
DataCoupler::DataCoupler(Interface *impl,
- ParallelComm *pc,
Range &source_ents,
int coupler_id,
+ ParallelComm *pc,
bool init_locator,
int dim)
: mbImpl(impl), myPcomm(pc), myId(coupler_id), myDim(dim)
@@ -64,7 +67,12 @@ ErrorCode DataCoupler::locate_points(Range &targ_ents,
const double inside_tol)
{
targetEnts = targ_ents;
-
+
+#ifdef USE_MPI
+ if (myPcomm && myPcomm->size() > 1)
+ return myLocator->par_locate_points(myPcomm, targ_ents, rel_iter_tol, abs_iter_tol, inside_tol);
+#endif
+
return myLocator->locate_points(targ_ents, rel_iter_tol, abs_iter_tol, inside_tol);
}
@@ -72,6 +80,11 @@ ErrorCode DataCoupler::locate_points(double *xyz, int num_points,
const double rel_iter_tol, const double abs_iter_tol,
const double inside_tol)
{
+#ifdef USE_MPI
+ if (myPcomm && myPcomm->size() > 1)
+ return myLocator->par_locate_points(myPcomm, xyz, num_points, rel_iter_tol, abs_iter_tol, inside_tol);
+#endif
+
return myLocator->locate_points(xyz, num_points, rel_iter_tol, abs_iter_tol, inside_tol);
}
@@ -95,7 +108,7 @@ ErrorCode DataCoupler::interpolate(/*DataCoupler::Method*/ int method,
return interpolate(method, tag, interp_vals, point_indices, normalize);
}
-ErrorCode DataCoupler::interpolate(/*DataCoupler::Method*/ int *methods,
+ErrorCode DataCoupler::interpolate(/*DataCoupler::Method*/ int */* methods */,
Tag *tags,
int *points_per_method,
int num_methods,
@@ -111,7 +124,12 @@ ErrorCode DataCoupler::interpolate(/*DataCoupler::Method*/ int *methods,
for (int i = 0; i < num_methods; i++) pts_total += (points_per_method ? points_per_method[i] : targetEnts.size());
unsigned int num_indices = (point_indices ? point_indices->size() : targetEnts.size());
+ // # points and indices should be identical
+ if (pts_total != num_indices)
+ return MB_FAILURE;
+ // since each tuple contains one interpolated tag, if we're interpolating multiple tags, every tuple
+ // needs to be able to store up to max tag size
int max_tsize = -1;
for (int i = 0; i < num_methods; i++) {
int tmp_tsize;
@@ -120,75 +138,82 @@ ErrorCode DataCoupler::interpolate(/*DataCoupler::Method*/ int *methods,
max_tsize = std::max(max_tsize, tmp_tsize);
}
- // if tl was passed in non-NULL, just have those points, otherwise have targetPts plus
- // locally mapped pts
- if (pts_total != num_indices)
- return MB_FAILURE;
-
- if (myPcomm) {
- // TL to send interpolation indices to target procs
- // Tuple structure: (pto_i, ridx_i, lidx_i, meth_i, tagidx_i, interp_val[max_tsize]_d)
- TupleList tinterp;
- tinterp.initialize(5, 0, 0, max_tsize, num_indices);
- int t = 0;
- tinterp.enableWriteAccess();
- for (int i = 0; i < num_methods; i++) {
- int num_points = (points_per_method ? points_per_method[i] : targetEnts.size());
+ if (myPcomm && myPcomm->size() > 1) {
+ // build up the tuple list to distribute from my target points; assume that
+ // all procs use same method/tag input
+ TupleList TLob; // TLob structure: (pto_i, ridx_i, lidx_i, meth_tagidx_i)
+ TLob.initialize(4, 0, 0, 0, num_indices);
+ int tn = 0; // the tuple number we're currently on
+ TLob.enableWriteAccess();
+ for (int m = 0; m < num_methods; m++) {
+ int num_points = (points_per_method ? points_per_method[m] : targetEnts.size());
for (int j = 0; j < num_points; j++) {
- int idx = (point_indices ? (*point_indices)[j] : j);
+ int idx = (point_indices ? (*point_indices)[j] : j); // the index in my targetEnts for this interpolation point
// remote proc/idx from myLocator->parLocTable
- tinterp.vi_wr[5*t] = myLocator->par_loc_table().vi_rd[2*idx]; // proc
- tinterp.vi_wr[5*t+1] = myLocator->par_loc_table().vi_rd[2*idx+1]; // remote idx
+ TLob.vi_wr[4*tn] = myLocator->par_loc_table().vi_rd[2*idx]; // proc
+ TLob.vi_wr[4*tn+1] = myLocator->par_loc_table().vi_rd[2*idx+1]; // remote idx
// local entity index, tag/method index from my data
- tinterp.vi_wr[5*t+2] = idx;
- tinterp.vi_wr[5*t+3] = methods[i];
- tinterp.vi_wr[5*t+4] = i;
- tinterp.inc_n();
- t++;
+ TLob.vi_wr[4*tn+2] = idx;
+ TLob.vi_wr[4*tn+3] = m;
+ TLob.inc_n();
+ tn++;
}
}
// scatter/gather interpolation points
- myPcomm->proc_config().crystal_router()->gs_transfer(1, tinterp, 0);
-
- // perform interpolation on local source mesh; put results into
- // tinterp.vr_wr
-
- for (unsigned int i = 0; i < tinterp.get_n(); i++) {
- int lidx = tinterp.vi_rd[5*i+1];
-// /*Method*/ int method = (/*Method*/ int)tinterp.vi_rd[5*i+3];
- Tag tag = tags[tinterp.vi_rd[5*i+4]];
-
+ myPcomm->proc_config().crystal_router()->gs_transfer(1, TLob, 0);
+
+ // perform interpolation on local source mesh; put results into TLinterp
+ TupleList TLinterp; // TLinterp structure: (pto_i, ridx_i, vals[max_tsize]_d)
+ TLinterp.initialize(2, 0, 0, max_tsize, TLob.get_n());
+ TLinterp.set_n(TLob.get_n()); // set the size right away
+ TLinterp.enableWriteAccess();
+
+ for (unsigned int i = 0; i < TLob.get_n(); i++) {
+ int lidx = TLob.vi_rd[4*i+1]; // index into myLocator's local table
+ // method and tag indexed with same index
+// /*Method*/ int method = methods[TLob.vi_rd[4*i+3]];
+ Tag tag = tags[TLob.vi_rd[4*i+3]];
+ // copy proc/remote index from TLob
+ TLinterp.vi_wr[2*i] = TLob.vi_rd[4*i];
+ TLinterp.vi_wr[2*i+1] = TLob.vi_rd[4*i+2];
+
+ // set up the evaluator for the tag and entity, then interpolate, putting result in TLinterp
myLocator->elem_eval()->set_tag_handle(tag);
myLocator->elem_eval()->set_ent_handle(myLocator->loc_table().vul_rd[lidx]);
- result = myLocator->elem_eval()->eval(myLocator->loc_table().vr_rd+3*lidx, tinterp.vr_rd+i*max_tsize);
+ result = myLocator->elem_eval()->eval(myLocator->loc_table().vr_rd+3*lidx, TLinterp.vr_rd+i*max_tsize);
if (MB_SUCCESS != result) return result;
}
// scatter/gather interpolation data
- myPcomm->proc_config().crystal_router()->gs_transfer(1, tinterp, 0);
+ myPcomm->proc_config().crystal_router()->gs_transfer(1, TLinterp, 0);
// copy the interpolated field as a unit
- std::copy(tinterp.vr_rd, tinterp.vr_rd+tinterp.get_n()*max_tsize, interp_vals);
+ std::copy(TLinterp.vr_rd, TLinterp.vr_rd+TLinterp.get_n()*max_tsize, interp_vals);
}
else {
+ // if called serially, interpolate directly from local locations/entities,
+ // into either interp_vals or by setting data directly on tags on those entities
std::vector<double> tmp_vals;
std::vector<EntityHandle> tmp_ents;
double *tmp_dbl = interp_vals;
for (int i = 0; i < num_methods; i++) {
int num_points = (points_per_method ? points_per_method[i] : targetEnts.size());
- // interpolated data is tsize long, which is either max size (if data passed back to caller in tinterp)
+ // interpolated data is tsize long, which is either max size (if data passed back to caller in interp_vals)
// or tag size (if data will be set on entities, in which case it shouldn't have padding)
+ // set sizes here, inside loop over methods, to reduce memory usage
int tsize = max_tsize, tsize_bytes = 0;
if (!interp_vals) {
tmp_vals.resize(num_points*max_tsize);
tmp_dbl = &tmp_vals[0];
tmp_ents.resize(num_points);
result = mbImpl->tag_get_length(tags[i], tsize);
+ if (MB_SUCCESS != result) return result;
result = mbImpl->tag_get_bytes(tags[i], tsize_bytes);
+ if (MB_SUCCESS != result) return result;
}
for (int j = 0; j < num_points; j++) {
@@ -206,7 +231,7 @@ ErrorCode DataCoupler::interpolate(/*DataCoupler::Method*/ int *methods,
result = myLocator->elem_eval()->eval(myLocator->loc_table().vr_rd+3*lidx, tmp_dbl);
tmp_dbl += tsize;
if (MB_SUCCESS != result) return result;
- } // for j
+ } // for j over points
if (!interp_vals) {
// set tags on tmp_ents; data is already w/o padding, due to tsize setting above
@@ -214,7 +239,7 @@ ErrorCode DataCoupler::interpolate(/*DataCoupler::Method*/ int *methods,
if (MB_SUCCESS != result) return result;
}
- } // for i
+ } // for i over methods
} // if myPcomm
// done
diff --git a/tools/mbcoupler/DataCoupler.hpp b/tools/mbcoupler/DataCoupler.hpp
index bfe2ba5..a9d6f5e 100644
--- a/tools/mbcoupler/DataCoupler.hpp
+++ b/tools/mbcoupler/DataCoupler.hpp
@@ -39,21 +39,23 @@ class DataCoupler
{
public:
+ enum Method {CONSTANT, LINEAR_FE, QUADRATIC_FE, SPECTRAL} ;
+
enum IntegType {VOLUME};
/* constructor
* Constructor, which also optionally initializes the coupler
+ * \param source_ents Elements in the source mesh
+ * \param coupler_id Id of this coupler, should be the same over all procs
* \param pc ParallelComm object to be used with this coupler, representing the union
* of processors containing source and target meshes
- * \param source_elems Elements in the source mesh
- * \param coupler_id Id of this coupler, should be the same over all procs
* \param init_locator If true, initializes a spatial locator inside the constructor
* \param dim Dimension of entities to be coupled; if -1, get from source_elems
*/
DataCoupler(Interface *impl,
- ParallelComm *pc,
Range &source_ents,
int coupler_id,
+ ParallelComm *pc = NULL,
bool init_locator = true,
int dim = -1);
This diff is so big that we needed to truncate the remainder.
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0