Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • mosaic/software/parallel-computing/openfpm/openfpm_pdata
  • argupta/openfpm_pdata
2 results
Show changes
Commits on Source (3890)
Showing
with 5779 additions and 8723 deletions
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
*.xml
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# CLion IDE-related
.idea/
cmake-build-debug/
cmake-build-release/
# Script-generated build folder
build/
###### Other
**/vtk/Makefile
**/src/Makefile
./Makefile
Makefile.in
Makefile
**/.deps
**/src/config
example.mk
src/pdata
.cproject
.project
.settings
**/*.vtk
!**/test_data/*.vtk
*.csv
*.h5
*.json
*.html
Makefile
/build
*CMake*
*cmake*
**/*cmake*
**/*CMake*
**/.gitignore
.gitignore
/doxygen/
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
project(openfpm_pdata LANGUAGES C CXX)
if (POLICY CMP0074)
cmake_policy(SET CMP0074 NEW)
endif()
set(openfpm_VERSION 5.0.0)
if (METIS_FOUND)
set(DEFINE_HAVE_METIS "#define HAVE_METIS 1")
else()
message( FATAL_ERROR "Metis is required in order to install OpenFPM" )
endif()
if (PARMETIS_FOUND)
set(DEFINE_HAVE_PARMETIS "#define HAVE_PARMETIS 1")
else()
message( FATAL_ERROR "ParMetis is required in order to install OpenFPM")
endif()
add_subdirectory (src)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/src/cmake/openfpmConfig-configure.cmake CMAKE_OPENFPM_CONFIG_VARS)
set(CMAKE_OPENFPM_CONFIG_VARS "${CMAKE_OPENFPM_CONFIG_VARS}\nmessage(STATUS \"Found OpenFPM version ${openfpm_VERSION} (\$\{CMAKE_CURRENT_LIST_FILE\})\")")
set(CMAKE_OPENFPM_CONFIG_VARS "${CMAKE_OPENFPM_CONFIG_VARS}\nset(OPENFPM_CUDA_ON_BACKEND \"${CUDA_ON_BACKEND}\")")
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/src/cmake/openfpmConfig-Vars.cmake "${CMAKE_OPENFPM_CONFIG_VARS}")
get_directory_property(hasParent PARENT_DIRECTORY)
if(hasParent)
set(DEFINE_HAVE_METIS ${DEFINE_HAVE_METIS} CACHE INTERNAL "")
set(DEFINE_HAVE_PARMETIS ${DEFINE_HAVE_PARMETIS} CACHE INTERNAL "")
endif()
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.8.6 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<detaileddescription title=""/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>
<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<classes visible="yes" title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<classes visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>
<!-- Layout definition for a group page -->
<group>
<briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
</directory>
</doxygenlayout>
SUBDIRS = src
bin_PROGRAMS =
\ No newline at end of file
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_CANONICAL_SYSTEM
AC_CONFIG_SRCDIR([src/main.cpp])
AM_INIT_AUTOMAKE
AC_CONFIG_HEADER([src/config/config.h])
m4_ifdef([ACX_PTHREAD],,[m4_include([m4/acx_pthread.m4])])
m4_ifdef([AX_BOOST],,[m4_include([m4/ax_boost.m4])])
m4_ifdef([ACX_MPI],,[m4_include([m4/acx_mpi.m4])])
m4_ifdef([AX_OPENMP],,[m4_include([m4/ax_openmp.m4])])
m4_ifdef([AX_CUDA],,[m4_include([m4/ax_cuda.m4])])
CXXFLAGS+=" --std=c++11 -march=native -mtune=native "
NVCCFLAGS=" "
INCLUDES_PATH=" "
# Checks for programs.
AC_PROG_CXX
# Checks g++ flags
AC_CANONICAL_HOST
# Check target architetture
#AX_GCC_ARCHFLAG([], [CXXFLAGS="$CXXFLAGS $ax_cv_gcc_archflag"], [])
###### Check for debug compilation
AC_MSG_CHECKING(whether to build with debug information)
debuger=no
AC_ARG_ENABLE(debug,
AC_HELP_STRING(
[--enable-debug],
[enable debug data generation (def=no)]
),
debuger="$enableval"
)
AC_MSG_RESULT($debuger)
if test x"$debuger" = x"yes"; then
AC_DEFINE([DEBUG_MODE],[],[Debug])
AC_DEFINE([DEBUG],[],[Debug])
CXXFLAGS="$CXXFLAGS -g3 -Wall -O0 "
NVCCFLAGS+="$NVCCFLAGS -g -O0 "
else
CXXFLAGS="$CXXFLAGS -Wall -O3 -g3 -funroll-loops "
NVCCFLAGS+="$NVCCFLAGS -O3 "
fi
## Check for memcheck
AC_MSG_CHECKING(whether to build with memcheck capabilities)
AC_ARG_ENABLE(memcheck,
AC_HELP_STRING(
[--enable-memcheck],
[enable memory check (def=no)]
),
memcheck="$enableval"
)
AC_MSG_RESULT($memcheck)
if test x"$memcheck" = x"yes"; then
AC_DEFINE([MEMLEAK_CHECK],[],[Memory check, corruption and leak])
fi
#########
####### include OpenFPM_devices include path
INCLUDES_PATH+="-I. -Isrc/config/ -I../../metis_install/include -I../../OpenFPM_IO/src -I../../OpenFPM_data/src -I../../OpenFPM_devices/src -I../../OpenFPM_vcluster/src/"
##### CHECK FOR BOOST ##############
AX_BOOST([1.52],[],[])
####### Checking for GPU support
AX_CUDA
## detect for NVCC
if test x"$NVCC_EXIST" = x"yes"; then
AC_MSG_CHECKING(whether to build with GPU support)
gpu_support=yes
AC_ARG_ENABLE(gpu,
AC_HELP_STRING(
[--enable-gpu],
[enable gpu support]
),
gpu_support="$enableval"
)
AC_MSG_RESULT($gpu_support)
if test x"$gpu_support" = x"yes"; then
AC_DEFINE([GPU],[],[GPU support])
fi
else
gpu_support=no
fi
# Set this conditional if cuda is wanted
AM_CONDITIONAL(BUILDCUDA, test ! x$NVCC = x"no")
###########################
# Define that there is MPI
AC_DEFINE([HAVE_MPI],[],[MPI Enabled])
AC_SUBST(NVCCFLAGS)
AC_SUBST(INCLUDES_PATH)
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT
echo ""
echo "***********************************"
echo "* *"
if [ test x"$profiler" = x"yes" ]; then
echo "* profiler: yes *"
else
echo "* profiler: no *"
fi
if [ test x"$memcheck" = x"yes" ]; then
echo "* memcheck: yes *"
else
echo "* memcheck: no *"
fi
if [ test x"$debuger" = x"yes" ]; then
echo "* debug: yes *"
else
echo "* debug: no *"
fi
if [ test x"$gpu_support" = x"no" ]; then
echo "* gpu: no *"
else
echo "* gpu: yes *"
fi
echo "* *"
echo "***********************************"
This diff is collapsed.
pdata-HeapMemory.o: ../../OpenFPM_devices/src/memory/HeapMemory.cpp \
/usr/include/stdc-predef.h \
../../OpenFPM_devices/src/memory/HeapMemory.hpp ../src/config/config.h \
../../OpenFPM_devices/src/memory/memory.hpp \
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stddef.h \
/usr/include/c++/4.9.2/cstddef \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++config.h \
/usr/include/bits/wordsize.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/os_defines.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cpu_defines.h \
/usr/include/c++/4.9.2/cstdint \
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/c++/4.9.2/iostream /usr/include/c++/4.9.2/ostream \
/usr/include/c++/4.9.2/ios /usr/include/c++/4.9.2/iosfwd \
/usr/include/c++/4.9.2/bits/stringfwd.h \
/usr/include/c++/4.9.2/bits/memoryfwd.h \
/usr/include/c++/4.9.2/bits/postypes.h /usr/include/c++/4.9.2/cwchar \
/usr/include/wchar.h /usr/include/stdio.h \
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stdarg.h \
/usr/include/xlocale.h /usr/include/c++/4.9.2/exception \
/usr/include/c++/4.9.2/bits/atomic_lockfree_defines.h \
/usr/include/c++/4.9.2/bits/exception_ptr.h \
/usr/include/c++/4.9.2/bits/exception_defines.h \
/usr/include/c++/4.9.2/bits/nested_exception.h \
/usr/include/c++/4.9.2/bits/char_traits.h \
/usr/include/c++/4.9.2/bits/stl_algobase.h \
/usr/include/c++/4.9.2/bits/functexcept.h \
/usr/include/c++/4.9.2/bits/cpp_type_traits.h \
/usr/include/c++/4.9.2/ext/type_traits.h \
/usr/include/c++/4.9.2/ext/numeric_traits.h \
/usr/include/c++/4.9.2/bits/stl_pair.h \
/usr/include/c++/4.9.2/bits/move.h \
/usr/include/c++/4.9.2/bits/concept_check.h \
/usr/include/c++/4.9.2/type_traits \
/usr/include/c++/4.9.2/bits/stl_iterator_base_types.h \
/usr/include/c++/4.9.2/bits/stl_iterator_base_funcs.h \
/usr/include/c++/4.9.2/debug/debug.h \
/usr/include/c++/4.9.2/bits/stl_iterator.h \
/usr/include/c++/4.9.2/bits/ptr_traits.h \
/usr/include/c++/4.9.2/bits/predefined_ops.h \
/usr/include/c++/4.9.2/bits/localefwd.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++locale.h \
/usr/include/c++/4.9.2/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/4.9.2/cctype \
/usr/include/ctype.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/byteswap.h \
/usr/include/bits/byteswap-16.h /usr/include/c++/4.9.2/bits/ios_base.h \
/usr/include/c++/4.9.2/ext/atomicity.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/gthr.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
/usr/include/bits/sched.h /usr/include/bits/time.h \
/usr/include/bits/timex.h /usr/include/bits/pthreadtypes.h \
/usr/include/bits/setjmp.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/atomic_word.h \
/usr/include/c++/4.9.2/bits/locale_classes.h \
/usr/include/c++/4.9.2/string /usr/include/c++/4.9.2/bits/allocator.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++allocator.h \
/usr/include/c++/4.9.2/ext/new_allocator.h /usr/include/c++/4.9.2/new \
/usr/include/c++/4.9.2/bits/ostream_insert.h \
/usr/include/c++/4.9.2/bits/cxxabi_forced.h \
/usr/include/c++/4.9.2/bits/stl_function.h \
/usr/include/c++/4.9.2/backward/binders.h \
/usr/include/c++/4.9.2/bits/range_access.h \
/usr/include/c++/4.9.2/bits/basic_string.h \
/usr/include/c++/4.9.2/initializer_list \
/usr/include/c++/4.9.2/ext/string_conversions.h \
/usr/include/c++/4.9.2/cstdlib /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/sys/types.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/sigset.h \
/usr/include/sys/sysmacros.h /usr/include/alloca.h \
/usr/include/bits/stdlib-float.h /usr/include/c++/4.9.2/cstdio \
/usr/include/libio.h /usr/include/_G_config.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/include/c++/4.9.2/cerrno /usr/include/errno.h \
/usr/include/bits/errno.h /usr/include/linux/errno.h \
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/include/c++/4.9.2/bits/functional_hash.h \
/usr/include/c++/4.9.2/bits/hash_bytes.h \
/usr/include/c++/4.9.2/bits/basic_string.tcc \
/usr/include/c++/4.9.2/bits/locale_classes.tcc \
/usr/include/c++/4.9.2/streambuf \
/usr/include/c++/4.9.2/bits/streambuf.tcc \
/usr/include/c++/4.9.2/bits/basic_ios.h \
/usr/include/c++/4.9.2/bits/locale_facets.h \
/usr/include/c++/4.9.2/cwctype /usr/include/wctype.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/ctype_base.h \
/usr/include/c++/4.9.2/bits/streambuf_iterator.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/ctype_inline.h \
/usr/include/c++/4.9.2/bits/locale_facets.tcc \
/usr/include/c++/4.9.2/bits/basic_ios.tcc \
/usr/include/c++/4.9.2/bits/ostream.tcc /usr/include/c++/4.9.2/istream \
/usr/include/c++/4.9.2/bits/istream.tcc /usr/include/c++/4.9.2/cstring \
/usr/include/string.h
/usr/include/stdc-predef.h:
../../OpenFPM_devices/src/memory/HeapMemory.hpp:
../src/config/config.h:
../../OpenFPM_devices/src/memory/memory.hpp:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stddef.h:
/usr/include/c++/4.9.2/cstddef:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++config.h:
/usr/include/bits/wordsize.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/os_defines.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cpu_defines.h:
/usr/include/c++/4.9.2/cstdint:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stdint.h:
/usr/include/stdint.h:
/usr/include/bits/wchar.h:
/usr/include/c++/4.9.2/iostream:
/usr/include/c++/4.9.2/ostream:
/usr/include/c++/4.9.2/ios:
/usr/include/c++/4.9.2/iosfwd:
/usr/include/c++/4.9.2/bits/stringfwd.h:
/usr/include/c++/4.9.2/bits/memoryfwd.h:
/usr/include/c++/4.9.2/bits/postypes.h:
/usr/include/c++/4.9.2/cwchar:
/usr/include/wchar.h:
/usr/include/stdio.h:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stdarg.h:
/usr/include/xlocale.h:
/usr/include/c++/4.9.2/exception:
/usr/include/c++/4.9.2/bits/atomic_lockfree_defines.h:
/usr/include/c++/4.9.2/bits/exception_ptr.h:
/usr/include/c++/4.9.2/bits/exception_defines.h:
/usr/include/c++/4.9.2/bits/nested_exception.h:
/usr/include/c++/4.9.2/bits/char_traits.h:
/usr/include/c++/4.9.2/bits/stl_algobase.h:
/usr/include/c++/4.9.2/bits/functexcept.h:
/usr/include/c++/4.9.2/bits/cpp_type_traits.h:
/usr/include/c++/4.9.2/ext/type_traits.h:
/usr/include/c++/4.9.2/ext/numeric_traits.h:
/usr/include/c++/4.9.2/bits/stl_pair.h:
/usr/include/c++/4.9.2/bits/move.h:
/usr/include/c++/4.9.2/bits/concept_check.h:
/usr/include/c++/4.9.2/type_traits:
/usr/include/c++/4.9.2/bits/stl_iterator_base_types.h:
/usr/include/c++/4.9.2/bits/stl_iterator_base_funcs.h:
/usr/include/c++/4.9.2/debug/debug.h:
/usr/include/c++/4.9.2/bits/stl_iterator.h:
/usr/include/c++/4.9.2/bits/ptr_traits.h:
/usr/include/c++/4.9.2/bits/predefined_ops.h:
/usr/include/c++/4.9.2/bits/localefwd.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++locale.h:
/usr/include/c++/4.9.2/clocale:
/usr/include/locale.h:
/usr/include/bits/locale.h:
/usr/include/c++/4.9.2/cctype:
/usr/include/ctype.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/byteswap-16.h:
/usr/include/c++/4.9.2/bits/ios_base.h:
/usr/include/c++/4.9.2/ext/atomicity.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/gthr.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/gthr-default.h:
/usr/include/pthread.h:
/usr/include/sched.h:
/usr/include/time.h:
/usr/include/bits/sched.h:
/usr/include/bits/time.h:
/usr/include/bits/timex.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/bits/setjmp.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/atomic_word.h:
/usr/include/c++/4.9.2/bits/locale_classes.h:
/usr/include/c++/4.9.2/string:
/usr/include/c++/4.9.2/bits/allocator.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++allocator.h:
/usr/include/c++/4.9.2/ext/new_allocator.h:
/usr/include/c++/4.9.2/new:
/usr/include/c++/4.9.2/bits/ostream_insert.h:
/usr/include/c++/4.9.2/bits/cxxabi_forced.h:
/usr/include/c++/4.9.2/bits/stl_function.h:
/usr/include/c++/4.9.2/backward/binders.h:
/usr/include/c++/4.9.2/bits/range_access.h:
/usr/include/c++/4.9.2/bits/basic_string.h:
/usr/include/c++/4.9.2/initializer_list:
/usr/include/c++/4.9.2/ext/string_conversions.h:
/usr/include/c++/4.9.2/cstdlib:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/sys/types.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/sys/sysmacros.h:
/usr/include/alloca.h:
/usr/include/bits/stdlib-float.h:
/usr/include/c++/4.9.2/cstdio:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/include/c++/4.9.2/cerrno:
/usr/include/errno.h:
/usr/include/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/c++/4.9.2/bits/functional_hash.h:
/usr/include/c++/4.9.2/bits/hash_bytes.h:
/usr/include/c++/4.9.2/bits/basic_string.tcc:
/usr/include/c++/4.9.2/bits/locale_classes.tcc:
/usr/include/c++/4.9.2/streambuf:
/usr/include/c++/4.9.2/bits/streambuf.tcc:
/usr/include/c++/4.9.2/bits/basic_ios.h:
/usr/include/c++/4.9.2/bits/locale_facets.h:
/usr/include/c++/4.9.2/cwctype:
/usr/include/wctype.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/ctype_base.h:
/usr/include/c++/4.9.2/bits/streambuf_iterator.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/ctype_inline.h:
/usr/include/c++/4.9.2/bits/locale_facets.tcc:
/usr/include/c++/4.9.2/bits/basic_ios.tcc:
/usr/include/c++/4.9.2/bits/ostream.tcc:
/usr/include/c++/4.9.2/istream:
/usr/include/c++/4.9.2/bits/istream.tcc:
/usr/include/c++/4.9.2/cstring:
/usr/include/string.h:
pdata-Memleak_check.o: ../../OpenFPM_data/src/Memleak_check.cpp \
/usr/include/stdc-predef.h ../src/config/config.h \
../../OpenFPM_data/src/Memleak_check.hpp /usr/include/c++/4.9.2/iostream \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++config.h \
/usr/include/bits/wordsize.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/os_defines.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cpu_defines.h \
/usr/include/c++/4.9.2/ostream /usr/include/c++/4.9.2/ios \
/usr/include/c++/4.9.2/iosfwd /usr/include/c++/4.9.2/bits/stringfwd.h \
/usr/include/c++/4.9.2/bits/memoryfwd.h \
/usr/include/c++/4.9.2/bits/postypes.h /usr/include/c++/4.9.2/cwchar \
/usr/include/wchar.h /usr/include/stdio.h \
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stdarg.h \
/usr/include/bits/wchar.h \
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stddef.h \
/usr/include/xlocale.h /usr/include/c++/4.9.2/exception \
/usr/include/c++/4.9.2/bits/atomic_lockfree_defines.h \
/usr/include/c++/4.9.2/bits/exception_ptr.h \
/usr/include/c++/4.9.2/bits/exception_defines.h \
/usr/include/c++/4.9.2/bits/nested_exception.h \
/usr/include/c++/4.9.2/bits/char_traits.h \
/usr/include/c++/4.9.2/bits/stl_algobase.h \
/usr/include/c++/4.9.2/bits/functexcept.h \
/usr/include/c++/4.9.2/bits/cpp_type_traits.h \
/usr/include/c++/4.9.2/ext/type_traits.h \
/usr/include/c++/4.9.2/ext/numeric_traits.h \
/usr/include/c++/4.9.2/bits/stl_pair.h \
/usr/include/c++/4.9.2/bits/move.h \
/usr/include/c++/4.9.2/bits/concept_check.h \
/usr/include/c++/4.9.2/type_traits \
/usr/include/c++/4.9.2/bits/stl_iterator_base_types.h \
/usr/include/c++/4.9.2/bits/stl_iterator_base_funcs.h \
/usr/include/c++/4.9.2/debug/debug.h \
/usr/include/c++/4.9.2/bits/stl_iterator.h \
/usr/include/c++/4.9.2/bits/ptr_traits.h \
/usr/include/c++/4.9.2/bits/predefined_ops.h \
/usr/include/c++/4.9.2/cstdint \
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stdint.h \
/usr/include/stdint.h /usr/include/c++/4.9.2/bits/localefwd.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++locale.h \
/usr/include/c++/4.9.2/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/4.9.2/cctype \
/usr/include/ctype.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/byteswap.h \
/usr/include/bits/byteswap-16.h /usr/include/c++/4.9.2/bits/ios_base.h \
/usr/include/c++/4.9.2/ext/atomicity.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/gthr.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
/usr/include/bits/sched.h /usr/include/bits/time.h \
/usr/include/bits/timex.h /usr/include/bits/pthreadtypes.h \
/usr/include/bits/setjmp.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/atomic_word.h \
/usr/include/c++/4.9.2/bits/locale_classes.h \
/usr/include/c++/4.9.2/string /usr/include/c++/4.9.2/bits/allocator.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++allocator.h \
/usr/include/c++/4.9.2/ext/new_allocator.h /usr/include/c++/4.9.2/new \
/usr/include/c++/4.9.2/bits/ostream_insert.h \
/usr/include/c++/4.9.2/bits/cxxabi_forced.h \
/usr/include/c++/4.9.2/bits/stl_function.h \
/usr/include/c++/4.9.2/backward/binders.h \
/usr/include/c++/4.9.2/bits/range_access.h \
/usr/include/c++/4.9.2/bits/basic_string.h \
/usr/include/c++/4.9.2/initializer_list \
/usr/include/c++/4.9.2/ext/string_conversions.h \
/usr/include/c++/4.9.2/cstdlib /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/sys/types.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/sigset.h \
/usr/include/sys/sysmacros.h /usr/include/alloca.h \
/usr/include/bits/stdlib-float.h /usr/include/c++/4.9.2/cstdio \
/usr/include/libio.h /usr/include/_G_config.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/include/c++/4.9.2/cerrno /usr/include/errno.h \
/usr/include/bits/errno.h /usr/include/linux/errno.h \
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/include/c++/4.9.2/bits/functional_hash.h \
/usr/include/c++/4.9.2/bits/hash_bytes.h \
/usr/include/c++/4.9.2/bits/basic_string.tcc \
/usr/include/c++/4.9.2/bits/locale_classes.tcc \
/usr/include/c++/4.9.2/streambuf \
/usr/include/c++/4.9.2/bits/streambuf.tcc \
/usr/include/c++/4.9.2/bits/basic_ios.h \
/usr/include/c++/4.9.2/bits/locale_facets.h \
/usr/include/c++/4.9.2/cwctype /usr/include/wctype.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/ctype_base.h \
/usr/include/c++/4.9.2/bits/streambuf_iterator.h \
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/ctype_inline.h \
/usr/include/c++/4.9.2/bits/locale_facets.tcc \
/usr/include/c++/4.9.2/bits/basic_ios.tcc \
/usr/include/c++/4.9.2/bits/ostream.tcc /usr/include/c++/4.9.2/istream \
/usr/include/c++/4.9.2/bits/istream.tcc /usr/include/c++/4.9.2/map \
/usr/include/c++/4.9.2/bits/stl_tree.h \
/usr/include/c++/4.9.2/ext/alloc_traits.h \
/usr/include/c++/4.9.2/bits/alloc_traits.h \
/usr/include/c++/4.9.2/ext/aligned_buffer.h \
/usr/include/c++/4.9.2/bits/stl_map.h /usr/include/c++/4.9.2/tuple \
/usr/include/c++/4.9.2/utility /usr/include/c++/4.9.2/bits/stl_relops.h \
/usr/include/c++/4.9.2/array /usr/include/c++/4.9.2/stdexcept \
/usr/include/c++/4.9.2/bits/uses_allocator.h \
/usr/include/c++/4.9.2/bits/stl_multimap.h
/usr/include/stdc-predef.h:
../src/config/config.h:
../../OpenFPM_data/src/Memleak_check.hpp:
/usr/include/c++/4.9.2/iostream:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++config.h:
/usr/include/bits/wordsize.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/os_defines.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cpu_defines.h:
/usr/include/c++/4.9.2/ostream:
/usr/include/c++/4.9.2/ios:
/usr/include/c++/4.9.2/iosfwd:
/usr/include/c++/4.9.2/bits/stringfwd.h:
/usr/include/c++/4.9.2/bits/memoryfwd.h:
/usr/include/c++/4.9.2/bits/postypes.h:
/usr/include/c++/4.9.2/cwchar:
/usr/include/wchar.h:
/usr/include/stdio.h:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stdarg.h:
/usr/include/bits/wchar.h:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stddef.h:
/usr/include/xlocale.h:
/usr/include/c++/4.9.2/exception:
/usr/include/c++/4.9.2/bits/atomic_lockfree_defines.h:
/usr/include/c++/4.9.2/bits/exception_ptr.h:
/usr/include/c++/4.9.2/bits/exception_defines.h:
/usr/include/c++/4.9.2/bits/nested_exception.h:
/usr/include/c++/4.9.2/bits/char_traits.h:
/usr/include/c++/4.9.2/bits/stl_algobase.h:
/usr/include/c++/4.9.2/bits/functexcept.h:
/usr/include/c++/4.9.2/bits/cpp_type_traits.h:
/usr/include/c++/4.9.2/ext/type_traits.h:
/usr/include/c++/4.9.2/ext/numeric_traits.h:
/usr/include/c++/4.9.2/bits/stl_pair.h:
/usr/include/c++/4.9.2/bits/move.h:
/usr/include/c++/4.9.2/bits/concept_check.h:
/usr/include/c++/4.9.2/type_traits:
/usr/include/c++/4.9.2/bits/stl_iterator_base_types.h:
/usr/include/c++/4.9.2/bits/stl_iterator_base_funcs.h:
/usr/include/c++/4.9.2/debug/debug.h:
/usr/include/c++/4.9.2/bits/stl_iterator.h:
/usr/include/c++/4.9.2/bits/ptr_traits.h:
/usr/include/c++/4.9.2/bits/predefined_ops.h:
/usr/include/c++/4.9.2/cstdint:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/stdint.h:
/usr/include/stdint.h:
/usr/include/c++/4.9.2/bits/localefwd.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++locale.h:
/usr/include/c++/4.9.2/clocale:
/usr/include/locale.h:
/usr/include/bits/locale.h:
/usr/include/c++/4.9.2/cctype:
/usr/include/ctype.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/byteswap-16.h:
/usr/include/c++/4.9.2/bits/ios_base.h:
/usr/include/c++/4.9.2/ext/atomicity.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/gthr.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/gthr-default.h:
/usr/include/pthread.h:
/usr/include/sched.h:
/usr/include/time.h:
/usr/include/bits/sched.h:
/usr/include/bits/time.h:
/usr/include/bits/timex.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/bits/setjmp.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/atomic_word.h:
/usr/include/c++/4.9.2/bits/locale_classes.h:
/usr/include/c++/4.9.2/string:
/usr/include/c++/4.9.2/bits/allocator.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/c++allocator.h:
/usr/include/c++/4.9.2/ext/new_allocator.h:
/usr/include/c++/4.9.2/new:
/usr/include/c++/4.9.2/bits/ostream_insert.h:
/usr/include/c++/4.9.2/bits/cxxabi_forced.h:
/usr/include/c++/4.9.2/bits/stl_function.h:
/usr/include/c++/4.9.2/backward/binders.h:
/usr/include/c++/4.9.2/bits/range_access.h:
/usr/include/c++/4.9.2/bits/basic_string.h:
/usr/include/c++/4.9.2/initializer_list:
/usr/include/c++/4.9.2/ext/string_conversions.h:
/usr/include/c++/4.9.2/cstdlib:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/sys/types.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/sys/sysmacros.h:
/usr/include/alloca.h:
/usr/include/bits/stdlib-float.h:
/usr/include/c++/4.9.2/cstdio:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/include/c++/4.9.2/cerrno:
/usr/include/errno.h:
/usr/include/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/c++/4.9.2/bits/functional_hash.h:
/usr/include/c++/4.9.2/bits/hash_bytes.h:
/usr/include/c++/4.9.2/bits/basic_string.tcc:
/usr/include/c++/4.9.2/bits/locale_classes.tcc:
/usr/include/c++/4.9.2/streambuf:
/usr/include/c++/4.9.2/bits/streambuf.tcc:
/usr/include/c++/4.9.2/bits/basic_ios.h:
/usr/include/c++/4.9.2/bits/locale_facets.h:
/usr/include/c++/4.9.2/cwctype:
/usr/include/wctype.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/ctype_base.h:
/usr/include/c++/4.9.2/bits/streambuf_iterator.h:
/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/ctype_inline.h:
/usr/include/c++/4.9.2/bits/locale_facets.tcc:
/usr/include/c++/4.9.2/bits/basic_ios.tcc:
/usr/include/c++/4.9.2/bits/ostream.tcc:
/usr/include/c++/4.9.2/istream:
/usr/include/c++/4.9.2/bits/istream.tcc:
/usr/include/c++/4.9.2/map:
/usr/include/c++/4.9.2/bits/stl_tree.h:
/usr/include/c++/4.9.2/ext/alloc_traits.h:
/usr/include/c++/4.9.2/bits/alloc_traits.h:
/usr/include/c++/4.9.2/ext/aligned_buffer.h:
/usr/include/c++/4.9.2/bits/stl_map.h:
/usr/include/c++/4.9.2/tuple:
/usr/include/c++/4.9.2/utility:
/usr/include/c++/4.9.2/bits/stl_relops.h:
/usr/include/c++/4.9.2/array:
/usr/include/c++/4.9.2/stdexcept:
/usr/include/c++/4.9.2/bits/uses_allocator.h:
/usr/include/c++/4.9.2/bits/stl_multimap.h:
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*
* grid_dist_amr_key.hpp
*
* Created on: Sep 23, 2017
* Author: i-bird
*/
#ifndef SRC_AMR_GRID_DIST_AMR_KEY_HPP_
#define SRC_AMR_GRID_DIST_AMR_KEY_HPP_
/*! \brief Amr grid distributed key
*
* \tparam dim dimensionality
*
*/
template<unsigned int dim>
class grid_dist_amr_key
{
//! actual level
size_t lvl;
//! actual position in the distributed grid
grid_dist_key_dx<dim> key;
public:
/*! \constructor
*
* \param lvl level
* \param key distributed grid key
* \param offsets to move between levels
*
*/
inline grid_dist_amr_key(size_t lvl,
grid_dist_key_dx<dim> key)
:lvl(lvl),key(key)
{}
/*! \brief Return the grid key
*
* \return the distributed key
*
*/
inline const grid_dist_key_dx<dim> & getKey() const
{
return key;
}
/*! \brief Return the grid key (as reference)
*
* \return the distributed key
*
*/
inline grid_dist_key_dx<dim> & getKeyRef()
{
return key;
}
/*! \brief Return the level
*
* \return the level
*
*/
inline size_t getLvl() const
{
return lvl;
}
/*! \brief Return the level
*
* \param lvl level to set
*
*/
inline void setLvl(size_t lvl)
{
this->lvl = lvl;
}
/*! \brief Create a new key moving the old one
*
* \param s dimension id
* \param s number of steps
*
* \return new key
*
*/
inline grid_dist_amr_key<dim> moveSpace(size_t d,size_t s)
{
return grid_dist_amr_key<dim>(lvl,key.move(d,s));
}
};
#endif /* SRC_AMR_GRID_DIST_AMR_KEY_HPP_ */
/*
* grid_amr_dist_key_iterator.hpp
*
* Created on: Sep 22, 2017
* Author: i-bird
*/
#ifndef SRC_AMR_GRID_DIST_AMR_KEY_ITERATOR_HPP_
#define SRC_AMR_GRID_DIST_AMR_KEY_ITERATOR_HPP_
#include "Vector/map_vector.hpp"
#include "Grid/Iterators/grid_dist_id_iterator.hpp"
#include "grid_dist_amr_key.hpp"
template<unsigned int dim, typename device_grid, typename device_sub_it, typename it_type = grid_dist_iterator<dim,device_grid,device_sub_it,FREE>>
class grid_dist_amr_key_iterator
{
//! Array of grid iterators
openfpm::vector<it_type> & git;
//! actual it type
struct actual_it
{
it_type & it;
};
//! Actual distributed grid iterator
it_type * a_it;
//! iterator pointer
size_t g_c;
/*! \brief from g_c increment g_c until you find a valid grid
*
*/
void selectValidGrid()
{
// When the grid has size 0 potentially all the other informations are garbage
while (g_c < git.size() && git.get(g_c).isNext() == false ) g_c++;
// get the next grid iterator
if (g_c < git.size())
{
a_it = &git.get(g_c);
}
}
public:
/*! \brief Constructor
*
* \param git vector of iterator
*
*/
grid_dist_amr_key_iterator(openfpm::vector<it_type> & git)
:git(git),g_c(0)
{
a_it = &git.get(0);
selectValidGrid();
}
//! Destructor
~grid_dist_amr_key_iterator()
{
}
/*! \brief Get the next element
*
* \return the next grid_key
*
*/
inline grid_dist_amr_key_iterator<dim,device_grid,device_sub_it,it_type> & operator++()
{
++(*a_it);
// check if a_it is at the end
if (a_it->isNext() == true)
{return *this;}
else
{
// switch to the new iterator
g_c++;
selectValidGrid();
}
return *this;
}
/*! \brief Is there a next point
*
* \return true is there is a next point
*
*/
inline bool isNext()
{
return g_c < git.size();
}
/*! \brief Return the actual AMR grid iterator point
*
*
*/
inline grid_dist_amr_key<dim> get()
{
return grid_dist_amr_key<dim>(g_c,a_it->get());
}
/*! \brief Return the actual global grid position in the AMR struct in global
* coordinates
*
*
*/
inline grid_key_dx<dim> getGKey()
{
return git.get(g_c).getGKey(a_it->get());
}
/*! \brief Return the level at which we are
*
*
*/
inline size_t getLvl() const
{
return g_c;
}
};
#endif /* SRC_AMR_GRID_DIST_AMR_KEY_ITERATOR_HPP_ */
This diff is collapsed.
/*
* amr_base_gpu_unit_tests.cu
*
* Created on: Aug 28, 2019
* Author: i-bird
*/
/*
* amr_base_unit_test.cpp
*
* Created on: Oct 5, 2017
* Author: i-bird
*/
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
#include "Amr/grid_dist_amr.hpp"
#include "Point_test.hpp"
#include "Grid/tests/grid_dist_id_util_tests.hpp"
struct amr_launch_sparse
{
template<typename grid_type, typename ite_type>
__device__ void operator()(grid_type & grid, ite_type itg, float spacing, Point<3,float> center)
{
GRID_ID_3_GLOBAL(itg);
__shared__ bool is_block_empty;
if (threadIdx.x == 0 && threadIdx.y == 0 && threadIdx.z == 0)
{is_block_empty = true;}
grid.init();
int offset = 0;
grid_key_dx<3,int> blk;
bool out = grid.getInsertBlockOffset(itg,key,blk,offset);
auto blockId = grid.getBlockLinId(blk);
const float x = keyg.get(0)*spacing - center.get(0);
const float y = keyg.get(1)*spacing - center.get(1);
const float z = keyg.get(2)*spacing - center.get(2);
float radius = sqrt((float) (x*x + y*y + z*z));
bool is_active = radius < 0.4 && radius > 0.3;
if (is_active == true)
{is_block_empty = false;}
__syncthreads();
if (is_block_empty == false)
{
auto ec = grid.insertBlock(blockId);
if ( is_active == true)
{
ec.template get<0>()[offset] = x+y+z;
ec.template get<grid_type::pMask>()[offset] = 1;
}
}
__syncthreads();
grid.flush_block_insert();
}
};
BOOST_AUTO_TEST_SUITE( amr_grid_dist_id_test )
BOOST_AUTO_TEST_CASE( grid_dist_id_amr_gpu )
{
// Domain
Box<3,float> domain3({0.0,0.0,0.0},{1.0,1.0,1.0});
Ghost<3,long int> g(1);
sgrid_dist_amr_gpu<3,float,aggregate<float>> amr_g(domain3,g);
size_t g_sz[3] = {4,4,4};
size_t n_lvl = 6;
amr_g.initLevels(n_lvl,g_sz);
for (size_t i = 0 ; i < amr_g.getNLvl() ; i++)
{
// Fill the AMR with something
size_t count = 0;
auto it = amr_g.getGridIteratorGPU(i);
it.setGPUInsertBuffer(1);
Point<3,float> center({0.5,0.5,0.5});
it.launch(amr_launch_sparse(),it.getSpacing(0),center);
amr_g.getDistGrid(i).template flush<smax_<0>>(FLUSH_ON_DEVICE);
amr_g.getDistGrid(i).template deviceToHost<0>();
auto it2 = amr_g.getDistGrid(i).getDomainIterator();
while (it2.isNext())
{
auto key = it2.get();
auto keyg = it2.getGKey(key);
count++;
++it2;
}
auto & v_cl = create_vcluster();
v_cl.sum(count);
v_cl.execute();
switch(i)
{
case 0:
BOOST_REQUIRE_EQUAL(count,0);
break;
case 1:
BOOST_REQUIRE_EQUAL(count,30);
break;
case 2:
BOOST_REQUIRE_EQUAL(count,282);
break;
case 3:
BOOST_REQUIRE_EQUAL(count,2192);
break;
case 4:
BOOST_REQUIRE_EQUAL(count,16890);
break;
case 5:
BOOST_REQUIRE_EQUAL(count,136992);
break;
}
}
// Iterate across all the levels initialized
/* auto it = amr_g.getDomainIterator();
size_t count = 0;
while (it.isNext())
{
count++;
++it;
}
Vcluster<> & v_cl = create_vcluster();
v_cl.sum(count);
v_cl.execute();
BOOST_REQUIRE_EQUAL(count,correct_result);
auto itc = amr_g.getDomainIteratorCells();
size_t count_c = 0;
while (itc.isNext())
{
count_c++;
++itc;
}
v_cl.sum(count_c);
v_cl.execute();
auto it_level = amr_g.getDomainIteratorCells(3);
while (it_level.isNext())
{
auto key = it_level.get();
amr_g.template get<0>(3,key);
++it_level;
}
BOOST_REQUIRE_EQUAL(count_c,correct_result_cell);*/
}
BOOST_AUTO_TEST_CASE( grid_dist_id_amr_gpu_link_test )
{
// To uncomment (It does not work when we run the full suite for some weird reason)
#if 0
auto & v_cl = create_vcluster();
// Domain
Box<2,float> domain({0.0,0.0},{1.0,1.0});
Ghost<2,long int> g(1);
sgrid_dist_amr_gpu<2,float,aggregate<float>> amr_g(domain,g);
size_t g_sz[2] = {17,17};
size_t n_lvl = 3;
amr_g.initLevels(n_lvl,g_sz);
grid_key_dx<2> start({5,5});
grid_key_dx<2> start_lvl_dw({9,9});
grid_key_dx<2> stop_lvl_dw({12,12});
grid_key_dx<2> start_lvl_dw2({19,19});
grid_key_dx<2> stop_lvl_dw2({23,23});
auto it = amr_g.getGridIterator(0,start,start);
auto it2 = amr_g.getGridIterator(1,start_lvl_dw,stop_lvl_dw);
auto it3 = amr_g.getGridIterator(2,start_lvl_dw2,stop_lvl_dw2);
// it.setGPUInsertBuffer(4);
auto & lvl_0 = amr_g.getDistGrid(0);
auto & lvl_1 = amr_g.getDistGrid(1);
auto & lvl_2 = amr_g.getDistGrid(2);
// Add points in level 0
while (it.isNext())
{
auto key = it.get_dist();
lvl_0.template insertFlush<0>(key) = 1.0;
++it;
}
while (it2.isNext())
{
auto key = it2.get_dist();
lvl_1.template insertFlush<0>(key) = 2.0;
++it2;
}
while (it3.isNext())
{
auto key = it3.get_dist();
lvl_2.template insertFlush<0>(key) = 3.0;
++it3;
}
amr_g.hostToDevice<0>();
amr_g.tagBoundaries<NNStar<2>>();
amr_g.construct_level_connections();
/////////////////////////////////////////////////////////////
auto & lvl_zero_d = amr_g.getDistGrid(0);
auto & lvl_one_d = amr_g.getDistGrid(1);
auto & lvl_two_d = amr_g.getDistGrid(2);
// For each local grid
for (int i = 0 ; i < lvl_zero_d.getN_loc_grid() ; i++)
{
// Check
auto & lvl_zero = lvl_zero_d.get_loc_grid(i);
auto & lvl_one = lvl_one_d.get_loc_grid(i);
auto & lvl_two = lvl_two_d.get_loc_grid(i);
auto & offs_dw_link = lvl_zero.getDownLinksOffsets();
auto & dw_links = lvl_zero.getDownLinks();
BOOST_REQUIRE_EQUAL(offs_dw_link.size(),1);
BOOST_REQUIRE_EQUAL(dw_links.size(),4);
auto & indexL0 = lvl_zero.private_get_blockMap().getIndexBuffer();
auto & indexL1 = lvl_one.private_get_blockMap().getIndexBuffer();
auto & indexL2 = lvl_two.private_get_blockMap().getIndexBuffer();
auto & dataL0 = lvl_zero.private_get_blockMap().getDataBuffer();
auto & dataL1 = lvl_one.private_get_blockMap().getDataBuffer();
auto & dataL2 = lvl_two.private_get_blockMap().getDataBuffer();
dw_links.template deviceToHost<0,1>();
BOOST_REQUIRE_EQUAL(dataL1.template get<0>(dw_links.template get<0>(0))[dw_links.template get<1>(0)],2);
BOOST_REQUIRE_EQUAL(dataL1.template get<0>(dw_links.template get<0>(1))[dw_links.template get<1>(1)],2);
BOOST_REQUIRE_EQUAL(dataL1.template get<0>(dw_links.template get<0>(2))[dw_links.template get<1>(2)],2);
BOOST_REQUIRE_EQUAL(dataL1.template get<0>(dw_links.template get<0>(3))[dw_links.template get<1>(3)],2);
auto & offs_dw_link_1 = lvl_one.getDownLinksOffsets();
auto & dw_links_1 = lvl_one.getDownLinks();
BOOST_REQUIRE_EQUAL(offs_dw_link_1.size(),12);
BOOST_REQUIRE_EQUAL(dw_links_1.size(),9);
dw_links_1.template deviceToHost<0,1>();
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(0))[dw_links_1.template get<1>(0)],3);
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(1))[dw_links_1.template get<1>(1)],3);
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(2))[dw_links_1.template get<1>(2)],3);
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(3))[dw_links_1.template get<1>(3)],3);
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(4))[dw_links_1.template get<1>(4)],3);
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(5))[dw_links_1.template get<1>(5)],3);
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(6))[dw_links_1.template get<1>(6)],3);
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(7))[dw_links_1.template get<1>(7)],3);
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(8))[dw_links_1.template get<1>(8)],3);
}
/////////////////////////////////////////////////////////////
#endif
}
BOOST_AUTO_TEST_CASE( grid_dist_id_amr_gpu_link_test_more_dense )
{
// To uncomment (It does not work when we run the full suite for some weird reason)
#if 0
auto & v_cl = create_vcluster();
// Domain
Box<2,float> domain({0.0,0.0},{1.0,1.0});
Ghost<2,long int> g(1);
sgrid_dist_amr_gpu<2,float,aggregate<float>> amr_g(domain,g);
size_t g_sz[2] = {17,17};
size_t n_lvl = 3;
amr_g.initLevels(n_lvl,g_sz);
grid_key_dx<2> start({1,1});
grid_key_dx<2> stop({15,15});
grid_key_dx<2> start_lvl_dw({2,2});
grid_key_dx<2> stop_lvl_dw({31,31});
grid_key_dx<2> start_lvl_dw2({4,4});
grid_key_dx<2> stop_lvl_dw2({63,63});
auto it = amr_g.getGridIterator(0,start,stop);
auto it2 = amr_g.getGridIterator(1,start_lvl_dw,stop_lvl_dw);
auto it3 = amr_g.getGridIterator(2,start_lvl_dw2,stop_lvl_dw2);
auto & lvl_0 = amr_g.getDistGrid(0);
auto & lvl_1 = amr_g.getDistGrid(1);
auto & lvl_2 = amr_g.getDistGrid(2);
// Add points in level 0
while (it.isNext())
{
auto key = it.get_dist();
lvl_0.template insertFlush<0>(key) = 1.0;
++it;
}
while (it2.isNext())
{
auto key = it2.get_dist();
lvl_1.template insertFlush<0>(key) = 2.0;
++it2;
}
while (it3.isNext())
{
auto key = it3.get_dist();
lvl_2.template insertFlush<0>(key) = 3.0;
++it3;
}
amr_g.hostToDevice<0>();
amr_g.ghost_get<0>(RUN_ON_DEVICE);
amr_g.tagBoundaries<NNStar<2>>();
amr_g.ghost_get<0>(RUN_ON_DEVICE);
amr_g.construct_level_connections();
amr_g.deviceToHost<0>();
amr_g.write("TESTOUT");
/////////////////////////////////////////////////////////////
auto & lvl_zero_d = amr_g.getDistGrid(0);
auto & lvl_one_d = amr_g.getDistGrid(1);
auto & lvl_two_d = amr_g.getDistGrid(2);
// For each local grid
size_t tot_dw_offs_12 = 0;
size_t tot_dw_lk_12 = 0;
size_t tot_dw_offs_23 = 0;
size_t tot_dw_lk_23 = 0;
size_t tot_up_offs_12 = 0;
size_t tot_up_lk_12 = 0;
size_t tot_up_offs_23 = 0;
size_t tot_up_lk_23 = 0;
for (int i = 0 ; i < lvl_zero_d.getN_loc_grid() ; i++)
{
// Check
auto & lvl_zero = lvl_zero_d.get_loc_grid(i);
auto & lvl_one = lvl_one_d.get_loc_grid(i);
auto & lvl_two = lvl_two_d.get_loc_grid(i);
auto & offs_dw_link = lvl_zero.getDownLinksOffsets();
auto & dw_links = lvl_zero.getDownLinks();
auto & offs_up_link = lvl_one.getUpLinksOffsets();
auto & up_links = lvl_one.getUpLinks();
tot_dw_offs_12 += offs_dw_link.size();
tot_dw_lk_12 += dw_links.size();
tot_up_offs_12 += offs_up_link.size();
tot_up_lk_12 += up_links.size();
auto & indexL0 = lvl_zero.private_get_blockMap().getIndexBuffer();
auto & indexL1 = lvl_one.private_get_blockMap().getIndexBuffer();
auto & indexL2 = lvl_two.private_get_blockMap().getIndexBuffer();
auto & dataL0 = lvl_zero.private_get_blockMap().getDataBuffer();
auto & dataL1 = lvl_one.private_get_blockMap().getDataBuffer();
auto & dataL2 = lvl_two.private_get_blockMap().getDataBuffer();
dw_links.template deviceToHost<0,1>();
up_links.template deviceToHost<0,1>();
for (int i = 0 ; i < dw_links.size(); i++)
{
BOOST_REQUIRE_EQUAL(dataL1.template get<0>(dw_links.template get<0>(i))[dw_links.template get<1>(i)],2);
}
for (int i = 0 ; i < up_links.size(); i++)
{
BOOST_REQUIRE_EQUAL(dataL0.template get<0>(up_links.template get<0>(i))[up_links.template get<1>(i)],1);
}
auto & offs_dw_link_1 = lvl_one.getDownLinksOffsets();
auto & dw_links_1 = lvl_one.getDownLinks();
auto & offs_up_link_1 = lvl_two.getUpLinksOffsets();
auto & up_links_1 = lvl_two.getUpLinks();
tot_dw_offs_23 += offs_dw_link_1.size();
tot_dw_lk_23 += dw_links_1.size();
tot_up_offs_23 += offs_up_link_1.size();
tot_up_lk_23 += up_links_1.size();
dw_links_1.template deviceToHost<0,1>();
up_links_1.template deviceToHost<0,1>();
for (int i = 0 ; i < dw_links_1.size(); i++)
{
BOOST_REQUIRE_EQUAL(dataL2.template get<0>(dw_links_1.template get<0>(i))[dw_links_1.template get<1>(i)],3);
}
for (int i = 0 ; i < up_links_1.size(); i++)
{
BOOST_REQUIRE_EQUAL(dataL1.template get<0>(up_links_1.template get<0>(i))[up_links_1.template get<1>(i)],2);
}
}
v_cl.sum(tot_dw_offs_12);
v_cl.sum(tot_dw_lk_12);
v_cl.sum(tot_dw_offs_23);
v_cl.sum(tot_dw_lk_23);
v_cl.sum(tot_up_offs_12);
v_cl.sum(tot_up_lk_12);
v_cl.sum(tot_up_offs_23);
v_cl.sum(tot_up_lk_23);
v_cl.execute();
BOOST_REQUIRE_EQUAL(tot_dw_offs_12,56);
BOOST_REQUIRE_EQUAL(tot_dw_lk_12,56*4);
BOOST_REQUIRE_EQUAL(tot_dw_offs_23,116);
BOOST_REQUIRE_EQUAL(tot_dw_lk_23,116*4);
BOOST_REQUIRE_EQUAL(tot_up_offs_12,116);
BOOST_REQUIRE_EQUAL(tot_up_lk_12,116);
BOOST_REQUIRE_EQUAL(tot_up_offs_23,236);
BOOST_REQUIRE_EQUAL(tot_up_lk_23,236);
/////////////////////////////////////////////////////////////
#endif
}
BOOST_AUTO_TEST_SUITE_END()
/*
* amr_base_unit_test.cpp
*
* Created on: Oct 5, 2017
* Author: i-bird
*/
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
#include "Grid/grid_dist_id.hpp"
#include "Point_test.hpp"
#include "Grid/tests/grid_dist_id_util_tests.hpp"
BOOST_AUTO_TEST_SUITE( amr_grid_dist_id_test )
BOOST_AUTO_TEST_CASE( grid_dist_id_amr )
{
// Domain
Box<2,float> domain2({0.0,0.0},{1.0,1.0});
size_t sz[2] = {100,100};
// Ghost
Ghost<2,long int> g(1);
// periodicity
periodicity<2> pr = {{PERIODIC,PERIODIC}};
openfpm::vector<Box<2,long int>> C_draw;
C_draw.add(Box<2,long int>({20,20},{50,24}));
C_draw.add(Box<2,long int>({51,20},{60,24}));
C_draw.add(Box<2,long int>({61,20},{70,24}));
C_draw.add(Box<2,long int>({20,25},{24,66}));
C_draw.add(Box<2,long int>({15,67},{49,85}));
C_draw.add(Box<2,long int>({50,76},{70,81}));
C_draw.add(Box<2,long int>({30,25},{34,37}));
C_draw.add(Box<2,long int>({50,66},{70,70}));
size_t volume_key = 0;
for (size_t i = 0 ; i < C_draw.size() ; i++)
{
volume_key += Box<2,long int>(C_draw.get(i)).getVolumeKey();
}
// Distributed grid with id decomposition
grid_dist_id<2,float,Point_test<float>> g_dist(sz,domain2,g,pr,C_draw);
// fill with gkey
auto git = g_dist.getDomainIterator();
grid_sm<2,void> gs(sz);
size_t count = 0;
while (git.isNext())
{
auto key = git.get();
auto gkey = git.getGKey(key);
g_dist.template get<0>(key) = gs.LinId(gkey);
count++;
++git;
}
Vcluster<> & vcl = create_vcluster();
vcl.sum(count);
vcl.execute();
BOOST_REQUIRE_EQUAL(count,volume_key);
g_dist.ghost_get<0>();
// Check it is correct
bool check = true;
size_t check_count = 0;
auto git2 = g_dist.getDomainGhostIterator();
while (git2.isNext())
{
auto key = git2.get();
auto gkey = git2.getGKey(key);
float value = g_dist.template get<0>(key);
// check if the point is inside or outside the domain
for (size_t k = 0; k < C_draw.size() ; k++)
{
if (Box<2,long int>(C_draw.get(k)).isInside(gkey.toPoint()) == true)
{
check &= value == gs.LinId(gkey);
// get the gdb_ext
auto & gdb_ext = g_dist.getLocalGridsInfo();
for (size_t s = 0 ; s < gdb_ext.size() ; s++)
{
Box<2,long int> bx = gdb_ext.get(s).Dbox;
bx += gdb_ext.get(s).origin;
if (bx.isInside(gkey.toPoint()))
{
check_count++;
break;
}
}
break;
}
}
++git2;
}
vcl.sum(check_count);
vcl.execute();
BOOST_REQUIRE_EQUAL(check,true);
BOOST_REQUIRE(check_count >= volume_key);
}
BOOST_AUTO_TEST_CASE( amr_grid_dist_id_iterator_test_use_2D)
{
// Domain
Box<2,float> domain({0.0,0.0},{1.0,1.0});
#ifdef TEST_COVERAGE_MODE
long int k = 256*256*create_vcluster().getProcessingUnits();
#else
long int k = 1024*1024*create_vcluster().getProcessingUnits();
#endif
k = std::pow(k, 1/2.);
long int big_step = k / 30;
big_step = (big_step == 0)?1:big_step;
long int small_step = 21;
print_test( "AMR Testing 2D full grid k<=",k);
// 2D test
for ( ; k >= 2 ; k-= (k > 2*big_step)?big_step:small_step )
{
BOOST_TEST_CHECKPOINT( "AMR Testing 2D full grid k=" << k );
//! [Create and access a distributed grid]
// grid size
size_t sz[2];
sz[0] = k;
sz[1] = k;
// periodicity
periodicity<2> pr = {{PERIODIC,PERIODIC}};
// Ghost
Ghost<2,long int> g(1);
openfpm::vector<Box<2,long int>> bx_def;
bx_def.add(Box<2,long int>({0,0},{k-1,k-1}));
// Distributed grid with id decomposition
grid_dist_id<2, float, aggregate<double>> g_dist(sz,domain,g,pr,bx_def);
Test2D_core(g_dist,sz,k);
}
}
BOOST_AUTO_TEST_SUITE_END()
This diff is collapsed.
This diff is collapsed.
/*
* DLB_unit_test.hpp
*
* Created on: Nov 24, 2015
* Author: Antonio Leo
*/
#ifndef DLB_UNIT_TEST_HPP_
#define DLB_UNIT_TEST_HPP_
#include "DLB.hpp"
BOOST_AUTO_TEST_SUITE (DLB_test)
BOOST_AUTO_TEST_CASE( DLB_test_use)
{
// Vcluster
Vcluster & vcl = *global_v_cluster;
// Initialize the global VCluster
init_global_v_cluster(&boost::unit_test::framework::master_test_suite().argc,&boost::unit_test::framework::master_test_suite().argv);
// Init DLB tool
DLB dlb(vcl);
// Init dlb parameters
dlb.setComputationCost(5);
dlb.setSimulationStartTime(0);
dlb.setSimulationEndTime(10);
// Time value of the "unbalanced" process
float t_high = 1;
for(float t = dlb.getSimulationStartTime();
t < dlb.getSimulationEndTime();
t++)
{
dlb.startIteration(0);
if(vcl.getProcessUnitID() == 0)
dlb.endIteration(1);
else{
dlb.endIteration(t_high++);
}
bool rebalance = dlb.rebalanceNeeded();
if(rebalance) {t_high = 1;}
if(t == 6)
BOOST_REQUIRE_EQUAL(rebalance,true);
}
}
BOOST_AUTO_TEST_SUITE_END()
#endif /* DLB_UNIT_TEST_HPP_ */
/*
* LB_Model.hpp
*
* Created on: Jan 18, 2017
* Author: i-bird
*/
#ifndef SRC_DLB_LB_MODEL_HPP_
#define SRC_DLB_LB_MODEL_HPP_
/*! \brief Linear model
*
* The linear model count each particle as weight one
*
*/
struct ModelLin
{
size_t factor = 1;
ModelLin(size_t factor)
:factor(factor)
{}
ModelLin() {}
template<typename Decomposition, typename vector> inline void addComputation(Decomposition & dec, const vector & vd, size_t v, size_t p)
{
dec.addComputationCost(v, 1);
}
template<typename Decomposition> inline void applyModel(Decomposition & dec, size_t v)
{
dec.setSubSubDomainComputationCost(v, dec.getSubSubDomainComputationCost(v));
}
double distributionTol()
{
return 1.01;
}
};
/*! \brief Linear model
*
* The linear model count each particle as weight one
*
*/
struct ModelSquare
{
size_t factor = 1;
template<typename Decomposition, typename vector> inline void addComputation(Decomposition & dec, const vector & vd, size_t v, size_t p)
{
dec.addComputationCost(v, factor);
}
template<typename Decomposition> inline void applyModel(Decomposition & dec, size_t v)
{
dec.setSubSubDomainComputationCost(v, dec.getSubSubDomainComputationCost(v) * dec.getSubSubDomainComputationCost(v));
}
double distributionTol()
{
return 1.01;
}
};
#endif /* SRC_DLB_LB_MODEL_HPP_ */