├── .gitignore ├── .gitmodules ├── .uberenv_config.json ├── LICENSE ├── README.md ├── azure-pipelines.yml ├── bootstrap-env.sh ├── config-build.sh ├── hashes.txt ├── package.py ├── scripts ├── ci │ └── check_blt_time_travel.py ├── gen_uberenv_mirror.py ├── git_archive_all.py └── uberenv_configs │ ├── old_configs │ ├── compilers.yaml │ ├── packages │ │ └── uberenv-vtk-h │ │ │ ├── package.py │ │ │ └── uberenv-vtk-h.tar.gz │ ├── project.json │ └── spack_configs │ │ ├── blueos_3_ppc64le_ib │ │ ├── compilers.yaml │ │ └── packages.yaml │ │ ├── boden │ │ ├── compilers.yaml │ │ └── packages.yaml │ │ ├── chaos_5_x86_64_ib │ │ ├── compilers.yaml │ │ ├── host_config_manual_edits.txt │ │ └── packages.yaml │ │ ├── ci │ │ ├── ubuntu_18_cuda_10.1_devel │ │ │ ├── config.yaml │ │ │ └── packages.yaml │ │ └── ubuntu_18_devel │ │ │ └── packages.yaml │ │ ├── config.yaml │ │ ├── darwin │ │ ├── compilers.yaml │ │ └── packages.yaml │ │ ├── llnl │ │ ├── lassen_cuda │ │ │ ├── compilers.yaml │ │ │ └── packages.yaml │ │ ├── lassen_openmp │ │ │ ├── compilers.yaml │ │ │ └── packages.yaml │ │ ├── pascal_cuda │ │ │ ├── compilers.yaml │ │ │ └── packages.yaml │ │ ├── pascal_openmp │ │ │ ├── compilers.yaml │ │ │ └── packages.yaml │ │ ├── rzansel │ │ │ ├── compilers.yaml │ │ │ └── packages.yaml │ │ └── surface_cuda │ │ │ ├── compilers.yaml │ │ │ └── packages.yaml │ │ ├── toss_3_x86_64_ib │ │ ├── compilers.yaml │ │ └── packages.yaml │ │ └── travis │ │ └── packages.yaml │ └── packages │ ├── uberenv-vtk-h │ ├── package.py │ └── uberenv-vtk-h.tar.gz │ └── vtk-m │ ├── disable_flying_edges.patch │ ├── package.py │ └── vtkmdiy_fpic.patch └── src ├── CMakeLists.txt ├── cmake ├── CMakeBasics.cmake ├── Setup3rdParty.cmake ├── SetupBLT.cmake ├── SetupIncludes.cmake ├── SetupTests.cmake ├── VTKhBuildType.cmake ├── VTKhConfig.cmake.in ├── VTKhDetermineVersion.cmake └── thirdparty │ ├── SetupKokkos.cmake │ └── SetupVTKm.cmake ├── examples ├── CMakeLists.txt ├── docker │ └── ubuntu │ │ ├── Dockerfile │ │ ├── example_build.sh │ │ └── example_run.sh └── using-with-cmake │ ├── CMakeLists.txt │ ├── FindVTKh.cmake │ └── example.cpp ├── tests ├── CMakeLists.txt ├── t_config.hpp.in ├── t_utils.hpp ├── thirdparty │ ├── CMakeLists.txt │ └── t_vtkm_smoke.cpp └── vtkh │ ├── CMakeLists.txt │ ├── t_test_utils.hpp │ ├── t_vtk-h_clip.cpp │ ├── t_vtk-h_clip_field.cpp │ ├── t_vtk-h_contour_tree.cpp │ ├── t_vtk-h_contour_tree_par.cpp │ ├── t_vtk-h_cuda.cpp │ ├── t_vtk-h_dataset.cpp │ ├── t_vtk-h_dataset_par.cpp │ ├── t_vtk-h_device_control.cpp │ ├── t_vtk-h_empty_data.cpp │ ├── t_vtk-h_ghost_stripper.cpp │ ├── t_vtk-h_gradient.cpp │ ├── t_vtk-h_histogram_par.cpp │ ├── t_vtk-h_iso_volume.cpp │ ├── t_vtk-h_lagrangian.cpp │ ├── t_vtk-h_log.cpp │ ├── t_vtk-h_marching_cubes.cpp │ ├── t_vtk-h_marching_cubes_par.cpp │ ├── t_vtk-h_mesh_quality.cpp │ ├── t_vtk-h_mesh_renderer.cpp │ ├── t_vtk-h_multi_render.cpp │ ├── t_vtk-h_multi_render_par.cpp │ ├── t_vtk-h_no_op.cpp │ ├── t_vtk-h_no_op_par.cpp │ ├── t_vtk-h_particle_advection_par.cpp │ ├── t_vtk-h_point_renderer.cpp │ ├── t_vtk-h_point_transform.cpp │ ├── t_vtk-h_raytracer.cpp │ ├── t_vtk-h_raytracer_par.cpp │ ├── t_vtk-h_render.cpp │ ├── t_vtk-h_sampling_par.cpp │ ├── t_vtk-h_scalar_renderer_par.cpp │ ├── t_vtk-h_slice.cpp │ ├── t_vtk-h_smoke.cpp │ ├── t_vtk-h_smoke_par.cpp │ ├── t_vtk-h_statistics_par.cpp │ ├── t_vtk-h_threshold.cpp │ ├── t_vtk-h_vector_ops.cpp │ ├── t_vtk-h_volume_renderer.cpp │ └── t_vtk-h_volume_renderer_par.cpp ├── version.txt └── vtkh ├── CMakeLists.txt ├── DataSet.cpp ├── DataSet.hpp ├── Error.hpp ├── Logger.cpp ├── Logger.hpp ├── StatisticsDB.cpp ├── StatisticsDB.hpp ├── Timer.cpp ├── Timer.hpp ├── compositing ├── AbsorptionPartial.hpp ├── CMakeLists.txt ├── Compositor.cpp ├── Compositor.hpp ├── DirectSendCompositor.cpp ├── DirectSendCompositor.hpp ├── EmissionPartial.hpp ├── Image.cpp ├── Image.hpp ├── ImageCompositor.hpp ├── MPICollect.hpp ├── PartialCompositor.cpp ├── PartialCompositor.hpp ├── PayloadCompositor.cpp ├── PayloadCompositor.hpp ├── PayloadImage.hpp ├── PayloadImageCompositor.hpp ├── RadixKCompositor.cpp ├── RadixKCompositor.hpp ├── VolumePartial.hpp ├── vtkh_diy_collect.hpp ├── vtkh_diy_image_block.hpp ├── vtkh_diy_partial_blocks.hpp ├── vtkh_diy_partial_collect.hpp ├── vtkh_diy_partial_redistribute.hpp └── vtkh_diy_utils.hpp ├── filters ├── BoundsMap.hpp ├── CMakeLists.txt ├── CellAverage.cpp ├── CellAverage.hpp ├── CleanGrid.cpp ├── CleanGrid.hpp ├── Clip.cpp ├── Clip.hpp ├── ClipField.cpp ├── ClipField.hpp ├── CommData.hpp ├── Communicator.hpp ├── CompositeVector.cpp ├── CompositeVector.hpp ├── ContourTree.cpp ├── ContourTree.hpp ├── DebugMeowMeow.hpp ├── Filter.cpp ├── Filter.hpp ├── GhostStripper.cpp ├── GhostStripper.hpp ├── Gradient.cpp ├── Gradient.hpp ├── HistSampling.cpp ├── HistSampling.hpp ├── Histogram.cpp ├── Histogram.hpp ├── IsoVolume.cpp ├── IsoVolume.hpp ├── Lagrangian.cpp ├── Lagrangian.hpp ├── Log.cpp ├── Log.hpp ├── MarchingCubes.cpp ├── MarchingCubes.hpp ├── MeshQuality.cpp ├── MeshQuality.hpp ├── NoOp.cpp ├── NoOp.hpp ├── ParticleAdvection.cpp ├── ParticleAdvection.hpp ├── ParticleMerging.cpp ├── ParticleMerging.hpp ├── PointAverage.cpp ├── PointAverage.hpp ├── PointTransform.cpp ├── PointTransform.hpp ├── Recenter.cpp ├── Recenter.hpp ├── Slice.cpp ├── Slice.hpp ├── Statistics.cpp ├── Statistics.hpp ├── Streamline.cpp ├── Streamline.hpp ├── Tetrahedralize.cpp ├── Tetrahedralize.hpp ├── Threshold.cpp ├── Threshold.hpp ├── Triangulate.cpp ├── Triangulate.hpp ├── VectorComponent.cpp ├── VectorComponent.hpp ├── VectorMagnitude.cpp ├── VectorMagnitude.hpp ├── adapter.h ├── avtParICAlgorithm.hpp ├── avtParICAlgorithm.hxx └── util.hpp ├── rendering ├── Annotator.cpp ├── Annotator.hpp ├── CMakeLists.txt ├── LineRenderer.cpp ├── LineRenderer.hpp ├── MeshRenderer.cpp ├── MeshRenderer.hpp ├── PointRenderer.cpp ├── PointRenderer.hpp ├── RayTracer.cpp ├── RayTracer.hpp ├── Render.cpp ├── Render.hpp ├── Renderer.cpp ├── Renderer.hpp ├── ScalarRenderer.cpp ├── ScalarRenderer.hpp ├── Scene.cpp ├── Scene.hpp ├── VolumeRenderer.cpp └── VolumeRenderer.hpp ├── thirdparty_builtin ├── CMakeLists.txt ├── diy │ ├── CMakeLists.txt │ ├── LEGAL.txt │ ├── LICENSE.txt │ └── include │ │ └── diy │ │ ├── algorithms.hpp │ │ ├── assigner.hpp │ │ ├── collection.hpp │ │ ├── communicator.hpp │ │ ├── constants.h │ │ ├── critical-resource.hpp │ │ ├── decomposition.hpp │ │ ├── detail │ │ ├── algorithms │ │ │ ├── kdtree-sampling.hpp │ │ │ ├── kdtree.hpp │ │ │ └── sort.hpp │ │ ├── block_traits.hpp │ │ ├── collectives.hpp │ │ ├── reduce │ │ │ └── all-to-all.hpp │ │ └── traits.hpp │ │ ├── fmt │ │ ├── format.cc │ │ ├── format.h │ │ ├── ostream.cc │ │ └── ostream.h │ │ ├── grid.hpp │ │ ├── io │ │ ├── block.hpp │ │ ├── bov.hpp │ │ └── numpy.hpp │ │ ├── link.hpp │ │ ├── log.hpp │ │ ├── master.hpp │ │ ├── mpi.hpp │ │ ├── mpi │ │ ├── collectives.hpp │ │ ├── communicator.hpp │ │ ├── constants.hpp │ │ ├── datatypes.hpp │ │ ├── io.hpp │ │ ├── operations.hpp │ │ ├── optional.hpp │ │ ├── point-to-point.hpp │ │ ├── request.hpp │ │ └── status.hpp │ │ ├── no-thread.hpp │ │ ├── partners │ │ ├── all-reduce.hpp │ │ ├── broadcast.hpp │ │ ├── common.hpp │ │ ├── merge.hpp │ │ └── swap.hpp │ │ ├── pick.hpp │ │ ├── point.hpp │ │ ├── proxy.hpp │ │ ├── reduce-operations.hpp │ │ ├── reduce.hpp │ │ ├── serialization.hpp │ │ ├── stats.hpp │ │ ├── storage.hpp │ │ ├── thread.hpp │ │ ├── thread │ │ └── fast_mutex.h │ │ ├── time.hpp │ │ ├── types.hpp │ │ └── vertices.hpp └── lodepng │ ├── CMakeLists.txt │ ├── License.txt │ ├── README.md │ ├── lodepng.cpp │ └── lodepng.h ├── utils ├── CMakeLists.txt ├── Mutex.cpp ├── Mutex.hpp ├── PNGEncoder.cpp ├── PNGEncoder.hpp ├── StreamUtil.hpp ├── ThreadSafeContainer.hpp ├── vtkm_array_utils.hpp ├── vtkm_dataset_info.cpp └── vtkm_dataset_info.hpp ├── vtkh.cpp ├── vtkh.hpp ├── vtkh_config.h.in ├── vtkh_exports.h └── vtkm_filters ├── CMakeLists.txt ├── GradientParameters.hpp ├── vtkmCellAverage.cpp ├── vtkmCellAverage.hpp ├── vtkmCleanGrid.cpp ├── vtkmCleanGrid.hpp ├── vtkmClip.cpp ├── vtkmClip.hpp ├── vtkmClipWithField.cpp ├── vtkmClipWithField.hpp ├── vtkmExtractStructured.cpp ├── vtkmExtractStructured.hpp ├── vtkmGradient.cpp ├── vtkmGradient.hpp ├── vtkmLagrangian.cpp ├── vtkmLagrangian.hpp ├── vtkmMarchingCubes.cpp ├── vtkmMarchingCubes.hpp ├── vtkmMeshQuality.cpp ├── vtkmMeshQuality.hpp ├── vtkmPointAverage.cpp ├── vtkmPointAverage.hpp ├── vtkmPointTransform.cpp ├── vtkmPointTransform.hpp ├── vtkmTetrahedralize.cpp ├── vtkmTetrahedralize.hpp ├── vtkmThreshold.cpp ├── vtkmThreshold.hpp ├── vtkmTriangulate.cpp ├── vtkmTriangulate.hpp ├── vtkmVectorMagnitude.cpp └── vtkmVectorMagnitude.hpp /.gitignore: -------------------------------------------------------------------------------- 1 | vtkh.docker.src.tar.gz 2 | uberenv_libs 3 | build-debug 4 | install-debug 5 | *.pyc -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "src/blt"] 2 | path = src/blt 3 | url = https://github.com/LLNL/blt.git 4 | [submodule "scripts/uberenv"] 5 | path = scripts/uberenv 6 | url = https://github.com/LLNL/uberenv.git 7 | [submodule "scripts/uberenv_configs/spack_configs"] 8 | path = scripts/uberenv_configs/spack_configs 9 | url = https://github.com/Alpine-DAV/spack_configs.git 10 | -------------------------------------------------------------------------------- /.uberenv_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "package_name" : "vtk-h", 3 | "package_version" : "develop", 4 | "package_source_dir" : "../../", 5 | "spack_build_mode" : "uberenv-pkg", 6 | "spack_configs_path": "scripts/uberenv_configs/spack_configs/configs", 7 | "spack_packages_path": "scripts/uberenv_configs/packages", 8 | "spack_url": "https://github.com/alpine-DAV/spack", 9 | "spack_branch": "ascent/develop" 10 | } 11 | 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VTK-h is now developed as part of Ascent 2 | 3 | VTK-h is now developed as part of Ascent (https://github.com/Alpine-DAV/ascent). 4 | 5 | It was moved as part of a great amalgamation to simplify ongoing development and support of Ascent. 6 | 7 | 8 | VTK-h 9 | ===== 10 | 11 | VTK-h is a toolkit of scientific visualization algorithms for emerging processor architectures. VTK-h 12 | bring together several projects like VTK-m and DIY2 to provide a toolkit with hybrid parallel capabilities. 13 | 14 | VTK-m Version: 15 | ============== 16 | VTK-h use a specific version of VTK-m. 17 | For the current version see: 18 | 19 | https://github.com/Alpine-DAV/vtk-h/blob/develop/hashes.txt 20 | 21 | Additionally, VTK-m has several build settings and we test with a specific combination. 22 | When building VTK-m, be sure to set: 23 | 24 | - `VTKm_USE_64BIT_IDS:BOOL=OFF` 25 | - `VTKm_USE_DOUBLE_PRECISION:BOOL=ON` 26 | - `VTKm_USE_DEFAULT_TYPES_FOR_ASCENT:BOOL=ON` 27 | - `VTKm_NO_DEPRECATED_VIRTUAL:BOOL=ON` 28 | 29 | 30 | Source Repo 31 | ================= 32 | 33 | VTK-h's source is hosted on GitHub: 34 | 35 | https://github.com/Alpine-DAV/vtk-h 36 | 37 | License 38 | =========== 39 | 40 | VTK-h is released under [3-clause BSD license](/LICENSE). 41 | -------------------------------------------------------------------------------- /hashes.txt: -------------------------------------------------------------------------------- 1 | blt branch='develop' commit='86a7d6b5ee93d8b7b3233a3e54a4f06f8d8308d3' 2 | vtkm branch='release' commit='bac7559926b328199323bb314a6dffc5d93fbe52' 3 | -------------------------------------------------------------------------------- /scripts/ci/check_blt_time_travel.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import subprocess 3 | 4 | # parse hashes.txt file to check which BLT we should be using 5 | def sexe(cmd,ret_output=False,echo = False): 6 | """ Helper for executing shell commands. """ 7 | if echo: 8 | print("[exe: {}]".format(cmd)) 9 | if ret_output: 10 | p = subprocess.Popen(cmd, 11 | shell=True, 12 | stdout=subprocess.PIPE, 13 | stderr=subprocess.STDOUT) 14 | res = p.communicate()[0] 15 | res = res.decode('utf8') 16 | return p.returncode,res 17 | else: 18 | return subprocess.call(cmd,shell=True) 19 | 20 | def read_blt_hash(): 21 | with open("hashes.txt") as f: 22 | for txt in f.readlines(): 23 | if txt.count("blt") > 0: 24 | key = "commit='" 25 | cmt_start = txt.find(key) + len(key) 26 | # find commit 27 | commit = txt[cmt_start:].strip() 28 | # remove trailing ' 29 | return commit[:-1] 30 | # hard fail 31 | print("[ERROR: could not read blt info from hashes.txt]") 32 | sys.exit(-1) 33 | 34 | def read_last_blt_commit(): 35 | cmd = 'git ls-files -s src/blt' 36 | rcode, rout = sexe(cmd,ret_output=True) 37 | # the commit id is the second token 38 | toks = rout.split() 39 | if rcode != 0 or len(toks) < 2: 40 | print("[ERROR: could not git ls-files -s src/blt]") 41 | sys.exit(-1) 42 | return toks[1] 43 | 44 | def main(): 45 | expected = read_blt_hash() 46 | current = read_last_blt_commit() 47 | print("[blt sanity check]") 48 | print("[ Expected sha (hashes.txt): {0}]".format(expected)) 49 | print("[ Current sha (from git): {0}]".format(current)) 50 | if expected != current: 51 | print("[ERROR: sha mismatch!]") 52 | print("[If you wanted to update blt - did you update hashes.txt?]") 53 | sys.exit(-1) 54 | else: 55 | print("[PASS: sanity is preserved]") 56 | sys.exit(0) 57 | 58 | 59 | if __name__ == "__main__": 60 | main() 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/packages/uberenv-vtk-h/uberenv-vtk-h.tar.gz: -------------------------------------------------------------------------------- 1 | empty.txt000644 145410 145410 00000000000 12542116267 013075 0ustar00harrison37000000 000000 -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "package_name" : "vtk-h", 3 | "uberenv_package_name" : "uberenv-vtk-h@develop", 4 | "spack_url": "https://github.com/alpine-DAV/spack", 5 | "spack_branch": "ascent/develop", 6 | "mirror_url": "https://www.ascent-dav.org/mirror/vtk-h/latest/" 7 | } 8 | 9 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/blueos_3_ppc64le_ib/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: [] 7 | operating_system: rhel7 8 | paths: 9 | cc: /usr/tcetmp/packages/gcc/gcc-4.9.3/bin/gcc 10 | cxx: /usr/tcetmp/packages/gcc/gcc-4.9.3/bin/g++ 11 | f77: /usr/tcetmp/packages/gcc/gcc-4.9.3/bin/gfortran 12 | fc: /usr/tcetmp/packages/gcc/gcc-4.9.3/bin/gfortran 13 | spec: gcc@4.9.3 14 | target: ppc64le 15 | - compiler: 16 | environment: {} 17 | extra_rpaths: [] 18 | flags: {} 19 | modules: [] 20 | operating_system: rhel7 21 | paths: 22 | cc: /usr/tcetmp/packages/clang/clang-4.0.0/bin/clang 23 | cxx: /usr/tcetmp/packages/clang/clang-4.0.0/bin/clang++ 24 | f77: None 25 | fc: None 26 | spec: clang@4.0.0 27 | target: ppc64le 28 | - compiler: 29 | environment: {} 30 | extra_rpaths: [] 31 | flags: {} 32 | modules: [] 33 | operating_system: rhel7 34 | paths: 35 | cc: /usr/tce/packages/xl/xl-beta-2017.10.13/bin/xlc-gpu 36 | cxx: /usr/tce/packages/xl/xl-beta-2017.10.13/bin/xlC-gpu 37 | f77: /usr/tce/packages/xl/xl-beta-2017.10.13/bin/xlf-gpu 38 | fc: //usr/tce/packages/xl/xl-beta-2017.10.13/xlf2003-gpu 39 | spec: xl@13.1 40 | target: ppc64le 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/blueos_3_ppc64le_ib/packages.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------- 3 | # This file controls default concretization preferences for Spack. 4 | # 5 | # Settings here are versioned with Spack and are intended to provide 6 | # sensible defaults out of the box. Spack maintainers should edit this 7 | # file to keep it current. 8 | # 9 | # Users can override these settings by editing the following files. 10 | # 11 | # Per-spack-instance settings (overrides defaults): 12 | # $SPACK_ROOT/etc/spack/packages.yaml 13 | # 14 | # Per-user settings (overrides default and site settings): 15 | # ~/.spack/packages.yaml 16 | # ------------------------------------------------------------------------- 17 | packages: 18 | all: 19 | compiler: [gcc, intel, pgi, clang, xl, nag] 20 | providers: 21 | awk: [gawk] 22 | blas: [openblas] 23 | daal: [intel-daal] 24 | elf: [elfutils] 25 | golang: [gcc] 26 | ipp: [intel-ipp] 27 | java: [jdk] 28 | lapack: [openblas] 29 | mkl: [intel-mkl] 30 | mpe: [mpe2] 31 | mpi: [mvapich2] 32 | opencl: [pocl] 33 | openfoam: [openfoam-com, openfoam-org, foam-extend] 34 | pil: [py-pillow] 35 | scalapack: [netlib-scalapack] 36 | szip: [libszip, libaec] 37 | tbb: [intel-tbb] 38 | jpeg: [libjpeg-turbo, libjpeg] 39 | # LLNL blueos CUDA 40 | cuda: 41 | paths: 42 | cuda@9.0.176: /usr/tce/packages/cuda/cuda-9.0.176 43 | cuda@8.0: /usr/tce/packages/cuda/cuda-8.0 44 | buildable: False 45 | # LLNL blueos mpi 46 | # note, we need to fake this as an existing mpi package 47 | # so even though this is spectrum mpi, we call it mvapich2 48 | mvapich2: 49 | paths: 50 | mvapich2@2.2%gcc@4.9.3: /usr/tcetmp/packages/spectrum-mpi/spectrum-mpi-2017.04.03-gcc-4.9.3 51 | mvapich2@2.2%clang@coral: /usr/tcetmp/packages/spectrum-mpi/spectrum-mpi-2017.04.03-clang-4.0.0 52 | mvapich2@2.2%xl@13.1 : /usr/tcetmp/packages/spectrum-mpi/spectrum-mpi-2017.11.10-xl-beta-2017.10.13 53 | buildable: False 54 | 55 | 56 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/boden/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: [] 7 | operating_system: elcapitan 8 | paths: 9 | cc: /usr/bin/clang 10 | cxx: /usr/bin/clang++ 11 | f77: /opt/local/bin/gfortran 12 | fc: /opt/local/bin/gfortran 13 | spec: clang@7.3.0-apple 14 | - compiler: 15 | environment: {} 16 | extra_rpaths: [] 17 | flags: {} 18 | modules: [] 19 | operating_system: sierra 20 | paths: 21 | cc: /usr/bin/clang 22 | cxx: /usr/bin/clang++ 23 | f77: /opt/local/bin/gfortran 24 | fc: /opt/local/bin/gfortran 25 | spec: clang@8.0.0-apple 26 | target: x86_64 27 | - compiler: 28 | environment: {} 29 | extra_rpaths: [] 30 | flags: {} 31 | modules: [] 32 | operating_system: highsierra 33 | paths: 34 | cc: /usr/bin/clang 35 | cxx: /usr/bin/clang++ 36 | f77: /opt/local/bin/gfortran 37 | fc: /opt/local/bin/gfortran 38 | spec: clang@9.0.0-apple 39 | target: x86_64 40 | - compiler: 41 | environment: {} 42 | extra_rpaths: [] 43 | flags: {} 44 | modules: [] 45 | operating_system: mojave 46 | paths: 47 | cc: /usr/bin/clang 48 | cxx: /usr/bin/clang++ 49 | f77: /opt/local/bin/gfortran 50 | fc: /opt/local/bin/gfortran 51 | spec: clang@10.0.0-apple 52 | target: x86_64 53 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/boden/packages.yaml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------- 2 | # This file controls default concretization preferences for Spack. 3 | # 4 | # Settings here are versioned with Spack and are intended to provide 5 | # sensible defaults out of the box. Spack maintainers should edit this 6 | # file to keep it current. 7 | # 8 | # Users can override these settings by editing the following files. 9 | # 10 | # Per-spack-instance settings (overrides defaults): 11 | # $SPACK_ROOT/etc/spack/packages.yaml 12 | # 13 | # Per-user settings (overrides default and site settings): 14 | # ~/.spack/packages.yaml 15 | # ------------------------------------------------------------------------- 16 | packages: 17 | all: 18 | variants: ~docs~openmp+logging 19 | compiler: [clang, gcc, intel, pgi, xl, nag] 20 | providers: 21 | awk: [gawk] 22 | blas: [openblas] 23 | daal: [intel-daal] 24 | elf: [elfutils] 25 | golang: [gcc] 26 | ipp: [intel-ipp] 27 | java: [jdk] 28 | lapack: [openblas] 29 | mkl: [intel-mkl] 30 | mpe: [mpe2] 31 | mpi: [openmpi] 32 | opencl: [pocl] 33 | openfoam: [openfoam-com, openfoam-org, foam-extend] 34 | pil: [py-pillow] 35 | scalapack: [netlib-scalapack] 36 | szip: [libszip, libaec] 37 | tbb: [intel-tbb] 38 | jpeg: [libjpeg-turbo, libjpeg] 39 | # custom variants 40 | conduit: 41 | version: [master] 42 | python: 43 | variants: +shared~dbm 44 | cmake: 45 | paths: 46 | cmake@3.14.5: /Users/larsen30/cmake-v3.14.5/ 47 | buildable: False 48 | hwloc: 49 | variants: ~libxml2 50 | perl: 51 | paths: 52 | perl: /usr/ 53 | buildable: False 54 | # CUDA standard MacOS install paths 55 | cuda: 56 | paths: 57 | cuda@8.0: /Developer/NVIDIA/CUDA-8.0 58 | cuda@9.0: /Developer/NVIDIA/CUDA-9.0 59 | buildable: False 60 | openmpi: 61 | paths: 62 | openmpi@2.0.4%clang: /Users/larsen30/research/gui/openmpi-2.0.4/install_dir/ 63 | buildable: False 64 | 65 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/chaos_5_x86_64_ib/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: [] 7 | operating_system: rhel6 8 | paths: 9 | cc: /usr/apps/gnu/4.9.3/bin/gcc 10 | cxx: /usr/apps/gnu/4.9.3/bin/g++ 11 | f77: /usr/apps/gnu/4.9.3/bin/gfortran 12 | fc: /usr/apps/gnu/4.9.3/bin/gfortran 13 | spec: gcc@4.9.3 14 | - compiler: 15 | environment: {} 16 | extra_rpaths: [] 17 | flags: {} 18 | modules: [] 19 | operating_system: rhel6 20 | paths: 21 | cc: /usr/local/tools/ic-16.0.109/bin/icc 22 | cxx: /usr/local/tools/ic-16.0.109/bin/icpc 23 | f77: /usr/local/tools/ic-16.0.109/bin/ifort 24 | fc: /usr/local/tools/ic-16.0.109/bin/ifort 25 | spec: intel@16.0.109 26 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/chaos_5_x86_64_ib/host_config_manual_edits.txt: -------------------------------------------------------------------------------- 1 | # extra settings for chaos 5 2 | 3 | set(MPIEXEC /usr/bin/srun CACHE PATH "") 4 | set(MPIEXEC_NUMPROC_FLAG -n CACHE PATH "") 5 | 6 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/chaos_5_x86_64_ib/packages.yaml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------- 2 | # This file controls default concretization preferences for Spack. 3 | # 4 | # Settings here are versioned with Spack and are intended to provide 5 | # sensible defaults out of the box. Spack maintainers should edit this 6 | # file to keep it current. 7 | # 8 | # Users can override these settings by editing the following files. 9 | # 10 | # Per-spack-instance settings (overrides defaults): 11 | # $SPACK_ROOT/etc/spack/packages.yaml 12 | # 13 | # Per-user settings (overrides default and site settings): 14 | # ~/.spack/packages.yaml 15 | # ------------------------------------------------------------------------- 16 | packages: 17 | all: 18 | compiler: [gcc, intel, pgi, clang, xl, nag] 19 | providers: 20 | awk: [gawk] 21 | blas: [openblas] 22 | daal: [intel-daal] 23 | elf: [elfutils] 24 | golang: [gcc] 25 | ipp: [intel-ipp] 26 | java: [jdk] 27 | lapack: [openblas] 28 | mkl: [intel-mkl] 29 | mpe: [mpe2] 30 | mpi: [mvapich2] 31 | opencl: [pocl] 32 | openfoam: [openfoam-com, openfoam-org, foam-extend] 33 | pil: [py-pillow] 34 | scalapack: [netlib-scalapack] 35 | szip: [libszip, libaec] 36 | tbb: [intel-tbb] 37 | jpeg: [libjpeg-turbo, libjpeg] 38 | # LLNL chaos5 CUDA 39 | cuda: 40 | paths: 41 | cuda@8.0: /opt/cudatoolkit-8.0 42 | buildable: False 43 | # LLNL chaos5 mvapich2 44 | mvapich2: 45 | paths: 46 | mvapich2@2.0%gcc@4.9.3: /usr/local/tools/mvapich2-gnu-2.0/ 47 | mvapich2@2.0%intel@16.0.109: /usr/local/tools/mvapich2-intel-2.0 48 | buildable: False -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/ci/ubuntu_18_cuda_10.1_devel/packages.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | all: 3 | variants: cuda_arch=70 4 | compiler: [gcc] 5 | providers: 6 | mpi: [mpich] 7 | blas: [netlib-lapack] 8 | lapack: [netlib-lapack] 9 | cuda: 10 | paths: 11 | cuda@10.1: /usr/local/cuda/ 12 | buildable: False 13 | netlib-lapack: 14 | buildable: False 15 | paths: 16 | netlib-lapack: /usr/ 17 | mpich: 18 | buildable: False 19 | paths: 20 | mpich: /usr 21 | gdbm: 22 | buildable: False 23 | paths: 24 | gdbm: /usr 25 | bzip2: 26 | buildable: False 27 | paths: 28 | bzip2: /usr 29 | readline: 30 | buildable: False 31 | paths: 32 | readline: /usr 33 | sqlite: 34 | buildable: False 35 | paths: 36 | sqlite: /usr 37 | ncurses: 38 | buildable: False 39 | paths: 40 | ncurses: /usr 41 | pkg-config: 42 | buildable: False 43 | paths: 44 | pkg-config: /usr 45 | openssl: 46 | buildable: False 47 | paths: 48 | openssl: /usr 49 | perl: 50 | buildable: False 51 | paths: 52 | perl: /usr 53 | tar: 54 | buildable: False 55 | paths: 56 | tar: /usr 57 | conduit: 58 | version: [master] 59 | # python 2 constraints 60 | py-sphinx: 61 | version: [1.8.4] 62 | py-numpy: 63 | version: [1.16.5] -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/ci/ubuntu_18_devel/packages.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | all: 3 | compiler: [gcc] 4 | providers: 5 | mpi: [mpich] 6 | blas: [netlib-lapack] 7 | lapack: [netlib-lapack] 8 | netlib-lapack: 9 | buildable: False 10 | paths: 11 | netlib-lapack: /usr/ 12 | mpich: 13 | buildable: False 14 | paths: 15 | mpich: /usr 16 | gdbm: 17 | buildable: False 18 | paths: 19 | gdbm: /usr 20 | bzip2: 21 | buildable: False 22 | paths: 23 | bzip2: /usr 24 | readline: 25 | buildable: False 26 | paths: 27 | readline: /usr 28 | sqlite: 29 | buildable: False 30 | paths: 31 | sqlite: /usr 32 | ncurses: 33 | buildable: False 34 | paths: 35 | ncurses: /usr 36 | pkg-config: 37 | buildable: False 38 | paths: 39 | pkg-config: /usr 40 | openssl: 41 | buildable: False 42 | paths: 43 | openssl: /usr 44 | perl: 45 | buildable: False 46 | paths: 47 | perl: /usr 48 | tar: 49 | buildable: False 50 | paths: 51 | tar: /usr 52 | conduit: 53 | version: [master] 54 | # python 2 constraints 55 | py-sphinx: 56 | version: [1.8.4] 57 | py-numpy: 58 | version: [1.16.5] -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/darwin/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: [] 7 | operating_system: elcapitan 8 | paths: 9 | cc: /usr/bin/clang 10 | cxx: /usr/bin/clang++ 11 | f77: /usr/local/bin/gfortran 12 | fc: /usr/local/bin/gfortran 13 | spec: clang@7.3.0-apple 14 | - compiler: 15 | environment: {} 16 | extra_rpaths: [] 17 | flags: {} 18 | modules: [] 19 | operating_system: sierra 20 | paths: 21 | cc: /usr/bin/clang 22 | cxx: /usr/bin/clang++ 23 | f77: /usr/local/bin/gfortran 24 | fc: /usr/local/bin/gfortran 25 | spec: clang@8.0.0-apple 26 | target: x86_64 27 | - compiler: 28 | environment: {} 29 | extra_rpaths: [] 30 | flags: {} 31 | modules: [] 32 | operating_system: highsierra 33 | paths: 34 | cc: /usr/bin/clang 35 | cxx: /usr/bin/clang++ 36 | f77: /usr/local/bin/gfortran 37 | fc: /usr/local/bin/gfortran 38 | spec: clang@9.0.0-apple 39 | target: x86_64 40 | - compiler: 41 | environment: {} 42 | extra_rpaths: [] 43 | flags: {} 44 | modules: [] 45 | operating_system: mojave 46 | paths: 47 | cc: /usr/bin/clang 48 | cxx: /usr/bin/clang++ 49 | f77: /usr/local/bin/gfortran 50 | fc: /usr/local/bin/gfortran 51 | spec: clang@10.0.0-apple 52 | target: x86_64 -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/darwin/packages.yaml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------- 2 | # This file controls default concretization preferences for Spack. 3 | # 4 | # Settings here are versioned with Spack and are intended to provide 5 | # sensible defaults out of the box. Spack maintainers should edit this 6 | # file to keep it current. 7 | # 8 | # Users can override these settings by editing the following files. 9 | # 10 | # Per-spack-instance settings (overrides defaults): 11 | # $SPACK_ROOT/etc/spack/packages.yaml 12 | # 13 | # Per-user settings (overrides default and site settings): 14 | # ~/.spack/packages.yaml 15 | # ------------------------------------------------------------------------- 16 | packages: 17 | all: 18 | compiler: [clang, gcc, intel, pgi, xl, nag] 19 | providers: 20 | awk: [gawk] 21 | blas: [openblas] 22 | daal: [intel-daal] 23 | elf: [elfutils] 24 | golang: [gcc] 25 | ipp: [intel-ipp] 26 | java: [jdk] 27 | lapack: [openblas] 28 | mkl: [intel-mkl] 29 | mpe: [mpe2] 30 | mpi: [openmpi, mpich] 31 | opencl: [pocl] 32 | openfoam: [openfoam-com, openfoam-org, foam-extend] 33 | pil: [py-pillow] 34 | scalapack: [netlib-scalapack] 35 | szip: [libszip, libaec] 36 | tbb: [intel-tbb] 37 | jpeg: [libjpeg-turbo, libjpeg] 38 | variants: ~openmp 39 | # custom variants 40 | conduit: 41 | version: [master] 42 | python: 43 | variants: +shared~dbm 44 | cmake: 45 | version: [3.9.6] 46 | variants: ~openssl~ncurses 47 | hwloc: 48 | variants: ~libxml2 49 | perl: 50 | paths: 51 | perl: /usr/ 52 | buildable: False 53 | # CUDA standard MacOS install paths 54 | cuda: 55 | paths: 56 | cuda@8.0: /Developer/NVIDIA/CUDA-8.0 57 | cuda@9.0: /Developer/NVIDIA/CUDA-9.0 58 | buildable: False 59 | 60 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/lassen_cuda/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: 7 | - gcc/7.3.1 8 | operating_system: rhel7 9 | paths: 10 | cc: /usr/tce/packages/gcc/gcc-7.3.1/bin/gcc 11 | cxx: /usr/tce/packages/gcc/gcc-7.3.1/bin/g++ 12 | f77: /usr/tce/packages/gcc/gcc-7.3.1/bin/gfortran 13 | fc: /usr/tce/packages/gcc/gcc-7.3.1/bin/gfortran 14 | spec: gcc@7.3.1 15 | target: ppc64le 16 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/lassen_cuda/packages.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------- 3 | # This file controls default concretization preferences for Spack. 4 | # 5 | # Settings here are versioned with Spack and are intended to provide 6 | # sensible defaults out of the box. Spack maintainers should edit this 7 | # file to keep it current. 8 | # 9 | # Users can override these settings by editing the following files. 10 | # 11 | # Per-spack-instance settings (overrides defaults): 12 | # $SPACK_ROOT/etc/spack/packages.yaml 13 | # 14 | # Per-user settings (overrides default and site settings): 15 | # ~/.spack/packages.yaml 16 | # ------------------------------------------------------------------------- 17 | packages: 18 | all: 19 | variants: ~shared~python+cuda+openmp cuda_arch=70 20 | compiler: [gcc, intel, pgi, clang, xl, nag] 21 | providers: 22 | awk: [gawk] 23 | blas: [openblas] 24 | daal: [intel-daal] 25 | elf: [elfutils] 26 | golang: [gcc] 27 | ipp: [intel-ipp] 28 | java: [jdk] 29 | lapack: [openblas] 30 | mkl: [intel-mkl] 31 | mpe: [mpe2] 32 | mpi: [mvapich2] 33 | opencl: [pocl] 34 | openfoam: [openfoam-com, openfoam-org, foam-extend] 35 | pil: [py-pillow] 36 | scalapack: [netlib-scalapack] 37 | szip: [libszip, libaec] 38 | tbb: [intel-tbb] 39 | jpeg: [libjpeg-turbo, libjpeg] 40 | conduit: 41 | version: [master] 42 | python: 43 | variants: ~dbm 44 | cmake: 45 | paths: 46 | cmake@3.14.5: /usr/tce/packages/cmake/cmake-3.14.5/ 47 | buildable: False 48 | perl: 49 | buildable: False 50 | paths: 51 | perl: /usr 52 | pkg-config: 53 | buildable: False 54 | paths: 55 | pkg-config: /usr 56 | # LLNL toss3 CUDA 57 | cuda: 58 | modules: 59 | cuda@10.1.168: cuda/10.1.168 60 | buildable: False 61 | # LLNL toss3 mvapich2 62 | mvapich2: 63 | paths: 64 | mvapich2@2.2%gcc@7.3.1: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-gcc-7.3.1/ 65 | buildable: False 66 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/lassen_openmp/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: 7 | - gcc/7.3.1 8 | operating_system: rhel7 9 | paths: 10 | cc: /usr/tce/packages/gcc/gcc-7.3.1/bin/gcc 11 | cxx: /usr/tce/packages/gcc/gcc-7.3.1/bin/g++ 12 | f77: /usr/tce/packages/gcc/gcc-7.3.1/bin/gfortran 13 | fc: /usr/tce/packages/gcc/gcc-7.3.1/bin/gfortran 14 | spec: gcc@7.3.1 15 | target: ppc64le 16 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/lassen_openmp/packages.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------- 3 | # This file controls default concretization preferences for Spack. 4 | # 5 | # Settings here are versioned with Spack and are intended to provide 6 | # sensible defaults out of the box. Spack maintainers should edit this 7 | # file to keep it current. 8 | # 9 | # Users can override these settings by editing the following files. 10 | # 11 | # Per-spack-instance settings (overrides defaults): 12 | # $SPACK_ROOT/etc/spack/packages.yaml 13 | # 14 | # Per-user settings (overrides default and site settings): 15 | # ~/.spack/packages.yaml 16 | # ------------------------------------------------------------------------- 17 | packages: 18 | all: 19 | #variants: 20 | compiler: [gcc, intel, pgi, clang, xl, nag] 21 | providers: 22 | awk: [gawk] 23 | blas: [openblas] 24 | daal: [intel-daal] 25 | elf: [elfutils] 26 | golang: [gcc] 27 | ipp: [intel-ipp] 28 | java: [jdk] 29 | lapack: [openblas] 30 | mkl: [intel-mkl] 31 | mpe: [mpe2] 32 | mpi: [mvapich2] 33 | opencl: [pocl] 34 | openfoam: [openfoam-com, openfoam-org, foam-extend] 35 | pil: [py-pillow] 36 | scalapack: [netlib-scalapack] 37 | szip: [libszip, libaec] 38 | tbb: [intel-tbb] 39 | jpeg: [libjpeg-turbo, libjpeg] 40 | conduit: 41 | version: [master] 42 | python: 43 | variants: ~dbm 44 | cmake: 45 | paths: 46 | cmake@3.14.5: /usr/tce/packages/cmake/cmake-3.14.5/ 47 | buildable: False 48 | perl: 49 | buildable: False 50 | paths: 51 | perl: /usr 52 | pkg-config: 53 | buildable: False 54 | paths: 55 | pkg-config: /usr 56 | # LLNL toss3 CUDA 57 | cuda: 58 | modules: 59 | cuda@10.1.168: cuda/10.1.168 60 | buildable: False 61 | # LLNL toss3 mvapich2 62 | mvapich2: 63 | paths: 64 | mvapich2@2.2%gcc@7.3.1: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-gcc-7.3.1/ 65 | buildable: False 66 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/pascal_cuda/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: 7 | - gcc/4.9.3 8 | operating_system: rhel7 9 | paths: 10 | cc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gcc 11 | cxx: /usr/tce/packages/gcc/gcc-4.9.3/bin/g++ 12 | f77: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 13 | fc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 14 | spec: gcc@4.9.3 15 | target: x86_64 16 | - compiler: 17 | environment: {} 18 | extra_rpaths: [] 19 | flags: {} 20 | modules: 21 | - gcc/8.3.1 22 | operating_system: rhel7 23 | paths: 24 | cc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gcc 25 | cxx: /usr/tce/packages/gcc/gcc-8.3.1/bin/g++ 26 | f77: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran 27 | fc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran 28 | spec: gcc@8.3.1 29 | target: x86_64 30 | - compiler: 31 | environment: {} 32 | extra_rpaths: [] 33 | flags: {} 34 | modules: [] 35 | operating_system: rhel7 36 | paths: 37 | cc: /usr/tce/packages/intel/intel-17.0.0/bin/icc 38 | cxx: /usr/tce/packages/intel/intel-17.0.0/bin/icpc 39 | f77: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 40 | fc: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 41 | spec: intel@17.0.0 42 | target: x86_64 43 | - compiler: 44 | environment: {} 45 | extra_rpaths: [] 46 | flags: {} 47 | modules: [] 48 | operating_system: rhel7 49 | paths: 50 | cc: /usr/tce/packages/clang/clang-4.0.0/bin/clang 51 | cxx: /usr/tce/packages/clang/clang-4.0.0/bin/clang++ 52 | f77: None 53 | fc: None 54 | spec: clang@4.0.0 55 | target: x86_64 56 | 57 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/pascal_cuda/packages.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------- 3 | # This file controls default concretization preferences for Spack. 4 | # 5 | # Settings here are versioned with Spack and are intended to provide 6 | # sensible defaults out of the box. Spack maintainers should edit this 7 | # file to keep it current. 8 | # 9 | # Users can override these settings by editing the following files. 10 | # 11 | # Per-spack-instance settings (overrides defaults): 12 | # $SPACK_ROOT/etc/spack/packages.yaml 13 | # 14 | # Per-user settings (overrides default and site settings): 15 | # ~/.spack/packages.yaml 16 | # ------------------------------------------------------------------------- 17 | packages: 18 | all: 19 | variants: cuda_arch=60 ~shared~openmp~python+cuda 20 | compiler: [gcc, intel, pgi, clang, xl, nag] 21 | providers: 22 | awk: [gawk] 23 | blas: [openblas] 24 | daal: [intel-daal] 25 | elf: [elfutils] 26 | golang: [gcc] 27 | ipp: [intel-ipp] 28 | java: [jdk] 29 | lapack: [openblas] 30 | mkl: [intel-mkl] 31 | mpe: [mpe2] 32 | mpi: [mvapich2] 33 | opencl: [pocl] 34 | openfoam: [openfoam-com, openfoam-org, foam-extend] 35 | pil: [py-pillow] 36 | scalapack: [netlib-scalapack] 37 | szip: [libszip, libaec] 38 | tbb: [intel-tbb] 39 | jpeg: [libjpeg-turbo, libjpeg] 40 | conduit: 41 | version: [master] 42 | python: 43 | variants: ~dbm 44 | cmake: 45 | paths: 46 | cmake@3.14.5: /usr/tce/packages/cmake/cmake-3.14.5/ 47 | buildable: False 48 | perl: 49 | buildable: False 50 | paths: 51 | perl: /usr 52 | pkg-config: 53 | buildable: False 54 | paths: 55 | pkg-config: /usr 56 | # LLNL toss3 CUDA 57 | cuda: 58 | modules: 59 | cuda@10.1: cuda/10.1.168 60 | buildable: False 61 | # LLNL toss3 mvapich2 62 | mvapich2: 63 | paths: 64 | mvapich2@2.2%gcc@4.9.3: /usr/tce/packages/mvapich2/mvapich2-2.2-gcc-4.9.3 65 | mvapich2@2.3%gcc@8.3.1: /usr/tce/packages/mvapich2/mvapich2-2.3-gcc-8.3.1 66 | mvapich2@2.2%intel@17.0.0: /usr/tce/packages/mvapich2/mvapich2-2.2-intel-17.0.0 67 | mvapich2@2.2%clang@4.0.0: /usr/tce/packages/mvapich2/mvapich2-2.2-clang-4.0.0 68 | buildable: False 69 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/pascal_openmp/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: 7 | - gcc/4.9.3 8 | operating_system: rhel7 9 | paths: 10 | cc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gcc 11 | cxx: /usr/tce/packages/gcc/gcc-4.9.3/bin/g++ 12 | f77: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 13 | fc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 14 | spec: gcc@4.9.3 15 | target: x86_64 16 | - compiler: 17 | environment: {} 18 | extra_rpaths: [] 19 | flags: {} 20 | modules: 21 | - gcc/8.3.1 22 | operating_system: rhel7 23 | paths: 24 | cc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gcc 25 | cxx: /usr/tce/packages/gcc/gcc-8.3.1/bin/g++ 26 | f77: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran 27 | fc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran 28 | spec: gcc@8.3.1 29 | target: x86_64 30 | - compiler: 31 | environment: {} 32 | extra_rpaths: [] 33 | flags: {} 34 | modules: [] 35 | operating_system: rhel7 36 | paths: 37 | cc: /usr/tce/packages/intel/intel-17.0.0/bin/icc 38 | cxx: /usr/tce/packages/intel/intel-17.0.0/bin/icpc 39 | f77: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 40 | fc: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 41 | spec: intel@17.0.0 42 | target: x86_64 43 | - compiler: 44 | environment: {} 45 | extra_rpaths: [] 46 | flags: {} 47 | modules: [] 48 | operating_system: rhel7 49 | paths: 50 | cc: /usr/tce/packages/clang/clang-4.0.0/bin/clang 51 | cxx: /usr/tce/packages/clang/clang-4.0.0/bin/clang++ 52 | f77: None 53 | fc: None 54 | spec: clang@4.0.0 55 | target: x86_64 56 | 57 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/pascal_openmp/packages.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------- 3 | # This file controls default concretization preferences for Spack. 4 | # 5 | # Settings here are versioned with Spack and are intended to provide 6 | # sensible defaults out of the box. Spack maintainers should edit this 7 | # file to keep it current. 8 | # 9 | # Users can override these settings by editing the following files. 10 | # 11 | # Per-spack-instance settings (overrides defaults): 12 | # $SPACK_ROOT/etc/spack/packages.yaml 13 | # 14 | # Per-user settings (overrides default and site settings): 15 | # ~/.spack/packages.yaml 16 | # ------------------------------------------------------------------------- 17 | packages: 18 | all: 19 | compiler: [gcc, intel, pgi, clang, xl, nag] 20 | providers: 21 | awk: [gawk] 22 | blas: [openblas] 23 | daal: [intel-daal] 24 | elf: [elfutils] 25 | golang: [gcc] 26 | ipp: [intel-ipp] 27 | java: [jdk] 28 | lapack: [openblas] 29 | mkl: [intel-mkl] 30 | mpe: [mpe2] 31 | mpi: [mvapich2] 32 | opencl: [pocl] 33 | openfoam: [openfoam-com, openfoam-org, foam-extend] 34 | pil: [py-pillow] 35 | scalapack: [netlib-scalapack] 36 | szip: [libszip, libaec] 37 | tbb: [intel-tbb] 38 | jpeg: [libjpeg-turbo, libjpeg] 39 | conduit: 40 | version: [master] 41 | python: 42 | variants: ~dbm 43 | cmake: 44 | paths: 45 | cmake@3.14.5: /usr/tce/packages/cmake/cmake-3.14.5/ 46 | buildable: False 47 | perl: 48 | buildable: False 49 | paths: 50 | perl: /usr 51 | pkg-config: 52 | buildable: False 53 | paths: 54 | pkg-config: /usr 55 | # LLNL toss3 CUDA 56 | cuda: 57 | modules: 58 | cuda@9.2: cuda/9.2.88 59 | buildable: False 60 | # LLNL toss3 mvapich2 61 | mvapich2: 62 | paths: 63 | mvapich2@2.2%gcc@4.9.3: /usr/tce/packages/mvapich2/mvapich2-2.2-gcc-4.9.3 64 | mvapich2@2.3%gcc@8.3.1: /usr/tce/packages/mvapich2/mvapich2-2.3-gcc-8.3.1 65 | mvapich2@2.2%intel@17.0.0: /usr/tce/packages/mvapich2/mvapich2-2.2-intel-17.0.0 66 | mvapich2@2.2%clang@4.0.0: /usr/tce/packages/mvapich2/mvapich2-2.2-clang-4.0.0 67 | buildable: False 68 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/rzansel/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: 7 | - gcc/4.9.3 8 | operating_system: rhel7 9 | paths: 10 | cc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gcc 11 | cxx: /usr/tce/packages/gcc/gcc-4.9.3/bin/g++ 12 | f77: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 13 | fc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 14 | spec: gcc@4.9.3 15 | target: ppc64le 16 | - compiler: 17 | environment: {} 18 | extra_rpaths: [] 19 | flags: {} 20 | modules: [] 21 | operating_system: rhel7 22 | paths: 23 | cc: /usr/tce/packages/intel/intel-17.0.0/bin/icc 24 | cxx: /usr/tce/packages/intel/intel-17.0.0/bin/icpc 25 | f77: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 26 | fc: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 27 | spec: intel@17.0.0 28 | target: ppc64le 29 | - compiler: 30 | environment: {} 31 | extra_rpaths: [] 32 | flags: {} 33 | modules: [] 34 | operating_system: rhel7 35 | paths: 36 | cc: /usr/tce/packages/clang/clang-4.0.0/bin/clang 37 | cxx: /usr/tce/packages/clang/clang-4.0.0/bin/clang++ 38 | f77: None 39 | fc: None 40 | spec: clang@4.0.0 41 | target: ppc64le 42 | 43 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/rzansel/packages.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------- 3 | # This file controls default concretization preferences for Spack. 4 | # 5 | # Settings here are versioned with Spack and are intended to provide 6 | # sensible defaults out of the box. Spack maintainers should edit this 7 | # file to keep it current. 8 | # 9 | # Users can override these settings by editing the following files. 10 | # 11 | # Per-spack-instance settings (overrides defaults): 12 | # $SPACK_ROOT/etc/spack/packages.yaml 13 | # 14 | # Per-user settings (overrides default and site settings): 15 | # ~/.spack/packages.yaml 16 | # ------------------------------------------------------------------------- 17 | packages: 18 | all: 19 | variants: ~shared~python+cuda+openmp cuda_arch=70 20 | compiler: [gcc, intel, pgi, clang, xl, nag] 21 | providers: 22 | awk: [gawk] 23 | blas: [openblas] 24 | daal: [intel-daal] 25 | elf: [elfutils] 26 | golang: [gcc] 27 | ipp: [intel-ipp] 28 | java: [jdk] 29 | lapack: [openblas] 30 | mkl: [intel-mkl] 31 | mpe: [mpe2] 32 | mpi: [mvapich2] 33 | opencl: [pocl] 34 | openfoam: [openfoam-com, openfoam-org, foam-extend] 35 | pil: [py-pillow] 36 | scalapack: [netlib-scalapack] 37 | szip: [libszip, libaec] 38 | tbb: [intel-tbb] 39 | jpeg: [libjpeg-turbo, libjpeg] 40 | conduit: 41 | version: [master] 42 | python: 43 | variants: ~dbm 44 | cmake: 45 | paths: 46 | cmake@3.14.5: /usr/tce/packages/cmake/cmake-3.14.5/ 47 | buildable: False 48 | perl: 49 | buildable: False 50 | paths: 51 | perl: /usr 52 | pkg-config: 53 | buildable: False 54 | paths: 55 | pkg-config: /usr 56 | # LLNL toss3 CUDA 57 | cuda: 58 | modules: 59 | cuda@10.1.168: cuda/10.1.168 60 | buildable: False 61 | # LLNL toss3 mvapich2 62 | mvapich2: 63 | paths: 64 | mvapich2@2.2%gcc@4.9.3: /usr/tce/packages/spectrum-mpi/spectrum-mpi-2019.06.24-gcc-4.9.3/ 65 | buildable: False 66 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/surface_cuda/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: 7 | - gcc/4.9.3 8 | operating_system: rhel7 9 | paths: 10 | cc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gcc 11 | cxx: /usr/tce/packages/gcc/gcc-4.9.3/bin/g++ 12 | f77: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 13 | fc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 14 | spec: gcc@4.9.3 15 | target: x86_64 16 | - compiler: 17 | environment: {} 18 | extra_rpaths: [] 19 | flags: {} 20 | modules: [] 21 | operating_system: rhel7 22 | paths: 23 | cc: /usr/tce/packages/intel/intel-17.0.0/bin/icc 24 | cxx: /usr/tce/packages/intel/intel-17.0.0/bin/icpc 25 | f77: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 26 | fc: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 27 | spec: intel@17.0.0 28 | target: x86_64 29 | - compiler: 30 | environment: {} 31 | extra_rpaths: [] 32 | flags: {} 33 | modules: [] 34 | operating_system: rhel7 35 | paths: 36 | cc: /usr/tce/packages/clang/clang-4.0.0/bin/clang 37 | cxx: /usr/tce/packages/clang/clang-4.0.0/bin/clang++ 38 | f77: None 39 | fc: None 40 | spec: clang@4.0.0 41 | target: x86_64 42 | 43 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/llnl/surface_cuda/packages.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------- 3 | # This file controls default concretization preferences for Spack. 4 | # 5 | # Settings here are versioned with Spack and are intended to provide 6 | # sensible defaults out of the box. Spack maintainers should edit this 7 | # file to keep it current. 8 | # 9 | # Users can override these settings by editing the following files. 10 | # 11 | # Per-spack-instance settings (overrides defaults): 12 | # $SPACK_ROOT/etc/spack/packages.yaml 13 | # 14 | # Per-user settings (overrides default and site settings): 15 | # ~/.spack/packages.yaml 16 | # ------------------------------------------------------------------------- 17 | packages: 18 | all: 19 | variants: cuda_arch=30 20 | compiler: [gcc, intel, pgi, clang, xl, nag] 21 | providers: 22 | awk: [gawk] 23 | blas: [openblas] 24 | daal: [intel-daal] 25 | elf: [elfutils] 26 | golang: [gcc] 27 | ipp: [intel-ipp] 28 | java: [jdk] 29 | lapack: [openblas] 30 | mkl: [intel-mkl] 31 | mpe: [mpe2] 32 | mpi: [mvapich2] 33 | opencl: [pocl] 34 | openfoam: [openfoam-com, openfoam-org, foam-extend] 35 | pil: [py-pillow] 36 | scalapack: [netlib-scalapack] 37 | szip: [libszip, libaec] 38 | tbb: [intel-tbb] 39 | jpeg: [libjpeg-turbo, libjpeg] 40 | conduit: 41 | version: [master] 42 | python: 43 | variants: ~dbm 44 | cmake: 45 | paths: 46 | cmake@3.14.5: /usr/tce/packages/cmake/cmake-3.14.5/ 47 | buildable: False 48 | perl: 49 | buildable: False 50 | paths: 51 | perl: /usr 52 | pkg-config: 53 | buildable: False 54 | paths: 55 | pkg-config: /usr 56 | # LLNL toss3 CUDA 57 | cuda: 58 | modules: 59 | cuda@10.1: cuda/10.1.168 60 | buildable: False 61 | # LLNL toss3 mvapich2 62 | mvapich2: 63 | paths: 64 | mvapich2@2.2%gcc@4.9.3: /usr/tce/packages/mvapich2/mvapich2-2.2-gcc-4.9.3 65 | mvapich2@2.2%intel@17.0.0: /usr/tce/packages/mvapich2/mvapich2-2.2-intel-17.0.0 66 | mvapich2@2.2%clang@4.0.0: /usr/tce/packages/mvapich2/mvapich2-2.2-clang-4.0.0 67 | buildable: False 68 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/toss_3_x86_64_ib/compilers.yaml: -------------------------------------------------------------------------------- 1 | compilers: 2 | - compiler: 3 | environment: {} 4 | extra_rpaths: [] 5 | flags: {} 6 | modules: [] 7 | operating_system: rhel7 8 | paths: 9 | cc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gcc 10 | cxx: /usr/tce/packages/gcc/gcc-4.9.3/bin/g++ 11 | f77: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 12 | fc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran 13 | spec: gcc@4.9.3 14 | target: x86_64 15 | - compiler: 16 | environment: {} 17 | extra_rpaths: [] 18 | flags: {} 19 | modules: [] 20 | operating_system: rhel7 21 | paths: 22 | cc: /usr/tce/packages/intel/intel-17.0.0/bin/icc 23 | cxx: /usr/tce/packages/intel/intel-17.0.0/bin/icpc 24 | f77: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 25 | fc: /usr/tce/packages/intel/intel-17.0.0/bin/ifort 26 | spec: intel@17.0.0 27 | target: x86_64 28 | - compiler: 29 | environment: {} 30 | extra_rpaths: [] 31 | flags: {} 32 | modules: [] 33 | operating_system: rhel7 34 | paths: 35 | cc: /usr/tce/packages/clang/clang-3.9.0/bin/clang 36 | cxx: /usr/tce/packages/clang/clang-3.9.0/bin/clang++ 37 | f77: None 38 | fc: None 39 | spec: clang@3.9.0 40 | target: x86_64 41 | 42 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/toss_3_x86_64_ib/packages.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------- 3 | # This file controls default concretization preferences for Spack. 4 | # 5 | # Settings here are versioned with Spack and are intended to provide 6 | # sensible defaults out of the box. Spack maintainers should edit this 7 | # file to keep it current. 8 | # 9 | # Users can override these settings by editing the following files. 10 | # 11 | # Per-spack-instance settings (overrides defaults): 12 | # $SPACK_ROOT/etc/spack/packages.yaml 13 | # 14 | # Per-user settings (overrides default and site settings): 15 | # ~/.spack/packages.yaml 16 | # ------------------------------------------------------------------------- 17 | packages: 18 | all: 19 | compiler: [gcc, intel, pgi, clang, xl, nag] 20 | providers: 21 | awk: [gawk] 22 | blas: [openblas] 23 | daal: [intel-daal] 24 | elf: [elfutils] 25 | golang: [gcc] 26 | ipp: [intel-ipp] 27 | java: [jdk] 28 | lapack: [openblas] 29 | mkl: [intel-mkl] 30 | mpe: [mpe2] 31 | mpi: [mvapich2] 32 | opencl: [pocl] 33 | openfoam: [openfoam-com, openfoam-org, foam-extend] 34 | pil: [py-pillow] 35 | scalapack: [netlib-scalapack] 36 | szip: [libszip, libaec] 37 | tbb: [intel-tbb] 38 | jpeg: [libjpeg-turbo, libjpeg] 39 | # LLNL toss3 CUDA 40 | cuda: 41 | paths: 42 | cuda@8.0: /opt/cudatoolkit-8.0 43 | buildable: False 44 | # LLNL toss3 mvapich2 45 | mvapich2: 46 | paths: 47 | mvapich2@2.2%gcc@4.9.3: /usr/tce/packages/mvapich2/mvapich2-2.2-gcc-4.9.3 48 | mvapich2@2.2%intel@17.0.0: /usr/tce/packages/mvapich2/mvapich2-2.2-intel-17.0.0 49 | mvapich2@2.2%clang@3.9.0: /usr/tce/packages/mvapich2/mvapich2-2.2-clang-3.9.0 50 | buildable: False 51 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/old_configs/spack_configs/travis/packages.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | openmpi: 3 | buildable: False 4 | paths: 5 | openmpi: /usr 6 | gdbm: 7 | buildable: False 8 | paths: 9 | gdbm: /usr 10 | bzip2: 11 | buildable: False 12 | paths: 13 | bzip2: /usr 14 | readline: 15 | buildable: False 16 | paths: 17 | readline: /usr 18 | sqlite: 19 | buildable: False 20 | paths: 21 | sqlite: /usr 22 | ncurses: 23 | buildable: False 24 | paths: 25 | ncurses: /usr 26 | pkg-confg: 27 | buildable: False 28 | paths: 29 | pkg-confg: /usr 30 | openssl: 31 | buildable: False 32 | paths: 33 | openssl: /usr 34 | openblas: 35 | buildable: False 36 | paths: 37 | openblas: /usr 38 | zlib: 39 | buildable: False 40 | paths: 41 | zlib: /usr -------------------------------------------------------------------------------- /scripts/uberenv_configs/packages/uberenv-vtk-h/uberenv-vtk-h.tar.gz: -------------------------------------------------------------------------------- 1 | empty.txt000644 145410 145410 00000000000 12542116267 013075 0ustar00harrison37000000 000000 -------------------------------------------------------------------------------- /scripts/uberenv_configs/packages/vtk-m/disable_flying_edges.patch: -------------------------------------------------------------------------------- 1 | diff --git a/vtkm/worklet/Contour.h b/vtkm/worklet/Contour.h 2 | index c28c5ec09..70737777f 100644 3 | --- a/vtkm/worklet/Contour.h 4 | +++ b/vtkm/worklet/Contour.h 5 | @@ -46,7 +46,8 @@ struct DeduceCoordType 6 | vtkm::cont::CellSetSingleType<>& result, 7 | Args&&... args) const 8 | { 9 | - result = flying_edges::execute(cells, coords, std::forward(args)...); 10 | + result = marching_cells::execute(cells, coords, std::forward(args)...); 11 | + //result = flying_edges::execute(cells, coords, std::forward(args)...); 12 | } 13 | }; 14 | 15 | -------------------------------------------------------------------------------- /scripts/uberenv_configs/packages/vtk-m/vtkmdiy_fpic.patch: -------------------------------------------------------------------------------- 1 | diff --git a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt 2 | index 5211330..3e991f3 100644 3 | --- a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt 4 | +++ b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt 5 | @@ -139,6 +139,7 @@ function(add_diy_mpi_library use_mpi) 6 | endif() 7 | 8 | add_library(${lib_name} ${sources}) 9 | + set_property(TARGET ${lib_name} PROPERTY POSITION_INDEPENDENT_CODE ON) 10 | target_compile_features(${lib_name} PRIVATE cxx_std_11) 11 | target_compile_definitions(${lib_name} 12 | PRIVATE -DVTKMDIY_HAS_MPI=${has_mpi_val} 13 | -------------------------------------------------------------------------------- /src/cmake/VTKhBuildType.cmake: -------------------------------------------------------------------------------- 1 | #============================================================================== 2 | # See License.txt 3 | #============================================================================== 4 | 5 | ##============================================================================ 6 | ## Copyright (c) Kitware, Inc. 7 | ## All rights reserved. 8 | ## See LICENSE.txt for details. 9 | ## This software is distributed WITHOUT ANY WARRANTY; without even 10 | ## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 11 | ## PURPOSE. See the above copyright notice for more information. 12 | ## 13 | ## Copyright 2017 Sandia Corporation. 14 | ## Copyright 2017 UT-Battelle, LLC. 15 | ## Copyright 2017 Los Alamos National Security. 16 | ## 17 | ## Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 18 | ## the U.S. Government retains certain rights in this software. 19 | ## 20 | ## Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National 21 | ## Laboratory (LANL), the U.S. Government retains certain rights in 22 | ## this software. 23 | ##============================================================================ 24 | 25 | #============================================================================== 26 | # Set a default build type if none was specified 27 | #============================================================================== 28 | 29 | set(default_build_type "Release") 30 | if(EXISTS "${CMAKE_SOURCE_DIR}/.git") 31 | set(default_build_type "Debug") 32 | endif() 33 | 34 | if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) 35 | message(STATUS "Setting build type to '${default_build_type}' as none was specified.") 36 | set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE 37 | STRING "Choose the type of build." FORCE) 38 | # Set the possible values of build type for cmake-gui 39 | set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" 40 | "MinSizeRel" "RelWithDebInfo") 41 | endif() 42 | -------------------------------------------------------------------------------- /src/cmake/VTKhConfig.cmake.in: -------------------------------------------------------------------------------- 1 | #============================================================================== 2 | # See License.txt 3 | #============================================================================== 4 | 5 | # When this file is run by CMake through the find_package command, the 6 | # following variables will be defined: 7 | # 8 | # 9 | # 10 | # Note that the VTK-h package supports several components. It is important 11 | # to request the components being used (as done through find_package arguments). 12 | # If no components are requested, then the dependent packages will not be 13 | # found and loaded. The following components are supported: 14 | # 15 | # Core Rendering Filters 16 | # 17 | 18 | cmake_minimum_required(VERSION 3.3 FATAL_ERROR) 19 | 20 | @PACKAGE_INIT@ 21 | 22 | 23 | # The VTKh version number 24 | set(VTKh_VERSION_MAJOR "@VTKh_VERSION_MAJOR@") 25 | set(VTKh_VERSION_MINOR "@VTKh_VERSION_MINOR@") 26 | set(VTKh_VERSION_PATCH "@VTKh_VERSION_PATCH@") 27 | set(VTKh_VERSION_FULL "@VTKh_VERSION_FULL@") 28 | set(VTKh_VERSION "@VTKh_VERSION@") 29 | 30 | set(VTKh_INCLUDE_DIRS "@PACKAGE_VTKh_INSTALL_INCLUDE_DIR@") 31 | 32 | # This is true when the package is still in the build directory (not installed) 33 | if(CMAKE_CURRENT_LIST_DIR STREQUAL "@VTKh_BINARY_DIR@/@VTKh_INSTALL_CONFIG_DIR@") 34 | set(VTKh_PACKAGE_IN_BUILD TRUE) 35 | endif() 36 | 37 | if(NOT VTKM_DIR) 38 | set(VTKM_DIR "@VTKM_DIR@") 39 | message(STATUS "VTKh automatically found VTKM_DIR: ${VTKM_DIR}") 40 | else() 41 | message(STATUS "VTKh using provided path VTKM_DIR: ${VTKM_DIR}") 42 | endif() 43 | 44 | # set this before we load vtkm because package is overridden by vtkm 45 | # Load the library exports, but only if not compiling VTK-h itself 46 | set_and_check(VTKh_CONFIG_DIR "@PACKAGE_VTKh_INSTALL_CONFIG_DIR@") 47 | if(NOT "${CMAKE_BINARY_DIR}" STREQUAL "@VTKh_BINARY_DIR@") 48 | include(${VTKh_CONFIG_DIR}/VTKhTargets.cmake) 49 | endif() 50 | 51 | # use VTKM_DIR to setup the options that cmake's find VTKm needs 52 | file(GLOB VTKm_DIR "${VTKM_DIR}/lib/cmake/vtkm-*") 53 | if(NOT VTKm_DIR) 54 | MESSAGE(FATAL_ERROR "Failed to find VTKm at VTKM_DIR=${VTKM_DIR}/lib/cmake/vtk-*") 55 | endif() 56 | include(${VTKm_DIR}/VTKmConfig.cmake) 57 | find_package(VTKm REQUIRED QUIET) 58 | set(VTKM_FOUND TRUE) 59 | -------------------------------------------------------------------------------- /src/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2015-2019, Lawrence Livermore National Security, LLC. 3 | # 4 | # Produced at the Lawrence Livermore National Laboratory 5 | # 6 | # LLNL-CODE-716457 7 | # 8 | # All rights reserved. 9 | # 10 | # This file is part of Ascent. 11 | # 12 | # For details, see: http://ascent.readthedocs.io/. 13 | # 14 | # Please also read ascent/LICENSE 15 | # 16 | # Redistribution and use in source and binary forms, with or without 17 | # modification, are permitted provided that the following conditions are met: 18 | # 19 | # * Redistributions of source code must retain the above copyright notice, 20 | # this list of conditions and the disclaimer below. 21 | # 22 | # * Redistributions in binary form must reproduce the above copyright notice, 23 | # this list of conditions and the disclaimer (as noted below) in the 24 | # documentation and/or other materials provided with the distribution. 25 | # 26 | # * Neither the name of the LLNS/LLNL nor the names of its contributors may 27 | # be used to endorse or promote products derived from this software without 28 | # specific prior written permission. 29 | # 30 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 31 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 32 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 33 | # ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, 34 | # LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY 35 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37 | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38 | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39 | # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40 | # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41 | # POSSIBILITY OF SUCH DAMAGE. 42 | # 43 | ############################################################################### 44 | 45 | ############################################################################### 46 | # 47 | # file: src/examples/CMakeLists.txt 48 | # 49 | ############################################################################### 50 | # install using examples 51 | install(DIRECTORY using-with-cmake 52 | DESTINATION examples/vtk-h) 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/examples/docker/ubuntu/example_run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ############################################################################### 3 | # Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. 4 | # 5 | # Produced at the Lawrence Livermore National Laboratory 6 | # 7 | # LLNL-CODE-716457 8 | # 9 | # All rights reserved. 10 | # 11 | # This file is part of Ascent. 12 | # 13 | # For details, see: http://software.llnl.gov/ascent/. 14 | # 15 | # Please also read ascent/LICENSE 16 | # 17 | # Redistribution and use in source and binary forms, with or without 18 | # modification, are permitted provided that the following conditions are met: 19 | # 20 | # * Redistributions of source code must retain the above copyright notice, 21 | # this list of conditions and the disclaimer below. 22 | # 23 | # * Redistributions in binary form must reproduce the above copyright notice, 24 | # this list of conditions and the disclaimer (as noted below) in the 25 | # documentation and/or other materials provided with the distribution. 26 | # 27 | # * Neither the name of the LLNS/LLNL nor the names of its contributors may 28 | # be used to endorse or promote products derived from this software without 29 | # specific prior written permission. 30 | # 31 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 32 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 33 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 34 | # ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, 35 | # LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY 36 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38 | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 40 | # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 41 | # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 | # POSSIBILITY OF SUCH DAMAGE. 43 | # 44 | ############################################################################### 45 | 46 | # exec docker run to create a container from our image 47 | echo "docker run -t -i vtkh-ubuntu:current" 48 | docker run -t -i vtkh-ubuntu:current 49 | 50 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_contour_tree_par.cpp: -------------------------------------------------------------------------------- 1 | t_vtk-h_contour_tree.cpp -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_dataset.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include "t_test_utils.hpp" 12 | 13 | #include 14 | 15 | 16 | 17 | //----------------------------------------------------------------------------- 18 | TEST(vtkh_dataset, vtkh_range) 19 | { 20 | vtkh::DataSet data_set; 21 | 22 | const int base_size = 32; 23 | const int num_blocks = 2; 24 | 25 | data_set.AddDomain(CreateTestData(0, num_blocks, base_size), 0); 26 | data_set.AddDomain(CreateTestData(1, num_blocks, base_size), 1); 27 | 28 | vtkm::Bounds data_bounds = data_set.GetBounds(); 29 | 30 | const double max_val = base_size * num_blocks; 31 | const double min_val = 0.; 32 | 33 | std::cout< vec_range; 44 | vec_range = data_set.GetGlobalRange("vector_data_Float64"); 45 | 46 | EXPECT_EQ(3, vec_range.GetNumberOfValues()); 47 | 48 | 49 | vtkm::cont::ArrayHandle scalar_range; 50 | scalar_range = data_set.GetGlobalRange("point_data_Float64"); 51 | EXPECT_EQ(1, scalar_range.GetNumberOfValues()); 52 | 53 | vtkm::Float64 min_coord = 0.; 54 | vtkm::Float64 max_coord = vtkm::Float64(base_size * num_blocks); 55 | 56 | vtkm::Bounds bounds = data_set.GetBounds(); 57 | EXPECT_EQ(min_coord, bounds.X.Min); 58 | EXPECT_EQ(min_coord, bounds.Y.Min); 59 | EXPECT_EQ(min_coord, bounds.Z.Min); 60 | EXPECT_EQ(max_coord, bounds.X.Max); 61 | EXPECT_EQ(max_coord, bounds.Y.Max); 62 | EXPECT_EQ(max_coord, bounds.Z.Max); 63 | int topo_dims; 64 | EXPECT_EQ(true, data_set.IsStructured(topo_dims)); 65 | EXPECT_EQ(3, topo_dims); 66 | 67 | } 68 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_histogram_par.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include "t_test_utils.hpp" 13 | 14 | #include 15 | #include 16 | 17 | //---------------------------------------------------------------------------- 18 | TEST(vtkh_histogram_par, vtkh_histogram_clamp_range) 19 | { 20 | 21 | MPI_Init(NULL, NULL); 22 | int comm_size, rank; 23 | MPI_Comm_size(MPI_COMM_WORLD, &comm_size); 24 | MPI_Comm_rank(MPI_COMM_WORLD, &rank); 25 | 26 | vtkh::SetMPICommHandle(MPI_Comm_c2f(MPI_COMM_WORLD)); 27 | vtkh::DataSet data_set; 28 | 29 | const int base_size = 32; 30 | const int blocks_per_rank = 2; 31 | const int num_blocks = comm_size * blocks_per_rank; 32 | 33 | for(int i = 0; i < blocks_per_rank; ++i) 34 | { 35 | int domain_id = rank * blocks_per_rank + i; 36 | data_set.AddDomain(CreateTestData(domain_id, num_blocks, base_size), domain_id); 37 | } 38 | 39 | vtkh::Histogram::HistogramResult res; 40 | vtkh::Histogram histogrammer; 41 | histogrammer.SetNumBins(128); 42 | 43 | vtkm::Range range; 44 | range.Min = 0; 45 | range.Max = 100; 46 | 47 | histogrammer.SetRange(range); 48 | res = histogrammer.Run(data_set,"point_data_Float64"); 49 | 50 | if(rank == 0) res.Print(std::cout); 51 | 52 | MPI_Finalize(); 53 | } 54 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_log.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "t_test_utils.hpp" 15 | 16 | #include 17 | 18 | 19 | 20 | //---------------------------------------------------------------------------- 21 | TEST(vtkh_log, vtkh_log) 22 | { 23 | vtkh::DataSet data_set; 24 | 25 | const int base_size = 32; 26 | const int num_blocks = 2; 27 | 28 | for(int i = 0; i < num_blocks; ++i) 29 | { 30 | data_set.AddDomain(CreateTestData(i, num_blocks, base_size), i); 31 | } 32 | 33 | vtkh::Log logger; 34 | logger.SetInput(&data_set); 35 | logger.SetField("point_data_Float64"); 36 | logger.SetResultField("log(point_data_Float64)"); 37 | 38 | logger.Update(); 39 | vtkh::DataSet *output = logger.GetOutput(); 40 | vtkm::Bounds bounds = output->GetGlobalBounds(); 41 | 42 | vtkm::rendering::Camera camera; 43 | camera.SetPosition(vtkm::Vec(-16, -16, -16)); 44 | camera.ResetToBounds(bounds); 45 | vtkh::Render render = vtkh::MakeRender(512, 46 | 512, 47 | camera, 48 | *output, 49 | "log"); 50 | vtkh::RayTracer tracer; 51 | tracer.SetInput(output); 52 | tracer.SetField("log(point_data_Float64)"); 53 | 54 | vtkh::Scene scene; 55 | scene.AddRender(render); 56 | scene.AddRenderer(&tracer); 57 | scene.Render(); 58 | 59 | delete output; 60 | } 61 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_no_op.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "t_test_utils.hpp" 15 | 16 | #include 17 | 18 | 19 | 20 | //---------------------------------------------------------------------------- 21 | TEST(vtkh_no_op, vtkh_serial_no_op) 22 | { 23 | vtkh::DataSet data_set; 24 | 25 | const int base_size = 32; 26 | const int num_blocks = 2; 27 | 28 | for(int i = 0; i < num_blocks; ++i) 29 | { 30 | data_set.AddDomain(CreateTestData(i, num_blocks, base_size), i); 31 | } 32 | 33 | vtkh::NoOp noop; 34 | noop.SetInput(&data_set); 35 | noop.SetField("point_data_Float64"); 36 | 37 | noop.Update(); 38 | 39 | vtkh::DataSet *noop_output = noop.GetOutput(); 40 | 41 | vtkm::Bounds bounds = noop_output->GetGlobalBounds(); 42 | float bg_color[4] = { 0.f, 0.f, 0.f, 1.f}; 43 | vtkm::rendering::Camera camera; 44 | camera.ResetToBounds(bounds); 45 | vtkh::Render render = vtkh::MakeRender(512, 46 | 512, 47 | camera, 48 | *noop_output, 49 | "noop", 50 | bg_color); 51 | vtkh::RayTracer tracer; 52 | tracer.SetInput(noop_output); 53 | tracer.SetField("cell_data_Float64"); 54 | 55 | vtkh::Scene scene; 56 | scene.AddRenderer(&tracer); 57 | scene.AddRender(render); 58 | scene.Render(); 59 | 60 | delete noop_output; 61 | } 62 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_no_op_par.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "t_test_utils.hpp" 15 | 16 | #include 17 | #include 18 | 19 | 20 | //---------------------------------------------------------------------------- 21 | TEST(vtkh_no_op_par, vtkh_parallel_no_op) 22 | { 23 | 24 | MPI_Init(NULL, NULL); 25 | int comm_size, rank; 26 | MPI_Comm_size(MPI_COMM_WORLD, &comm_size); 27 | MPI_Comm_rank(MPI_COMM_WORLD, &rank); 28 | 29 | vtkh::SetMPICommHandle(MPI_Comm_c2f(MPI_COMM_WORLD)); 30 | vtkh::DataSet data_set; 31 | 32 | const int base_size = 32; 33 | const int blocks_per_rank = 2; 34 | const int num_blocks = comm_size * blocks_per_rank; 35 | 36 | for(int i = 0; i < blocks_per_rank; ++i) 37 | { 38 | int domain_id = rank * blocks_per_rank + i; 39 | data_set.AddDomain(CreateTestData(domain_id, num_blocks, base_size), domain_id); 40 | } 41 | 42 | vtkh::NoOp noop; 43 | noop.SetInput(&data_set); 44 | noop.SetField("point_data_Float64"); 45 | 46 | noop.Update(); 47 | 48 | vtkh::DataSet *noop_output = noop.GetOutput(); 49 | 50 | vtkm::Bounds bounds = noop_output->GetGlobalBounds(); 51 | float bg_color[4] = { 0.f, 0.f, 0.f, 1.f}; 52 | vtkm::rendering::Camera camera; 53 | camera.ResetToBounds(bounds); 54 | vtkh::Render render = vtkh::MakeRender(512, 55 | 512, 56 | camera, 57 | *noop_output, 58 | "noop", 59 | bg_color); 60 | vtkh::RayTracer tracer; 61 | tracer.SetInput(noop_output); 62 | tracer.SetField("cell_data_Float64"); 63 | 64 | vtkh::Scene scene; 65 | scene.AddRenderer(&tracer); 66 | scene.AddRender(render); 67 | scene.Render(); 68 | 69 | delete noop_output; 70 | 71 | MPI_Finalize(); 72 | } 73 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_raytracer.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include "t_test_utils.hpp" 14 | 15 | #include 16 | 17 | 18 | 19 | //---------------------------------------------------------------------------- 20 | TEST(vtkh_raytracer, vtkh_serial_render) 21 | { 22 | vtkh::DataSet data_set; 23 | 24 | const int base_size = 32; 25 | const int num_blocks = 2; 26 | 27 | for(int i = 0; i < num_blocks; ++i) 28 | { 29 | data_set.AddDomain(CreateTestData(i, num_blocks, base_size), i); 30 | } 31 | 32 | vtkm::Bounds bounds = data_set.GetGlobalBounds(); 33 | 34 | vtkm::rendering::Camera camera; 35 | camera.SetPosition(vtkm::Vec(-16, -16, -16)); 36 | camera.ResetToBounds(bounds); 37 | vtkh::Render render = vtkh::MakeRender(512, 38 | 512, 39 | camera, 40 | data_set, 41 | "ray_tracer"); 42 | vtkh::RayTracer tracer; 43 | 44 | tracer.SetInput(&data_set); 45 | tracer.SetField("point_data_Float64"); 46 | 47 | vtkh::Scene scene; 48 | scene.AddRender(render); 49 | scene.AddRenderer(&tracer); 50 | scene.Render(); 51 | } 52 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_raytracer_par.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "t_test_utils.hpp" 15 | 16 | #include 17 | #include 18 | 19 | 20 | //---------------------------------------------------------------------------- 21 | TEST(vtkh_raytracer, vtkh_parallel_render) 22 | { 23 | MPI_Init(NULL, NULL); 24 | int comm_size, rank; 25 | MPI_Comm_size(MPI_COMM_WORLD, &comm_size); 26 | MPI_Comm_rank(MPI_COMM_WORLD, &rank); 27 | 28 | vtkh::SetMPICommHandle(MPI_Comm_c2f(MPI_COMM_WORLD)); 29 | vtkh::DataSet data_set; 30 | 31 | const int base_size = 32; 32 | const int blocks_per_rank = 2; 33 | const int num_blocks = comm_size * blocks_per_rank; 34 | 35 | for(int i = 0; i < blocks_per_rank; ++i) 36 | { 37 | int domain_id = rank * blocks_per_rank + i; 38 | data_set.AddDomain(CreateTestData(domain_id, num_blocks, base_size), domain_id); 39 | } 40 | 41 | vtkm::Bounds bounds = data_set.GetGlobalBounds(); 42 | 43 | vtkm::rendering::Camera camera; 44 | camera.SetPosition(vtkm::Vec(-16, -16, -16)); 45 | camera.ResetToBounds(bounds); 46 | vtkh::Render render = vtkh::MakeRender(512, 47 | 512, 48 | camera, 49 | data_set, 50 | "ray_tracer_par"); 51 | 52 | vtkh::RayTracer tracer; 53 | 54 | tracer.SetInput(&data_set); 55 | tracer.SetField("point_data_Float64"); 56 | 57 | vtkh::Scene scene; 58 | scene.AddRender(render); 59 | scene.AddRenderer(&tracer); 60 | scene.Render(); 61 | 62 | MPI_Finalize(); 63 | } 64 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_scalar_renderer_par.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "t_test_utils.hpp" 15 | 16 | #include 17 | #include 18 | 19 | 20 | //---------------------------------------------------------------------------- 21 | TEST(vtkh_scalar_renderer, vtkh_parallel_render) 22 | { 23 | MPI_Init(NULL, NULL); 24 | int comm_size, rank; 25 | MPI_Comm_size(MPI_COMM_WORLD, &comm_size); 26 | MPI_Comm_rank(MPI_COMM_WORLD, &rank); 27 | 28 | vtkh::SetMPICommHandle(MPI_Comm_c2f(MPI_COMM_WORLD)); 29 | vtkh::DataSet data_set; 30 | 31 | const int base_size = 32; 32 | const int blocks_per_rank = 2; 33 | const int num_blocks = comm_size * blocks_per_rank; 34 | 35 | for(int i = 0; i < blocks_per_rank; ++i) 36 | { 37 | int domain_id = rank * blocks_per_rank + i; 38 | data_set.AddDomain(CreateTestData(domain_id, num_blocks, base_size), domain_id); 39 | } 40 | 41 | vtkm::Bounds bounds = data_set.GetGlobalBounds(); 42 | 43 | vtkm::rendering::Camera camera; 44 | camera.ResetToBounds(bounds); 45 | camera.Azimuth(-30.f); 46 | camera.Elevation(-30.f); 47 | 48 | vtkh::ScalarRenderer tracer; 49 | 50 | tracer.SetInput(&data_set); 51 | tracer.SetCamera(camera); 52 | tracer.Update(); 53 | 54 | vtkh::DataSet *output = tracer.GetOutput(); 55 | 56 | if(vtkh::GetMPIRank() == 0) 57 | { 58 | vtkm::cont::DataSet &result = output->GetDomain(0); 59 | vtkm::io::VTKDataSetWriter writer("scalar_data.vtk"); 60 | writer.WriteDataSet(result); 61 | } 62 | 63 | MPI_Finalize(); 64 | } 65 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_statistics_par.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include "t_test_utils.hpp" 13 | 14 | #include 15 | #include 16 | 17 | //---------------------------------------------------------------------------- 18 | TEST(vtkh_statistics_par, vtkh_stats) 19 | { 20 | 21 | MPI_Init(NULL, NULL); 22 | int comm_size, rank; 23 | MPI_Comm_size(MPI_COMM_WORLD, &comm_size); 24 | MPI_Comm_rank(MPI_COMM_WORLD, &rank); 25 | 26 | vtkh::SetMPICommHandle(MPI_Comm_c2f(MPI_COMM_WORLD)); 27 | vtkh::DataSet data_set; 28 | 29 | const int base_size = 32; 30 | const int blocks_per_rank = 2; 31 | const int num_blocks = comm_size * blocks_per_rank; 32 | 33 | for(int i = 0; i < blocks_per_rank; ++i) 34 | { 35 | int domain_id = rank * blocks_per_rank + i; 36 | data_set.AddDomain(CreateTestData(domain_id, num_blocks, base_size), domain_id); 37 | } 38 | 39 | vtkh::Statistics::Result res; 40 | vtkh::Statistics stats; 41 | 42 | res = stats.Run(data_set,"point_data_Float64"); 43 | 44 | if(rank == 0) res.Print(std::cout); 45 | 46 | MPI_Finalize(); 47 | } 48 | -------------------------------------------------------------------------------- /src/tests/vtkh/t_vtk-h_threshold.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | /// 3 | /// file: t_vtk-h_dataset.cpp 4 | /// 5 | //----------------------------------------------------------------------------- 6 | 7 | #include "gtest/gtest.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "t_test_utils.hpp" 15 | 16 | #include 17 | 18 | 19 | 20 | //---------------------------------------------------------------------------- 21 | TEST(vtkh_threshold, vtkh_serial_threshold) 22 | { 23 | vtkh::DataSet data_set; 24 | 25 | const int base_size = 32; 26 | const int num_blocks = 2; 27 | 28 | for(int i = 0; i < num_blocks; ++i) 29 | { 30 | data_set.AddDomain(CreateTestData(i, num_blocks, base_size), i); 31 | } 32 | 33 | vtkh::Threshold thresher; 34 | thresher.SetInput(&data_set); 35 | thresher.SetField("point_data_Float64"); 36 | 37 | double upper_bound = (float)base_size * (float)num_blocks * 0.5f; 38 | double lower_bound = 0; 39 | 40 | thresher.SetUpperThreshold(upper_bound); 41 | thresher.SetLowerThreshold(lower_bound); 42 | thresher.Update(); 43 | vtkh::DataSet *output = thresher.GetOutput(); 44 | vtkm::Bounds bounds = output->GetGlobalBounds(); 45 | 46 | vtkm::rendering::Camera camera; 47 | camera.SetPosition(vtkm::Vec(-16, -16, -16)); 48 | camera.ResetToBounds(bounds); 49 | vtkh::Render render = vtkh::MakeRender(512, 50 | 512, 51 | camera, 52 | *output, 53 | "threshold"); 54 | vtkh::RayTracer tracer; 55 | tracer.SetInput(output); 56 | tracer.SetField("point_data_Float64"); 57 | 58 | vtkh::Scene scene; 59 | scene.AddRender(render); 60 | scene.AddRenderer(&tracer); 61 | scene.Render(); 62 | 63 | delete output; 64 | } 65 | -------------------------------------------------------------------------------- /src/version.txt: -------------------------------------------------------------------------------- 1 | 0.0.1 2 | -------------------------------------------------------------------------------- /src/vtkh/Error.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTK_H_ERROR_HPP 2 | #define VTK_H_ERROR_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | namespace vtkh { 10 | 11 | class VTKH_API Error : public std::exception 12 | { 13 | private: 14 | std::string m_message; 15 | Error() {} 16 | public: 17 | Error(const std::string message) : m_message(message) {} 18 | const std::string & GetMessage() const { return this->m_message; } 19 | const char * what() const noexcept override { return m_message.c_str(); } 20 | 21 | }; 22 | 23 | } // namespace vtkh 24 | #endif 25 | -------------------------------------------------------------------------------- /src/vtkh/StatisticsDB.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace vtkh 5 | { 6 | StatisticsDB stats; 7 | 8 | void 9 | StatisticsDB::DumpStats(const std::string &fname, const std::string &preamble, bool append) 10 | { 11 | stats.calcStats(); 12 | 13 | #ifdef VTKH_PARALLEL 14 | int rank = vtkh::GetMPIRank(); 15 | if (rank != 0) 16 | return; 17 | #endif 18 | 19 | if (!append || !outputStream.is_open()) 20 | outputStream.open(fname, std::ofstream::out); 21 | 22 | if (!preamble.empty()) 23 | outputStream< 2 | 3 | using namespace std::chrono; 4 | 5 | namespace vtkh 6 | { 7 | 8 | Timer::Timer() 9 | { 10 | reset(); 11 | } 12 | 13 | Timer::~Timer() 14 | { 15 | 16 | } 17 | 18 | void 19 | Timer::reset() 20 | { 21 | m_start = high_resolution_clock::now(); 22 | } 23 | 24 | float 25 | Timer::elapsed() const 26 | { 27 | return duration_cast>(high_resolution_clock::now() - m_start).count(); 28 | } 29 | 30 | }; // namespace vtkh 31 | -------------------------------------------------------------------------------- /src/vtkh/Timer.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTKH_TIMER_HPP 2 | #define VTKH_TIMER_HPP 3 | 4 | #include 5 | #include 6 | 7 | namespace vtkh 8 | { 9 | 10 | class VTKH_API Timer 11 | { 12 | 13 | public: 14 | 15 | explicit Timer(); 16 | ~Timer(); 17 | void reset(); 18 | float elapsed() const; 19 | 20 | private: 21 | std::chrono::high_resolution_clock::time_point m_start; 22 | }; 23 | 24 | }; // namespace vtkh 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /src/vtkh/compositing/DirectSendCompositor.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTKH_DIY_DIRECT_SEND_HPP 2 | #define VTKH_DIY_DIRECT_SEND_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace vtkh 9 | { 10 | 11 | class DirectSendCompositor 12 | { 13 | public: 14 | DirectSendCompositor(); 15 | ~DirectSendCompositor(); 16 | void CompositeVolume(vtkhdiy::mpi::communicator &diy_comm, 17 | std::vector &images); 18 | std::string GetTimingString(); 19 | private: 20 | std::stringstream m_timing_log; 21 | }; 22 | 23 | } // namespace vtkh 24 | #endif 25 | -------------------------------------------------------------------------------- /src/vtkh/compositing/Image.cpp: -------------------------------------------------------------------------------- 1 | // See License.txt 2 | 3 | #include "Image.hpp" 4 | #include 5 | 6 | namespace vtkh 7 | { 8 | 9 | void Image::Save(const std::string &name, 10 | const std::vector &comments) 11 | { 12 | PNGEncoder encoder; 13 | encoder.Encode(&m_pixels[0], 14 | m_bounds.X.Max - m_bounds.X.Min + 1, 15 | m_bounds.Y.Max - m_bounds.Y.Min + 1, 16 | comments); 17 | encoder.Save(name); 18 | } 19 | 20 | } // namespace vtkh 21 | -------------------------------------------------------------------------------- /src/vtkh/compositing/PayloadCompositor.cpp: -------------------------------------------------------------------------------- 1 | #include "PayloadCompositor.hpp" 2 | #include 3 | 4 | #include 5 | #include 6 | 7 | #ifdef VTKH_PARALLEL 8 | #include 9 | #include 10 | #include 11 | #include 12 | #endif 13 | 14 | namespace vtkh 15 | { 16 | 17 | PayloadCompositor::PayloadCompositor() 18 | { 19 | 20 | } 21 | 22 | void 23 | PayloadCompositor::ClearImages() 24 | { 25 | m_images.clear(); 26 | } 27 | 28 | void 29 | PayloadCompositor::AddImage(PayloadImage &image) 30 | { 31 | assert(image.GetNumberOfPixels() != 0); 32 | 33 | if(m_images.size() == 0) 34 | { 35 | m_images.push_back(image); 36 | } 37 | else 38 | { 39 | // 40 | // Do local composite and keep a single image 41 | // 42 | vtkh::PayloadImageCompositor compositor; 43 | compositor.ZBufferComposite(m_images[0],image); 44 | } 45 | } 46 | 47 | PayloadImage 48 | PayloadCompositor::Composite() 49 | { 50 | assert(m_images.size() != 0); 51 | // nothing to do here in serial. Images were composited as 52 | // they were added to the compositor 53 | #ifdef VTKH_PARALLEL 54 | vtkhdiy::mpi::communicator diy_comm; 55 | diy_comm = vtkhdiy::mpi::communicator(MPI_Comm_f2c(GetMPICommHandle())); 56 | 57 | assert(m_images.size() == 1); 58 | RadixKCompositor compositor; 59 | compositor.CompositeSurface(diy_comm, this->m_images[0]); 60 | #endif 61 | // Make this a param to avoid the copy? 62 | return m_images[0]; 63 | } 64 | 65 | 66 | } // namespace vtkh 67 | 68 | 69 | -------------------------------------------------------------------------------- /src/vtkh/compositing/PayloadCompositor.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTKH_PAYLOAD_COMPOSITOR_HPP 2 | #define VTKH_PAYLOAD_COMPOSITOR_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace vtkh 9 | { 10 | 11 | class VTKH_API PayloadCompositor 12 | { 13 | public: 14 | PayloadCompositor(); 15 | 16 | void ClearImages(); 17 | 18 | void AddImage(PayloadImage &image); 19 | 20 | PayloadImage Composite(); 21 | protected: 22 | std::vector m_images; 23 | }; 24 | 25 | }; 26 | 27 | #endif 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/vtkh/compositing/PayloadImageCompositor.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTKH_DIY_PAYLOAD_IMAGE_COMPOSITOR_HPP 2 | #define VTKH_DIY_PAYLOAD_IMAGE_COMPOSITOR_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | namespace vtkh 11 | { 12 | 13 | class VTKH_API PayloadImageCompositor 14 | { 15 | public: 16 | 17 | void ZBufferComposite(vtkh::PayloadImage &front, const vtkh::PayloadImage &image) 18 | { 19 | if(front.m_payload_bytes != image.m_payload_bytes) 20 | { 21 | std::cout<<"very bad\n"; 22 | } 23 | assert(front.m_depths.size() == front.m_payloads.size() / front.m_payload_bytes); 24 | assert(front.m_bounds.X.Min == image.m_bounds.X.Min); 25 | assert(front.m_bounds.Y.Min == image.m_bounds.Y.Min); 26 | assert(front.m_bounds.X.Max == image.m_bounds.X.Max); 27 | assert(front.m_bounds.Y.Max == image.m_bounds.Y.Max); 28 | 29 | const int size = static_cast(front.m_depths.size()); 30 | const bool nan_check = image.m_default_value != image.m_default_value; 31 | #ifdef vtkh_USE_OPENMP 32 | #pragma omp parallel for 33 | #endif 34 | for(int i = 0; i < size; ++i) 35 | { 36 | const float depth = image.m_depths[i]; 37 | const float fdepth = front.m_depths[i]; 38 | // this should handle NaNs correctly 39 | const bool take_back = fmin(depth, fdepth) == depth; 40 | 41 | if(take_back) 42 | { 43 | const int offset = i * 4; 44 | front.m_depths[i] = depth; 45 | const size_t p_offset = i * front.m_payload_bytes; 46 | std::copy(&image.m_payloads[p_offset], 47 | &image.m_payloads[p_offset] + front.m_payload_bytes, 48 | &front.m_payloads[p_offset]); 49 | } 50 | } 51 | } 52 | 53 | 54 | }; 55 | 56 | } // namespace vtkh 57 | #endif 58 | -------------------------------------------------------------------------------- /src/vtkh/compositing/RadixKCompositor.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTKH_DIY_RADIX_K_HPP 2 | #define VTKH_DIY_RADIX_K_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | namespace vtkh 10 | { 11 | 12 | class RadixKCompositor 13 | { 14 | public: 15 | RadixKCompositor(); 16 | ~RadixKCompositor(); 17 | void CompositeSurface(vtkhdiy::mpi::communicator &diy_comm, Image &image); 18 | void CompositeSurface(vtkhdiy::mpi::communicator &diy_comm, PayloadImage &image); 19 | 20 | template 21 | void CompositeImpl(vtkhdiy::mpi::communicator &diy_comm, ImageType &image); 22 | 23 | std::string GetTimingString(); 24 | private: 25 | std::stringstream m_timing_log; 26 | }; 27 | 28 | } // namspace vtkh 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/vtkh/compositing/vtkh_diy_collect.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTKH_DIY_COLLECT_HPP 2 | #define VTKH_DIY_COLLECT_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | namespace vtkh 12 | { 13 | 14 | template 15 | struct CollectImages 16 | { 17 | const vtkhdiy::RegularDecomposer &m_decomposer; 18 | 19 | CollectImages(const vtkhdiy::RegularDecomposer &decomposer) 20 | : m_decomposer(decomposer) 21 | {} 22 | 23 | void operator()(void *b, const vtkhdiy::ReduceProxy &proxy) const 24 | { 25 | ImageBlock *block = reinterpret_cast*>(b); 26 | // 27 | // first round we have no incoming. Take the images we have 28 | // and sent them to to the right rank 29 | // 30 | const int collection_rank = 0; 31 | if(proxy.in_link().size() == 0) 32 | { 33 | 34 | if(proxy.gid() != collection_rank) 35 | { 36 | int dest_gid = collection_rank; 37 | vtkhdiy::BlockID dest = proxy.out_link().target(dest_gid); 38 | 39 | proxy.enqueue(dest, block->m_image); 40 | block->m_image.Clear(); 41 | } 42 | } // if 43 | else if(proxy.gid() == collection_rank) 44 | { 45 | ImageType final_image; 46 | final_image.InitOriginal(block->m_image); 47 | block->m_image.SubsetTo(final_image); 48 | 49 | for(int i = 0; i < proxy.in_link().size(); ++i) 50 | { 51 | int gid = proxy.in_link().target(i).gid; 52 | 53 | if(gid == collection_rank) 54 | { 55 | continue; 56 | } 57 | ImageType incoming; 58 | proxy.dequeue(gid, incoming); 59 | incoming.SubsetTo(final_image); 60 | } // for 61 | block->m_image.Swap(final_image); 62 | } // else 63 | 64 | } // operator 65 | }; 66 | 67 | } // namespace vtkh 68 | #endif 69 | -------------------------------------------------------------------------------- /src/vtkh/compositing/vtkh_diy_utils.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTKH_DIY_UTILS_HPP 2 | #define VTKH_DIY_UTILS_HPP 3 | 4 | #include 5 | #include 6 | 7 | namespace vtkh 8 | { 9 | 10 | static 11 | vtkm::Bounds DIYBoundsToVTKM(const vtkhdiy::DiscreteBounds &bounds) 12 | { 13 | vtkm::Bounds vtkm_bounds; 14 | 15 | vtkm_bounds.X.Min = bounds.min[0]; 16 | vtkm_bounds.Y.Min = bounds.min[1]; 17 | vtkm_bounds.Z.Min = bounds.min[2]; 18 | 19 | vtkm_bounds.X.Max = bounds.max[0]; 20 | vtkm_bounds.Y.Max = bounds.max[1]; 21 | vtkm_bounds.Z.Max = bounds.max[2]; 22 | return vtkm_bounds; 23 | } 24 | 25 | static 26 | vtkhdiy::DiscreteBounds VTKMBoundsToDIY(const vtkm::Bounds &bounds) 27 | { 28 | vtkhdiy::DiscreteBounds diy_bounds; 29 | 30 | diy_bounds.min[0] = bounds.X.Min; 31 | diy_bounds.min[1] = bounds.Y.Min; 32 | 33 | diy_bounds.max[0] = bounds.X.Max; 34 | diy_bounds.max[1] = bounds.Y.Max; 35 | 36 | if(bounds.Z.IsNonEmpty()) 37 | { 38 | diy_bounds.min[2] = bounds.Z.Min; 39 | diy_bounds.max[2] = bounds.Z.Max; 40 | } 41 | else 42 | { 43 | diy_bounds.min[2] = 0; 44 | diy_bounds.max[2] = 0; 45 | } 46 | return diy_bounds; 47 | } 48 | 49 | } //namespace vtkh 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/vtkh/filters/BoundsMap.hpp: -------------------------------------------------------------------------------- 1 | #ifndef VTK_H_BOUNDS_MAP_HPP 2 | #define VTK_H_BOUNDS_MAP_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | class BoundsMap 16 | { 17 | public: 18 | BoundsMap() {} 19 | BoundsMap(const BoundsMap &_bm) : bm(_bm.bm) {} 20 | 21 | void AddBlock(int id, const vtkm::Bounds &bounds) 22 | { 23 | if (bm.find(id) == bm.end()) 24 | bm[id] = bounds; 25 | else 26 | throw "Duplicate block"; 27 | } 28 | template