Commit 3d66d374 authored by Burlen Loring's avatar Burlen Loring

Merge branch 'sensei_3_development' into 'master'

Sensei 3 development

See merge request !152
parents e6211627 30d7af2b
......@@ -49,7 +49,7 @@ find_library(LIBSIM_LIBRARY NAMES simV2
find_library(LIBSIM_LIBRARY NAMES simV2)
mark_as_advanced(LIBSIM_LIBRARY)
set(LIBSIM_LIBRARIES ${LIBSIM_LIBRARY} ${LIBSIM_THIRD_PARTY})
set(LIBSIM_LIBRARIES ${LIBSIM_LIBRARY} ${LIBSIM_THIRD_PARTY} dl)
# header
if(VISIT_DIR)
......
......@@ -30,7 +30,8 @@ set(ENABLE_PYTHON @ENABLE_PYTHON@)
set(ENABLE_CATALYST @ENABLE_CATALYST@)
set(ENABLE_CATALYST_PYTHON @ENABLE_CATALYST_PYTHON@)
set(ENABLE_LIBSIM @ENABLE_LIBSIM@)
set(ENABLE_ADIOS @ENABLE_ADIOS@)
set(ENABLE_ADIOS1 @ENABLE_ADIOS1@)
set(ENABLE_HDF5 @ENABLE_HDF5@)
set(ENABLE_CONDUIT @ENABLE_CONDUIT@)
set(ENABLE_VTK_GENERIC_ARRAYS @ENABLE_VTK_GENERIC_ARRAYS@)
set(ENABLE_VTK_ACCELERATORS @ENABLE_VTK_ACCELERATORS@)
......@@ -60,9 +61,7 @@ endif()
include(thread)
include(sMPI)
include(sVTK)
include(timer)
include(pugixml)
include(timer)
include(sDIY)
if (ENABLE_VTKM)
include(sVTKm)
......@@ -70,8 +69,11 @@ endif()
if (ENABLE_LIBSIM)
include(sLibsim)
endif()
if (ENABLE_ADIOS)
include(sADIOS)
if (ENABLE_ADIOS1)
include(sADIOS1)
endif()
if (ENABLE_HDF5)
include(sHDF5)
endif()
if (ENABLE_CONDUIT)
include(sConduit)
......
if(ENABLE_ADIOS)
find_package(ADIOS REQUIRED)
if(ENABLE_ADIOS1)
find_package(ADIOS1 REQUIRED)
add_library(sADIOS INTERFACE)
target_link_libraries(sADIOS INTERFACE ${ADIOS_LIBRARIES})
target_include_directories(sADIOS SYSTEM INTERFACE ${ADIOS_INCLUDE_DIRS})
if(ADIOS_DEFINITIONS)
target_compile_definitions(sADIOS INTERFACE ${ADIOS_DEFINITIONS})
add_library(sADIOS1 INTERFACE)
target_link_libraries(sADIOS1 INTERFACE ${ADIOS1_LIBRARIES})
target_include_directories(sADIOS1 SYSTEM INTERFACE ${ADIOS1_INCLUDE_DIRS})
if(ADIOS1_DEFINITIONS)
target_compile_definitions(sADIOS1 INTERFACE ${ADIOS1_DEFINITIONS})
endif()
install(TARGETS sADIOS EXPORT sADIOS)
install(EXPORT sADIOS DESTINATION lib/cmake EXPORT_LINK_INTERFACE_LIBRARIES)
install(TARGETS sADIOS1 EXPORT sADIOS1)
install(EXPORT sADIOS1 DESTINATION lib/cmake EXPORT_LINK_INTERFACE_LIBRARIES)
endif()
if (ENABLE_CATALYST)
set(SENSEI_PV_COMPONENTS vtkPVCatalyst vtkPVServerManagerRendering)
set(sensei_pv_components_legacy vtkPVCatalyst vtkPVServerManagerRendering)
set(sensei_pv_components_modern Catalyst ServerManagerRendering)
if(ENABLE_CATALYST_PYTHON)
list(APPEND SENSEI_PV_COMPONENTS vtkPVPythonCatalyst)
list(APPEND sensei_pv_components_legacy vtkPVPythonCatalyst)
list(APPEND sensei_pv_components_modern PythonCatalyst)
endif()
find_package(ParaView CONFIG QUIET)
if(NOT ParaView_FOUND)
message(STATUS ${ParaView_NOT_FOUND_MESSAGE})
message(FATAL_ERROR "Catalyst analysis components require Catalyst build "
"(or install directory. Please set ParaView_DIR to point to directory "
"containing `ParaViewConfig.cmake` or `paraview-config.cmake`.")
endif()
if (ParaView_VERSION VERSION_LESS "5.7.0")
set (SENSEI_PV_COMPONENTS ${sensei_pv_components_legacy} ${SENSEI_VTK_COMPONENTS})
else()
set (SENSEI_PV_COMPONENTS ${sensei_pv_components_modern})
endif()
find_package(ParaView CONFIG COMPONENTS ${SENSEI_PV_COMPONENTS})
find_package(ParaView COMPONENTS ${SENSEI_VTK_COMPONENTS}
${SENSEI_PV_COMPONENTS})
# avoid leaking these internal variables
unset(sensei_pv_components_legacy)
unset(sensei_pv_components_modern)
if(NOT ParaView_FOUND)
message(FATAL_ERROR "Catalyst analysis components require Catalyst build"
"(or install directory. Please set ParaView_DIR to point to " "directory"
"containing `ParaViewConfig.cmake`.")
message(FATAL_ERROR "Catalyst analysis components require Catalyst build "
"(or install directory. Please set ParaView_DIR to point to directory "
"containing `ParaViewConfig.cmake` or `paraview-config.cmake`.")
endif()
add_library(sVTK INTERFACE)
target_link_libraries(sVTK INTERFACE ${VTK_LIBRARIES})
target_include_directories(sVTK SYSTEM INTERFACE ${PARAVIEW_INCLUDE_DIRS})
target_compile_definitions(sVTK INTERFACE ${VTK_DEFINITIONS})
if (ParaView_VERSION VERSION_LESS "5.7.0")
target_link_libraries(sVTK INTERFACE ${VTK_LIBRARIES})
target_include_directories(sVTK SYSTEM INTERFACE ${PARAVIEW_INCLUDE_DIRS})
target_compile_definitions(sVTK INTERFACE ${VTK_DEFINITIONS})
else()
# find VTK separately
find_package(VTK CONFIG QUIET COMPONENTS ${SENSEI_VTK_COMPONENTS})
target_link_libraries(sVTK INTERFACE ${ParaView_LIBRARIES} ${VTK_LIBRARIES})
endif()
install(TARGETS sVTK EXPORT sVTK)
install(EXPORT sVTK DESTINATION lib/cmake EXPORT_LINK_INTERFACE_LIBRARIES)
......
if (ENABLE_HDF5)
find_package(HDF5 REQUIRED COMPONENTS C)
if(NOT HDF5_IS_PARALLEL)
message(SEND_ERROR "Failed to locate parallel hdf5 installation")
endif()
add_library(sHDF5 INTERFACE)
target_link_libraries(sHDF5 INTERFACE ${HDF5_LIBRARIES})
target_include_directories(sHDF5 SYSTEM INTERFACE ${HDF5_INCLUDE_DIRS})
install(TARGETS sHDF5 EXPORT sHDF5)
install(EXPORT sHDF5 DESTINATION lib/cmake EXPORT_LINK_INTERFACE_LIBRARIES)
endif()
find_package(MPI)
if (ENABLE_CRAY_MPICH OR (NOT DEFINED ENABLE_CRAY_MPICH AND NOT ("$ENV{CRAY_MPICH_DIR}" STREQUAL "")))
set(ENV{PKG_CONFIG_PATH} "$ENV{CRAY_MPICH_DIR}/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
find_package(PkgConfig QUIET)
pkg_check_modules(CRAY_MPICH REQUIRED QUIET mpich)
set(MPI_C_INCLUDE_PATH ${CRAY_MPICH_INCLUDE_DIRS} CACHE STRING "MPI include directories")
set(MPI_C_LIBRARIES ${CRAY_MPICH_LDFLAGS} CACHE STRING "MPI link dependencies")
set(MPIEXEC srun CACHE STRING "Platform MPI run equivalent")
set(MPI_C_FOUND CACHE BOOL ON "status of MPI config")
else()
find_package(MPI)
endif()
if (NOT MPI_C_FOUND)
message(FETAL_ERROR "Failed to locate MPI C libraries and headers")
......
......@@ -16,8 +16,12 @@ cmake_dependent_option(ENABLE_CATALYST_PYTHON
"Enable analysis methods that use Catalyst Python scripts" OFF
"ENABLE_CATALYST" OFF)
cmake_dependent_option(ENABLE_ADIOS
"Enable analysis methods that use ADIOS" OFF
cmake_dependent_option(ENABLE_ADIOS1
"Enable analysis methods that use ADIOS 1" OFF
"ENABLE_SENSEI" OFF)
cmake_dependent_option(ENABLE_HDF5
"Enable analysis methods that use HDF5" OFF
"ENABLE_SENSEI" OFF)
cmake_dependent_option(ENABLE_CONDUIT
......@@ -44,6 +48,10 @@ cmake_dependent_option(ENABLE_VTK_ACCELERATORS
"Enable analysis methods that use VTK-m via VTK's Accelerators module" OFF
"ENABLE_SENSEI" OFF)
cmake_dependent_option(ENABLE_VTK_FILTERS
"Enable use of VTK's generic filters library" OFF
"ENABLE_SENSEI" OFF)
cmake_dependent_option(ENABLE_VTKM
"Enable analysis methods that use VTK-m" OFF
"ENABLE_SENSEI" OFF)
......@@ -52,26 +60,31 @@ cmake_dependent_option(ENABLE_VTKM_RENDERING
"Enable analysis methods that use VTK-m's rendering library" OFF
"ENABLE_VTKM" OFF)
option(ENABLE_PARALLEL3D "Enable Parallel3D miniapp" ON)
option(ENABLE_PROFILER "Enable the internal profiler" OFF)
option(ENABLE_OSCILLATORS "Enable Oscillators miniapp" ON)
option(ENABLE_CONDUITTEST "Enable Conduit miniapp" OFF)
option(ENABLE_KRIPKE "Enable Kripke miniapp" OFF)
option(ENABLE_MANDELBROT "Enable Mandelbrot miniapp" ON)
option(ENABLE_VORTEX "Enable Vortex miniapp" ON)
message(STATUS "ENABLE_SENSEI=${ENABLE_SENSEI}")
message(STATUS "ENABLE_PYTHON=${ENABLE_PYTHON}")
message(STATUS "ENABLE_VTK_GENERIC_ARRAYS=${ENABLE_VTK_GENERIC_ARRAYS}")
message(STATUS "ENABLE_CATALYST=${ENABLE_CATALYST}")
message(STATUS "ENABLE_CATALYST_PYTHON=${ENABLE_CATALYST}")
message(STATUS "ENABLE_ADIOS=${ENABLE_ADIOS}")
message(STATUS "ENABLE_ADIOS1=${ENABLE_ADIOS1}")
message(STATUS "ENABLE_HDF5=${ENABLE_HDF5}")
message(STATUS "ENABLE_CONDUIT=${ENABLE_CONDUIT}")
message(STATUS "ENABLE_LIBSIM=${ENABLE_LIBSIM}")
message(STATUS "ENABLE_VTK_IO=${ENABLE_VTK_IO}")
message(STATUS "ENABLE_VTK_MPI=${ENABLE_VTK_MPI}")
message(STATUS "ENABLE_VTK_RENDERING=${ENABLE_VTK_RENDERING}")
message(STATUS "ENABLE_VTK_ACCELERATORS=${ENABLE_VTK_ACCELERATORS}")
message(STATUS "ENABLE_VTK_FILTERS=${ENABLE_VTK_FILTERS}")
message(STATUS "ENABLE_VTKM=${ENABLE_VTKM}")
message(STATUS "ENABLE_VTKM_RENDERING=${ENABLE_VTKM_RENDERING}")
message(STATUS "ENABLE_PARALLEL3D=${ENABLE_PARALLEL3D}")
message(STATUS "ENABLE_PROFILER=${ENABLE_PROFILER}")
message(STATUS "ENABLE_OSCILLATORS=${ENABLE_OSCILLATORS}")
message(STATUS "ENABLE_CONDUITTEST=${ENABLE_CONDUITTEST}")
message(STATUS "ENABLE_KRIPKE=${ENABLE_KRIPKE}")
if (ENABLE_PYTHON)
# TODO -- Python 3
find_package(PythonInterp REQUIRED)
if(PYTHONINTERP_FOUND)
find_program(PYTHON_CONFIG_EXECUTABLE python-config)
if (NOT PYTHON_CONFIG_EXECUTABLE)
message(SEND_ERROR "python-config executable is required.")
endif()
execute_process(COMMAND ${PYTHON_CONFIG_EXECUTABLE} --prefix
OUTPUT_VARIABLE python_prefix OUTPUT_STRIP_TRAILING_WHITESPACE)
set(PYTHON_INCLUDE_DIR ${python_prefix}/include/python2.7)
if (EXISTS ${python_prefix}/lib/libpython2.7${CMAKE_SHARED_LIBRARY_SUFFIX})
set(PYTHON_LIBRARY ${python_prefix}/lib/libpython2.7${CMAKE_SHARED_LIBRARY_SUFFIX})
elseif (EXISTS ${python_prefix}/lib64/libpython2.7${CMAKE_SHARED_LIBRARY_SUFFIX})
set(PYTHON_LIBRARY ${python_prefix}/lib64/libpython2.7${CMAKE_SHARED_LIBRARY_SUFFIX})
elseif (EXISTS ${python_prefix}/lib/x86_64-linux-gnu/libpython2.7${CMAKE_SHARED_LIBRARY_SUFFIX})
set(PYTHON_LIBRARY ${python_prefix}/lib/x86_64-linux-gnu/libpython2.7${CMAKE_SHARED_LIBRARY_SUFFIX})
else()
message(SEND_ERROR "Failed to locate Python library for ${python_prefix}")
endif()
endif()
find_package(PythonLibs REQUIRED)
set(SENSEI_PYTHON_VERSION 2 CACHE STRING "The major version number of Python SENSEI should use.")
set_property(CACHE SENSEI_PYTHON_VERSION PROPERTY STRINGS 2 3)
find_package(PythonInterp ${SENSEI_PYTHON_VERSION} REQUIRED)
find_package(PythonLibs ${SENSEI_PYTHON_VERSION} REQUIRED)
find_package(NUMPY REQUIRED)
find_program(swig_cmd NAMES swig swig3.0)
if (swig_cmd-NOTFOUND)
......
......@@ -5,6 +5,9 @@ if (BUILD_TESTING)
include(CTest)
endif()
set(TEST_NP "4" CACHE STRING "Number of procs to use in parallel tests")
math(EXPR TEST_NP_HALF "${TEST_NP}/2")
# senseiAddTest(name
# EXEC_NAME -- optional, name of the copiled test
# SOURCES -- optional, source files to comile
......
set(SENSEI_VTK_COMPONENTS vtkCommonDataModel)
# lets build the list of modules for VTK pre-8.90 and post 8.90
set(sensei_vtk_components_legacy)
set(sensei_vtk_components_modern)
set(sensei_vtk_components_legacy vtkCommonDataModel)
set(sensei_vtk_components_modern CommonDataModel)
# note: this may be a bug. VTKUtils::WriteDomainDecomp requires
# `vtkUnstructuredGridWriter`. Not sure if that requirement is reasonable. It
# adds a required dependency to `VTK::IOLegacy` which may not be a good idea in
# the long run.
list(APPEND sensei_vtk_components_legacy vtkIOLegacy)
list(APPEND sensei_vtk_components_modern IOLegacy)
if (ENABLE_VTK_MPI)
list(APPEND SENSEI_VTK_COMPONENTS vtkParallelMPI)
list(APPEND sensei_vtk_components_legacy vtkParallelMPI)
list(APPEND sensei_vtk_components_modern ParallelMPI)
endif()
if (ENABLE_VTK_IO)
list(APPEND SENSEI_VTK_COMPONENTS vtkIOXML vtkIOLegacy)
list(APPEND sensei_vtk_components_legacy vtkIOXML vtkIOLegacy)
list(APPEND sensei_vtk_components_modern IOXML IOLegacy)
if (ENABLE_VTK_MPI)
list(APPEND SENSEI_VTK_COMPONENTS vtkIOParallelXML)
list(APPEND sensei_vtk_components_legacy vtkIOParallelXML)
list(APPEND sensei_vtk_components_modern IOParallelXML)
endif()
endif()
if (ENABLE_VTK_RENDERING)
list(APPEND SENSEI_VTK_COMPONENTS vtkRenderingCore)
list(APPEND sensei_vtk_components_legacy vtkRenderingCore)
list(APPEND sensei_vtk_components_modern RenderingCore)
if (TARGET vtkRenderingOpenGL2)
list(APPEND SENSEI_VTK_COMPONENTS vtkRenderingOpenGL2)
list(APPEND sensei_vtk_components_legacy vtkRenderingOpenGL2)
list(APPEND sensei_vtk_components_modern RenderingOpenGL2)
endif()
if (TARGET vtkRenderingOpenGL)
list(APPEND SENSEI_VTK_COMPONENTS vtkRenderingOpenGL)
list(APPEND sensei_vtk_components_legacy vtkRenderingOpenGL)
list(APPEND sensei_vtk_components_modern RenderingOpenGL)
endif()
endif()
if (ENABLE_PYTHON)
list(APPEND SENSEI_VTK_COMPONENTS vtkPython vtkWrappingPythonCore)
endif()
if (ENABLE_VTK_ACCELERATORS)
list(APPEND SENSEI_VTK_COMPONENTS vtkAcceleratorsVTKm vtkIOLegacy
list(APPEND sensei_vtk_components_legacy vtkAcceleratorsVTKm vtkIOLegacy
vtkFiltersGeometry vtkImagingCore)
list(APPEND sensei_vtk_components_modern AcceleratorsVTKm IOLegacy
FiltersGeometry ImagingCore)
endif()
if (ENABLE_VTK_FILTERS)
list(APPEND sensei_vtk_components_legacy vtkFiltersGeneral)
list(APPEND sensei_vtk_components_modern FiltersGeneral)
endif()
if (ENABLE_PYTHON)
list(APPEND sensei_vtk_components_legacy vtkPython vtkWrappingPythonCore)
list(APPEND sensei_vtk_components_modern Python WrappingPythonCore)
endif()
if (NOT ENABLE_CATALYST)
add_library(sVTK INTERFACE)
find_package(VTK QUIET COMPONENTS ${SENSEI_VTK_COMPONENTS})
find_package(VTK CONFIG QUIET)
if (NOT VTK_FOUND)
message(FATAL_ERROR "VTK is required for Sensei core even when not using "
"any infrastructures. Please set `VTK_DIR` to point to a directory "
"containing `VTKConfig.cmake` or `vtk-config.cmake`.")
endif()
if (VTK_VERSION VERSION_LESS "8.90.0")
set(SENSEI_VTK_COMPONENTS ${sensei_vtk_components_legacy})
else()
set(SENSEI_VTK_COMPONENTS ${sensei_vtk_components_modern})
endif()
# avoid leaking these internal variables
unset(sensei_vtk_components_legacy)
unset(sensei_vtk_components_modern)
find_package(VTK CONFIG QUIET COMPONENTS ${SENSEI_VTK_COMPONENTS})
if (NOT VTK_FOUND)
message(FATAL_ERROR "VTK (${SENSEI_VTK_COMPONENTS}) modules are required for "
"Sensei core even when not using any infrastructures. Please set "
"VTK_DIR to point to a directory containing `VTKConfig.cmake`.")
"`VTK_DIR` to point to a directory containing `VTKConfig.cmake` or "
"`vtk-config.cmake`.")
endif()
target_link_libraries(sVTK INTERFACE ${VTK_LIBRARIES})
target_include_directories(sVTK SYSTEM INTERFACE ${VTK_INCLUDE_DIRS})
target_compile_definitions(sVTK INTERFACE ${VTK_DEFINITIONS})
if (VTK_VERSION VERSION_LESS "8.90.0")
target_link_libraries(sVTK INTERFACE ${VTK_LIBRARIES})
target_include_directories(sVTK SYSTEM INTERFACE ${VTK_INCLUDE_DIRS})
target_compile_definitions(sVTK INTERFACE ${VTK_DEFINITIONS})
else()
target_link_libraries(sVTK INTERFACE ${VTK_LIBRARIES})
endif()
install(TARGETS sVTK EXPORT sVTK)
install(EXPORT sVTK DESTINATION lib/cmake EXPORT_LINK_INTERFACE_LIBRARIES)
......
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.6)
if (POLICY CMP0074)
cmake_policy(SET CMP0074 OLD)
endif()
project(sensei)
include(CMakeDependentOption)
......@@ -9,6 +12,7 @@ include(build)
include(threads)
include(mpi)
include(adios)
include(hdf5)
include(vtk)
include(libsim)
include(catalyst)
......
......@@ -36,17 +36,19 @@ data in a consistent way; and a number of implementations of both. For more
information see our [SC16 paper](http://dl.acm.org/citation.cfm?id=3015010).
#### DataAdaptors
| Class | Description |
|------------------|-------------|
| DataAdaptor | Base class declaring data adaptor API |
| VTKDataAdaptor | Implementation for use with VTK data sets. This adaptor can be used to pass VTK data sets from the simulation to the Analysis. |
| ADIOSDataAdaptor | Implementation that serves up data from ADIOS. For use in an ADIOS End point. |
| Class | Description |
|-------------------|-------------|
| DataAdaptor | Base class declaring data adaptor API |
| VTKDataAdaptor | Implementation for use with VTK data sets. This adaptor can be used to pass VTK data sets from the simulation to the Analysis. |
| ADIOS1DataAdaptor | Implementation that serves up data from ADIOS 1. For use in an ADIOS 1 End point. |
| HDF5DataAdaptor | Implementation that serves up data from HDF5. For use in a HDF5 End point. |
#### AnalysisAdaptors
| Class | Description |
|-------------------------|-------------|
| AnalysisAdaptor | Base class declaring analysis adaptor API |
| ADIOSAnalysisAdaptor | Implementation for using ADIOS from your simulation. |
| ADIOS1AnalysisAdaptor | Implementation for using ADIOS 1 from your simulation. |
| HDF5AnalysisAdaptor | Implementation for using HDF5 from your simulation. |
| LibsimAnalysisAdaptor | Implementation for using Libsim from your simulation. |
| CatalystAnalysisAdaptor | Implementation for using Catalyst from your simulaiton. |
| Autocorrelation | Implementation that computes [autocorrelation](https://en.wikipedia.org/wiki/Autocorrelation) |
......@@ -78,9 +80,10 @@ mini-app's source directory.
usage of in situ infrastructures and custom analyses from Python.
### End points
End points are programs that receive and analyze simulation data through ADIOS.
The end point reads data being serialized by the ADIOS analysis adaptor and
pass it back into a SENSEI bridge for further analysis.
End points are programs that receive and analyze simulation data through transport
layers such as ADIOS and LibIS. The end point uses the transport's data adaptor to
reads data being serialized by the transport's analysis adaptor and pass it back
into a SENSEI analysis for further processing.
* [ADIOSAnalysisEndPoint](endpoints/README.md)
......@@ -108,7 +111,8 @@ $ make install
| `ENABLE_VTK_GENERIC_ARRAYS` | OFF | Enables use of VTK's generic array feature. |
| `ENABLE_CATALYST` | OFF | Enables the Catalyst analysis adaptor. Depends on ParaView Catalyst. Set `ParaView_DIR`. |
| `ENABLE_CATALYST_PYTHON` | OFF | Enables Python features of the Catalyst analysis adaptor. |
| `ENABLE_ADIOS` | OFF | Enables ADIOS adaptors and endpoints. Set `ADIOS_DIR`. |
| `ENABLE_ADIOS1` | OFF | Enables ADIOS 1 adaptors and endpoints. Set `ADIOS_DIR`. |
| `ENABLE_HDF5` | OFF | Enables HDF5 adaptors and endpoints. Set `HDF5_DIR`. |
| `ENABLE_LIBSIM` | OFF | Enables Libsim data and analysis adaptors. Requires Libsim. Set `VTK_DIR` and `LIBSIM_DIR`. |
| `ENABLE_VTK_IO` | OFF | Enables adaptors to write to VTK XML format. |
| `ENABLE_VTK_MPI` | OFF | Enables MPI parallel VTK filters, such as parallel I/O. |
......@@ -121,9 +125,9 @@ $ make install
| `LIBSIM_DIR` | | Path to libsim install. |
### For use with ADIOS
### For use with ADIOS 1
```bash
cmake -DENABLE_SENSEI=ON -DENABLE_ADIOS=ON -DVTK_DIR=[your path] -DADIOS_DIR=[your path] ..
cmake -DENABLE_SENSEI=ON -DENABLE_ADIOS1=ON -DVTK_DIR=[your path] -DADIOS_DIR=[your path] ..
```
Can be used with either `ParaView_DIR` when configuring in conjunction with
Catalyst, or `VTK_DIR` otherwise.
......@@ -187,7 +191,7 @@ approvals from the U.S. Dept. of Energy).
* [pugixml](https://github.com/zeux/pugixml), Copyright (c) 2006-2016 Arseny Kapoulkine.
The SENSEI framework makes use of (links to) the following software:
* [ADIOS](https://www.olcf.ornl.gov/center-projects/adios/), Copyright (c) 2008 - 2009.
* [ADIOS 1](https://www.olcf.ornl.gov/center-projects/adios/), Copyright (c) 2008 - 2009.
UT-BATTELLE, LLC. Copyright (c) 2008 - 2009. Georgia Institute of Technology.
* [ParaView/Catalyst](https://gitlab.kitware.com/paraview/paraview), Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
Sensei requires ParaView v5.5.1 or later when `ENABLE_CATALYST` is on
......
......@@ -7,23 +7,23 @@
<analysis type="histogram" mesh="mesh" array="temperature" association="cell" bins="10" enabled="1" />
<!-- ADIOS Analyses -->
<analysis type="adios" filename="3D_Grid.bp" method="MPI" enabled ="0"/>
<analysis type="adios1" filename="3D_Grid.bp" method="MPI" enabled ="0"/>
<!-- Catalyst Analyses -->
<analysis type="catalyst" pipeline="slice" enabled="0" />
<!-- Libsim Analyses -->
<analysis type="libsim" plots="Pseudocolor,Mesh" plotvars="pressure,mesh"
<analysis type="libsim" plots="Pseudocolor,Mesh" plotvars="mesh/cell/pressure,mesh"
image-filename="a%ts" image-width="800" image-height="800" image-format="png"
enabled="0"/>
<analysis type="libsim" plots="Pseudocolor"
plotvars="temperature" slice-origin="20,15,10" slice-normal="1,1,1"
plotvars="mesh/cell/temperature" slice-origin="20,15,10" slice-normal="1,1,1"
image-filename="b%ts" image-width="1200" image-height="1200"
image-format="png" enabled="0"/>
<analysis type="libsim" plots="Pseudocolor"
plotvars="temperature" slice-origin="20,15,10" slice-normal="1,1,1"
plotvars="mesh/cell/temperature" slice-origin="20,15,10" slice-normal="1,1,1"
slice-project="1" image-filename="c%ts" image-width="400" image-height="400"
image-format="png" enabled="0"/>
</sensei>
<!-- SENSEI ConfigurableAnalysis Configuration file.
set enabled="1" on analyses you wish to enable -->
<sensei>
<!-- Custom Analyses-->
<analysis type="PosthocIO"
output_dir="./" file_name="output" mode="visit"
enabled="0">
<mesh name="AMR_mesh" structure_only="0" ghost_cells="1" ghost_nodes="0">
<cell_arrays>mandelbrot</cell_arrays>
</mesh>
</analysis>
<analysis type="histogram" mesh="mesh" array="data" association="cell"
bins="10" enabled="0" />
<analysis type="autocorrelation" mesh="mesh" array="data" association="cell" window="10"
k-max="3" enabled="0" />
<!-- VTK-m Analyses -->
<analysis type="vtkmcontour" mesh="mesh" array="data" association="cell" value="0.3" enabled="0" write_output="0"/>
<!-- Catalyst Analyses -->
<analysis type="catalyst"
pipeline="slice" array="data" association="cell"
image-filename="slice-%ts.png" image-width="1920" image-height="1080"
slice-normal="0,0,1"
color-range="0.0001,1.5" color-log="1"
enabled="0" />
<!-- Libsim Analyses -->
<!-- trace="trace" options="-debug 5 -clobber_vlogs -timings" -->
<analysis type="libsim" visitdir="/Users/bjw/Development/MAIN/trunk/install" mode="interactive,paused" options="-debug 5 -clobber_vlogs -timings" trace="trace"
frequency="1" plots="Pseudocolor,Mesh" plotvars="ucdmesh/data,ucdmesh"
image-filename="a%ts" image-width="800" image-height="800" image-format="png"
slice-origin="0,0,0" slice-normal="0,0,1"
enabled="1"/>
<!-- ADIOS Analyses -->
<analysis type="adios1" filename="oscillators.bp" method="MPI" enabled="0" />
</sensei>
......@@ -15,7 +15,7 @@
filename="../sensei/miniapps/newton/newton_catalyst.py" enabled="1" />
<!-- Available with ENABLE_LIBSIM -->
<analysis type="libsim" plots="Pseudocolor" plotvars="ids"
<analysis type="libsim" plots="Pseudocolor" plotvars="bodies/point/ids"
image-filename="newton_%ts" image-width="800" image-height="800"
slice-project="1" image-format="png" enabled="0"/>
</sensei>
......@@ -33,6 +33,8 @@
installation, which is required to pick up the Libsim runtime
libraries (when VisIt is not built statically)
* "visitdir" isn't needed if you set up PATH and LD_LIBRARY_PATH.
The "mode" attribute can be "batch", "interactive", or "interactive,paused."
* batch - Executes the analysis prescribed be the slice or session file.
* interactive - Lets VisIt connect interactively.
......@@ -48,7 +50,7 @@
-->
<!-- Libsim Slice, render -->
<analysis type="libsim"
<analysis type="libsim"
frequency="1"
visitdir="/Users/bjw/Development/MAIN/trunk/release" mode="batch"
plots="Pseudocolor,Mesh" plotvars="ucdmesh/data,ucdmesh" slice-origin="0,0,0" slice-normal="0,0,1"
......@@ -57,7 +59,7 @@
enabled="0"/>
<!-- Libsim Iso mesh, render -->
<analysis type="libsim"
<analysis type="libsim"
frequency="1"
visitdir="/Users/bjw/Development/MAIN/trunk/release" mode="batch"
session="oscillator.session"
......@@ -65,7 +67,7 @@
enabled="0"/>
<!-- Libsim Iso ucdmesh, render -->
<analysis type="libsim"
<analysis type="libsim"
frequency="1"
visitdir="/Users/bjw/Development/MAIN/trunk/release" mode="batch"
session="oscillator-ucdmesh.session"
......@@ -73,7 +75,7 @@
enabled="0"/>
<!-- Libsim particles, render -->
<analysis type="libsim"
<analysis type="libsim"
frequency="1"
visitdir="/Users/bjw/Development/MAIN/trunk/release" mode="batch"
session="oscillator-particles.session"
......@@ -81,5 +83,5 @@
enabled="1"/>
<!-- ADIOS Analyses -->
<analysis type="adios" filename="oscillators.bp" method="MPI" enabled="0" />
<analysis type="adios1" filename="oscillators.bp" method="MPI" enabled="0" />
</sensei>
<sensei>
<analysis type="SliceExtract" verbose="1" operation="planar_slice" enabled="1">
<mesh name="mesh">
<cell_arrays> data </cell_arrays>
</mesh>
<point> 0.5 0.5 0.5 </point>
<normal> 0.8 -0.5 0.3 </normal>
<writer mode="paraview" output_dir="./slice" />
</analysis>
<analysis type="SliceExtract" operation="iso_surface" verbose="1" enabled="0">
<iso_values mesh_name="mesh" array_name="data" array_centering="cell">
-0.25 1.25 3.25
</iso_values>
<writer mode="paraview" output_dir="./iso" />
</analysis>
</sensei>
<!-- SENSEI ConfigurableAnalysis Configuration file.
set enabled="1" on analyses you wish to enable -->
<sensei>
<!-- Custom Analyses-->
<analysis type="PosthocIO"
output_dir="./" file_name="output" mode="visit"
enabled="0">
<mesh name="AMR_mesh" structure_only="0" ghost_cells="1" ghost_nodes="0">
<cell_arrays>vortex</cell_arrays>
</mesh>
</analysis>
<!-- Libsim Analyses -->
<!-- NOTE: make the visitdir path point to your VisIt directory. -->
<analysis type="libsim" visitdir="/Users/bjw/Development/MAIN/trunk/build"
mode="batch"
frequency="1" session="vortex_slice.session"
image-filename="a%ts" image-width="1600" image-height="400" image-format="png"
enabled="1"/>
<!-- idea for changing Libsim adaptor config
<analysis type="libsim" visitdir="/Users/bjw/Development/MAIN/trunk/build" mode="interactive,paused" options="-debug 5" enabled="0">
<render frequency="1" filename="a%ts.png" width="800" height="800">
<session filename="foo.session"/>
</render>
<extract frequency="1" filename="b%ts.silo">
<session filename="foo.session"/>
</extract>
<extract frequency="1" filename="c%ts.silo">
<plot type="Pseudocolor" variable="pressure"/>
<plot type="Mesh" variable="mesh"/>
<operator type="Slice" origin="0,0,0" normal="0,0,1">
</extract>
</analysis>
-->
</sensei>
This diff is collapsed.
This diff is collapsed.
......@@ -44,7 +44,7 @@ Arguments to *senseiAddTest* are:
3. **EXEC_NAME** - name to compile the test executable to (optional). If not given then the test name is used. Compilation of a test executable is triggered by the presence of a list of SOURCES.
3. **SOURCES** - a list of source code files needed to compile the test executable (optional).