From 079e39d1f4bd7fa8fab824a767fd0e5f5c4c96a8 Mon Sep 17 00:00:00 2001 From: Weston Ortiz Date: Wed, 31 Jul 2024 10:19:14 -0600 Subject: [PATCH] Add strumpack to legacy build script petsc, update flux docs (#471) * Add strumpack to legacy build script petsc, update flux docs * fix flux docs * final doc cleanup --- .../post_processing_fluxes/flux.rst | 141 ++++++++++-------- scripts/build-goma-dependencies.sh | 4 +- 2 files changed, 79 insertions(+), 66 deletions(-) diff --git a/docs/problem_description_file/post_processing_fluxes/flux.rst b/docs/problem_description_file/post_processing_fluxes/flux.rst index 6cdcfa78b..7f94c027d 100644 --- a/docs/problem_description_file/post_processing_fluxes/flux.rst +++ b/docs/problem_description_file/post_processing_fluxes/flux.rst @@ -18,70 +18,83 @@ sets or different fluxes on the same side set. Cards with identical fluxes and i side sets could be used to output the flux calculations to different files. Definitions of the input parameters are: -+-------------+------------------------------------------------------------------------+ -|{flux_type} |A keyword that can have any one of the following values: | -| | | -| | * **FORCE_NORMAL** | -| | * **FORCE_TANGENT1** | -| | * **FORCE_TANGENT2** | -| | * **FORCE_X** | -| | * **FORCE_Y** | -| | * **FORCE_Z** | -| | * **VOLUME_FLUX** | -| | * **SPECIES_FLUX** | -| | * **HEAT_FLUX** | -| | * **TORQUE** | -| | * **AVERAGE_CONC** | -| | * **SURF_DISSIP** | -| | * **AREA** | -| | * **VOL_REVOLUTION** | -| | * **PORE_LIQ_FLUX** | -| | * **CHARGED_SPECIES_FLUX** | -| | * **CURRENT_FICKIAN** | -| | * **CURRENT** | -| | * **ELEC_FORCE_NORMAL** | -| | * **ELEC_FORCE_TANGENT1** | -| | * **ELEC_FORCE_TANGENT2** | -| | * **ELEC_FORCE_X** | -| | * **ELEC_FORCE_Y** | -| | * **ELEC_FORCE_Z** | -| | * **NET_SURF_CHARGE** | -| | * **ACOUSTIC_FLUX_NORMAL** | -| | * **ACOUSTIC_FLUX_TANGENT1** | -| | * **ACOUSTIC_FLUX_TANGENT2** | -| | * **ACOUSTIC_FLUX_X** | -| | * **ACOUSTIC_FLUX_Y** | -| | * **ACOUSTIC_FLUX_Z** | -| | | -| |For every request, the integral of the diffusive portion | -| |followed by that of the convective portion over the | -| |requested boundary will be appended to the specified file. If | -| |the convective flux is not applicable (i.e.for flux_types | -| |**VOLUME_FLUX, TORQUE, AVERAGE_CONC** and | -| |**AREA**), the second quantity will be zero. In all cases the | -| |area of the face (covered by the entire side set) and the time | -| |value are also output. | -+-------------+------------------------------------------------------------------------+ -| |The boundary flag identifier, an integer associated with the | -| |boundary location (side set in EXODUS II) in the problem | -| |domain on which the integrated flux is desired. | -+-------------+------------------------------------------------------------------------+ -| |An integer that designates the mesh block (material) from | -| |which the flux integral should be performed. This has | -| |implications on internal boundaries. | -+-------------+------------------------------------------------------------------------+ -| |An integer that identifies the species number if an integrated | -| |species flux is requested. | -+-------------+------------------------------------------------------------------------+ -| |A character string corresponding to a file name into which | -| |these fluxes should be printed. | -+-------------+------------------------------------------------------------------------+ -|[profile] |Inclusion of the optional string “profile’ to this card will | -| |cause the coordinates (x,y,z), the diffusive integrand, and | -| |the convective integrand at each integration point to be | -| |printed to the file designated above. You can, for example, | -| |print out a pressure distribution used to compute a force. | -+-------------+------------------------------------------------------------------------+ +{flux_type} + A keyword that can have any one of the following values: + * **FORCE_NORMAL** + * **FORCE_TANGENT1** + * **FORCE_TANGENT2** + * **FORCE_X** + * **FORCE_Y** + * **FORCE_Z** + * **VOLUME_FLUX** + * **SPECIES_FLUX** + * **HEAT_FLUX** + * **TORQUE** + * **AVERAGE_CONC** + * **SURF_DISSIP** + * **AREA** + * **VOL_REVOLUTION** + * **PORE_LIQ_FLUX** + * **CHARGED_SPECIES_FLUX** + * **CURRENT_FICKIAN** + * **CURRENT** + * **ELEC_FORCE_NORMAL** + * **ELEC_FORCE_TANGENT1** + * **ELEC_FORCE_TANGENT2** + * **ELEC_FORCE_X** + * **ELEC_FORCE_Y** + * **ELEC_FORCE_Z** + * **NET_SURF_CHARGE** + * **ACOUSTIC_FLUX_NORMAL** + * **ACOUSTIC_FLUX_TANGENT1** + * **ACOUSTIC_FLUX_TANGENT2** + * **ACOUSTIC_FLUX_X** + * **ACOUSTIC_FLUX_Y** + * **ACOUSTIC_FLUX_Z** + + For every request, the integral of the diffusive portion + followed by that of the convective portion over the + requested boundary will be appended to the specified file. If + the convective flux is not applicable (i.e.for flux_types + **VOLUME_FLUX, TORQUE, AVERAGE_CONC** and + **AREA**), the second quantity will be zero. In all cases the + area of the face (covered by the entire side set) and the time + value are also output. + + + The boundary flag identifier, an integer associated with the + boundary location (side set in EXODUS II) in the problem + domain on which the integrated flux is desired. + + + An integer that designates the mesh block (material) from + which the flux integral should be performed. This has + implications on internal boundaries. + + + An integer that identifies the species number if an integrated + species flux is requested. + + + A character string corresponding to a file name into which + these fluxes should be printed. + +[profile [flag0] [flag1] [flag2] [flag3] [flag4]] + Inclusion of the optional string "profile" to this card will + cause the coordinates (x,y,z), the diffusive integrand, and + the convective integrand at each integration point to be + printed to the file designated above. You can, for example, + print out a pressure distribution used to compute a force. + + profile on always prints: x y z coords, flux and flux_conv at position + + flags are 0 or 1, 0 disabled, 1 enabled + + - flag0: shear rate, viscosity + - flag1: mesh principal eigenvalues + - flag2: surface tension + - flag3: temperature pressure + - flag4: x-normal y-normal z-normal ------------ **Examples** diff --git a/scripts/build-goma-dependencies.sh b/scripts/build-goma-dependencies.sh index 3b2a99034..3826898ee 100755 --- a/scripts/build-goma-dependencies.sh +++ b/scripts/build-goma-dependencies.sh @@ -415,7 +415,7 @@ fi if command -v cmake; then cmake_vers=$(cmake --version |grep "version" | awk '{print $NF}') - if [[ "$cmake_vers" = $(echo -e "$cmake_vers\n3.17.1\n" | sort -V |tail -n1) ]]; then + if [[ "$cmake_vers" = $(echo -e "$cmake_vers\n3.23.0\n" | sort -V |tail -n1) ]]; then build_cmake="false" else build_cmake="true" @@ -1760,7 +1760,7 @@ export PETSC_ARCH=arch-linux-c-opt if [ -e $PETSC_DIR/$PETSC_ARCH/lib/libpetsc.a ]; then log_echo "PETSc is already built!" else - ./configure --with-shared-libraries=0 --with-cc=$(which mpicc) --with-cxx=$(which mpicxx) --with-fc=$(which mpif90) --with-debugging=0 COPTFLAGS='-O3' CXXOPTFLAGS='-O3' FOPTFLAGS='-O3' --download-hypre --with-scalapack=1 --with-scalapack-dir=$(readlink --canonicalize-missing "${SCALAPACK_LIBRARY_DIR}/..") --with-superlu_dist=1 --with-superlu_dist-dir=$GOMA_LIB/superlu_dist-$SUPERLU_DIST_VERSION --with-metis=1 --with-metis-dir=$GOMA_LIB/metis-$METIS_VERSION --with-parmetis=1 --with-parmetis-dir=$GOMA_LIB/parmetis-$PARMETIS_VERSION --with-blas-lib=${NON_INTEL_BLAS_LIBRARY} --with-lapack-lib=${NON_INTEL_LAPACK_LIBRARY} --with-mumps=1 --with-mumps-dir="$GOMA_LIB/MUMPS_$MUMPS_VERSION" 2>&1 | tee -a $COMPILE_LOG + ./configure --with-shared-libraries=0 --with-cc=$(which mpicc) --with-cxx=$(which mpicxx) --with-fc=$(which mpif90) --with-debugging=0 COPTFLAGS='-O3' CXXOPTFLAGS='-O3' FOPTFLAGS='-O3' --download-strumpack --download-hypre --with-scalapack=1 --with-scalapack-dir=$(readlink --canonicalize-missing "${SCALAPACK_LIBRARY_DIR}/..") --with-superlu_dist=1 --with-superlu_dist-dir=$GOMA_LIB/superlu_dist-$SUPERLU_DIST_VERSION --with-metis=1 --with-metis-dir=$GOMA_LIB/metis-$METIS_VERSION --with-parmetis=1 --with-parmetis-dir=$GOMA_LIB/parmetis-$PARMETIS_VERSION --with-blas-lib=${NON_INTEL_BLAS_LIBRARY} --with-lapack-lib=${NON_INTEL_LAPACK_LIBRARY} --with-mumps=1 --with-mumps-dir="$GOMA_LIB/MUMPS_$MUMPS_VERSION" 2>&1 | tee -a $COMPILE_LOG make -j$MAKE_JOBS all 2>&1 | tee -a $COMPILE_LOG make check 2>&1 | tee -a $COMPILE_LOG if [ -e $PETSC_DIR/$PETSC_ARCH/lib/libpetsc.a ]; then