diff --git a/doc/content/source/outputs/MFEMConduitDataCollection.md b/doc/content/source/outputs/MFEMConduitDataCollection.md new file mode 100644 index 00000000..4286b04a --- /dev/null +++ b/doc/content/source/outputs/MFEMConduitDataCollection.md @@ -0,0 +1,23 @@ +# MFEMConduitDataCollection + +## Summary + +!syntax description /Outputs/MFEMConduitDataCollection + +## Overview + +`MFEMDataCollection` controlling output of data to an `mfem::ConduitDataCollection` for visualisation +in VisIt. Conduit output is typically significantly faster than other data collections since VisIt uses +the MFEM FE types for visualisation, and ParaViewDataCollection oversamples the degrees of freedom. + +The user may choose the output protocol out of the following options: `hdf5`, `json`, `conduit_json`, and `conduit_bin`. + +## Example Input File Syntax + +!listing test/tests/outputs/datacollections.i block=Outputs/ConduitDataCollection + +!syntax parameters /Outputs/MFEMConduitDataCollection + +!syntax inputs /Outputs/MFEMConduitDataCollection + +!syntax children /Outputs/MFEMConduitDataCollection diff --git a/scripts/build-platypus-csd3-ampere.sh b/scripts/build-platypus-csd3-ampere.sh index 21af9265..4d5cc5d5 100755 --- a/scripts/build-platypus-csd3-ampere.sh +++ b/scripts/build-platypus-csd3-ampere.sh @@ -90,6 +90,12 @@ install_spack_deps() { spack uninstall -ay arch=${ARCH} spack clean -ab + echo "Installing Conduit..." + spack install conduit +mpi +parmetis +shared \ + ^mpich +cuda +slurm cuda_arch=80 \ + ^hdf5 +cxx +fortran +hl +mpi +shared + spack load conduit arch=${ARCH} + echo "Installing Petsc..." # Spack's petsc doesn't like openmpi, but it works with mpich spack install petsc +cuda cuda_arch=80 +fortran +hdf5 +hypre +metis +mpi \ @@ -107,10 +113,6 @@ install_spack_deps() { spack install netcdf-c +parallel-netcdf spack load netcdf-c arch=${ARCH} - echo "Installing ninja..." - spack install ninja - spack load ninja arch=${ARCH} - echo "Adding python modules..." spack install python@3.12.5 @@ -152,6 +154,7 @@ install_mfem() { export F77=mpif77 export FC=mpif90 SLU_DIR=$(spack find --format "{prefix}" superlu-dist) + CONDUIT_DIR=$(spack find --format "{prefix}" conduit) export SLU_DIR # Build MFEM @@ -176,7 +179,9 @@ install_mfem() { -DMFEM_USE_SUPERLU=YES \ -DMFEM_USE_NETCDF=YES \ -DMFEM_USE_GSLIB=YES \ + -DMFEM_USE_CONDUIT=YES \ -DGSLIB_DIR="${BUILD_PATH}/gslib/build" \ + -DCONDUIT_DIR="${CONDUIT_DIR}" \ -DSuperLUDist_DIR="${SLU_DIR}" \ -DSuperLUDist_VERSION_OK=YES diff --git a/test/tests/outputs/datacollections.i b/test/tests/outputs/datacollections.i index c70b5c73..1a4382ac 100644 --- a/test/tests/outputs/datacollections.i +++ b/test/tests/outputs/datacollections.i @@ -103,5 +103,10 @@ [VisItDataCollection] type = MFEMVisItDataCollection file_base = OutputData/VisItDataCollection + [] + [ConduitDataCollection] + type = MFEMConduitDataCollection + file_base = OutputData/ConduitDataCollection + protocol = conduit_bin [] []