The full rewrite of mean_field into something maintainable is progressing. dimensions is mostly done, discritization (domain, blocks, and fields) is done, and eos is progressing quickly
66 lines
7.3 KiB
Meson
66 lines
7.3 KiB
Meson
option('allow_preinstalled', type: 'boolean', value: true, description: 'Allow one complete, feature-compatible system MFEM. Set false for the dependency-hermetic source fallback.')
|
|
option('feature_profile', type: 'combo', choices: ['minimal', 'portable', 'full'], value: 'portable', description: 'Defaults for auto features. full is strict and requires all selected non-bundled TPLs in dependency_prefix.')
|
|
option('build_python', type: 'boolean', value: false, description: 'Build the nanobind Python extension and install native assets inside the Python package.')
|
|
option('build_tests', type: 'boolean', value: true, description: 'Register serial, parallel, and Python smoke tests when applicable.')
|
|
option('install_mfem', type: 'boolean', value: true, description: 'Install the source-built MFEM bundle and its runtime dependencies.')
|
|
option('dependency_prefix', type: 'string', value: '', description: 'Explicit prefix containing optional TPLs. Used even when allow_preinstalled=false.')
|
|
option('jobs', type: 'integer', min: 1, max: 1024, value: 4, description: 'Parallel jobs for the CMake/Make source bundle.')
|
|
option('mfem_cuda_arch', type: 'string', value: 'native', description: 'CUDA architectures understood by CMake, for example 80;86. native requires a recent CMake/toolkit.')
|
|
option('mfem_hip_arch', type: 'string', value: '', description: 'HIP GPU target, for example gfx90a. Empty lets the toolchain choose.')
|
|
option('mfem_precision', type: 'combo', choices: ['double', 'single'], value: 'double', description: 'Floating-point precision used consistently by MFEM and Hypre.')
|
|
option('python_install_native', type: 'boolean', value: true, description: 'Install MFEM headers, CMake/pkg-config data, and runtime libraries under the Python package.')
|
|
option('macos_deployment_target', type: 'string', value: '15.0', description: 'Minimum macOS version for native artifacts (15.0 supports C++23 std::print); ignored on other systems. Empty uses the toolchain default.')
|
|
|
|
option('mfem_mpi', type: 'feature', value: 'auto', description: 'MPI parallel MFEM; implies Hypre.')
|
|
option('mfem_metis', type: 'feature', value: 'auto', description: 'METIS graph partitioning.')
|
|
option('mfem_exceptions', type: 'feature', value: 'auto', description: 'MFEM C++ exceptions.')
|
|
option('mfem_zlib', type: 'feature', value: 'auto', description: 'zlib compressed streams.')
|
|
option('mfem_libunwind', type: 'feature', value: 'auto', description: 'libunwind backtraces.')
|
|
option('mfem_lapack', type: 'feature', value: 'auto', description: 'BLAS/LAPACK solvers.')
|
|
option('mfem_thread_safe', type: 'feature', value: 'auto', description: 'MFEM thread-safe mode.')
|
|
option('mfem_openmp', type: 'feature', value: 'auto', description: 'OpenMP backend.')
|
|
option('mfem_legacy_openmp', type: 'feature', value: 'disabled', description: 'Legacy OpenMP backend (mutually exclusive with modern device backends).')
|
|
option('mfem_memalloc', type: 'feature', value: 'enabled', description: 'MFEM internal memory allocator.')
|
|
option('mfem_sundials', type: 'feature', value: 'auto', description: 'SUNDIALS ODE/nonlinear solvers.')
|
|
option('mfem_suitesparse', type: 'feature', value: 'auto', description: 'SuiteSparse direct solvers.')
|
|
option('mfem_superlu', type: 'feature', value: 'auto', description: 'SuperLU_DIST.')
|
|
option('mfem_superlu5', type: 'feature', value: 'disabled', description: 'Compatibility with old SuperLU_DIST 5.1.')
|
|
option('mfem_mumps', type: 'feature', value: 'auto', description: 'MUMPS parallel direct solver.')
|
|
option('mfem_strumpack', type: 'feature', value: 'auto', description: 'STRUMPACK parallel solver.')
|
|
option('mfem_cudss', type: 'feature', value: 'auto', description: 'NVIDIA cuDSS (CUDA only, vendor binary dependency).')
|
|
option('mfem_ginkgo', type: 'feature', value: 'auto', description: 'Ginkgo solvers.')
|
|
option('mfem_amgx', type: 'feature', value: 'auto', description: 'NVIDIA AmgX.')
|
|
option('mfem_magma', type: 'feature', value: 'auto', description: 'MAGMA dense linear algebra.')
|
|
option('mfem_gnutls', type: 'feature', value: 'auto', description: 'GnuTLS socket security.')
|
|
option('mfem_gslib', type: 'feature', value: 'auto', description: 'GSLIB FindPoints support.')
|
|
option('mfem_hdf5', type: 'feature', value: 'auto', description: 'HDF5 data support.')
|
|
option('mfem_netcdf', type: 'feature', value: 'auto', description: 'NetCDF data support.')
|
|
option('mfem_petsc', type: 'feature', value: 'auto', description: 'PETSc solvers.')
|
|
option('mfem_slepc', type: 'feature', value: 'auto', description: 'SLEPc eigensolvers; implies PETSc.')
|
|
option('mfem_mpfr', type: 'feature', value: 'auto', description: 'MPFR arbitrary precision support.')
|
|
option('mfem_sidre', type: 'feature', value: 'auto', description: 'Axom/Sidre support.')
|
|
option('mfem_fms', type: 'feature', value: 'auto', description: 'FMS data model.')
|
|
option('mfem_conduit', type: 'feature', value: 'auto', description: 'Conduit data support.')
|
|
option('mfem_pumi', type: 'feature', value: 'auto', description: 'PUMI meshes.')
|
|
option('mfem_hiop', type: 'feature', value: 'auto', description: 'HiOp optimization.')
|
|
option('mfem_cuda', type: 'feature', value: 'auto', description: 'NVIDIA CUDA backend; requires a host CUDA toolkit.')
|
|
option('mfem_hip', type: 'feature', value: 'auto', description: 'AMD HIP backend; requires a host ROCm toolkit.')
|
|
option('mfem_occa', type: 'feature', value: 'auto', description: 'OCCA device backend.')
|
|
option('mfem_raja', type: 'feature', value: 'auto', description: 'RAJA device backend; raises MFEM to C++20.')
|
|
option('mfem_ceed', type: 'feature', value: 'auto', description: 'libCEED operator backend.')
|
|
option('mfem_umpire', type: 'feature', value: 'auto', description: 'Umpire memory manager; raises MFEM to C++20.')
|
|
option('mfem_simd', type: 'feature', value: 'auto', description: 'SIMD intrinsics.')
|
|
option('mfem_adios2', type: 'feature', value: 'auto', description: 'ADIOS2 I/O.')
|
|
option('mfem_caliper', type: 'feature', value: 'auto', description: 'Caliper profiling.')
|
|
option('mfem_algoim', type: 'feature', value: 'auto', description: 'Algoim implicit geometry support.')
|
|
option('mfem_mkl_cpardiso', type: 'feature', value: 'auto', description: 'Intel MKL Cluster PARDISO.')
|
|
option('mfem_mkl_pardiso', type: 'feature', value: 'auto', description: 'Intel MKL PARDISO.')
|
|
option('mfem_adforward', type: 'feature', value: 'auto', description: 'Forward mode for supported automatic differentiation packages.')
|
|
option('mfem_codipack', type: 'feature', value: 'auto', description: 'CoDiPack automatic differentiation.')
|
|
option('mfem_benchmark', type: 'feature', value: 'disabled', description: 'Upstream benchmark-program build switch; enabling is rejected because it is not an installed MFEM library capability.')
|
|
option('mfem_parelag', type: 'feature', value: 'disabled', description: 'Upstream ParELAG miniapp-only switch; enabling is rejected because it is not an installed MFEM library capability.')
|
|
option('mfem_tribol', type: 'feature', value: 'disabled', description: 'Upstream Tribol miniapp-only switch; enabling is rejected because it is not an installed MFEM library capability.')
|
|
option('mfem_enzyme', type: 'feature', value: 'auto', description: 'Enzyme AD plugin; requires matching Clang/LLVM.')
|
|
option('mfem_moonolith', type: 'feature', value: 'auto', description: 'Moonolith transfer miniapp integration.')
|
|
option('mfem_simmetrix', type: 'feature', value: 'auto', description: 'Simmetrix commercial mesh integration.')
|