mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-07 06:40:06 +00:00
science/bout++: New port: Plasma fluid finite-difference simulation code
This commit is contained in:
parent
145ff519cd
commit
50bbd0a572
@ -38,6 +38,7 @@
|
||||
SUBDIR += bddsolve
|
||||
SUBDIR += berkeleygw
|
||||
SUBDIR += bodr
|
||||
SUBDIR += bout++
|
||||
SUBDIR += buddy
|
||||
SUBDIR += cantera
|
||||
SUBDIR += cardioid
|
||||
|
110
science/bout++/Makefile
Normal file
110
science/bout++/Makefile
Normal file
@ -0,0 +1,110 @@
|
||||
PORTNAME= bout++
|
||||
DISTVERSIONPREFIX= v
|
||||
DISTVERSION= 4.4.2
|
||||
CATEGORIES= science math # physics
|
||||
|
||||
MAINTAINER= yuri@FreeBSD.org
|
||||
COMMENT= Plasma fluid finite-difference simulation code
|
||||
WWW= https://boutproject.github.io/
|
||||
|
||||
LICENSE= GPLv3
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||
|
||||
BUILD_DEPENDS= gmake:devel/gmake
|
||||
LIB_DEPENDS= libfftw3.so:math/fftw3 \
|
||||
libopenblas.so:math/openblas \
|
||||
libuuid.so:misc/e2fsprogs-libuuid
|
||||
RUN_DEPENDS= bash:shells/bash
|
||||
|
||||
USES= cmake:testing python:3.6+ gettext-runtime shebangfix
|
||||
USE_LDCONFIG= yes
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= boutproject
|
||||
GH_PROJECT= BOUT-dev
|
||||
GH_TUPLE= boutproject:boutdata:3a66e6c:boutdata/externalpackages/boutdata \
|
||||
boutproject:boututils:a79a00a:boututils/externalpackages/boututils \
|
||||
google:googletest:96f4ce0:googletest/externalpackages/googletest \
|
||||
meitar:git-archive-all.sh:fc86194:git_archive_all_sh/externalpackages/git-archive-all.sh \
|
||||
mpark:variant:0b488da:variant/externalpackages/mpark.variant
|
||||
|
||||
SHEBANG_GLOB= *.sh
|
||||
SHEBANG_FILES= bin/bout-boutdata-restart-create \
|
||||
bin/bout-pylib-cmd-to-bin \
|
||||
bin/bout-sonnet \
|
||||
bin/bout-stop-script \
|
||||
bin/bout_3to4.py \
|
||||
bin/bout_4to5
|
||||
|
||||
CMAKE_ON= BUILD_SHARED_LIBS
|
||||
CMAKE_OFF= BOUT_TESTS
|
||||
CMAKE_TESTING_ON= BOUT_TESTS # tests fail to build, see https://github.com/boutproject/BOUT-dev/issues/2618
|
||||
|
||||
CXXFLAGS+= -I${WRKSRC}/include
|
||||
LDFLAGS+= -lexecinfo
|
||||
|
||||
OPTIONS_DEFINE= OPENMP PETSC SLEPC SUNDIALS
|
||||
OPTIONS_MULTI= FORMAT
|
||||
OPTIONS_MULTI_FORMAT= HDF5 NETCDF
|
||||
OPTIONS_SINGLE= MPI
|
||||
OPTIONS_SINGLE_MPI= MPICH OPENMPI
|
||||
OPTIONS_DEFAULT= MPICH NETCDF PETSC SLEPC
|
||||
|
||||
FORMAT_DESC= File format support
|
||||
|
||||
HDF5_CMAKE_BOOL= BOUT_USE_HDF5
|
||||
HDF5_LIB_DEPENDS= libhdf5.so:science/hdf5
|
||||
|
||||
NETCDF_USES= localbase:ldflags pkgconfig # because of the cmake patch in files/
|
||||
NETCDF_CMAKE_BOOL= BOUT_USE_NETCDF
|
||||
NETCDF_LIB_DEPENDS= libnetcdf_c++4.so:science/netcdf-cxx \
|
||||
libnetcdf.so:science/netcdf
|
||||
|
||||
MPICH_USES= mpi:mpich
|
||||
|
||||
OPENMP_CMAKE_BOOL= BOUT_ENABLE_OPENMP
|
||||
OPRNMP_BROKEN= SEGV when OpenMP is enabled, see https://github.com/boutproject/BOUT-dev/issues/2620
|
||||
|
||||
OPENMPI_USES= mpi:openmpi
|
||||
|
||||
PETSC_CMAKE_BOOL= BOUT_USE_PETSC
|
||||
|
||||
PETSC_DESC= Build with PETSc support
|
||||
PETSC_CMAKE_BOOL= BOUT_USE_PETSC
|
||||
PETSC_LIB_DEPENDS= libpetsc.so:science/PETSc
|
||||
|
||||
SLEPC_DESC= Build with SLEPc support
|
||||
SLEPC_CMAKE_BOOL= BOUT_USE_SLEPC
|
||||
SLEPC_LIB_DEPENDS= libslepc.so:math/slepc
|
||||
SLEPC_IMPLIES= PETSC # build breaks w/out petsc
|
||||
|
||||
SUNDIALS_DESC= Build with Sundials support
|
||||
SUNDIALS_CMAKE_BOOL= BOUT_USE_SUNDIALS
|
||||
SUNDIALS_CMAKE_ON= -DBOUT_DOWNLOAD_SUNDIALS=OFF
|
||||
SUNDIALS_BROKEN= fails to build with sundials, see https://github.com/boutproject/BOUT-dev/issues/2617
|
||||
|
||||
BINARY_ALIAS= make=${GMAKE}
|
||||
|
||||
.if defined(WITH_EXAMPLES) # Build executables demonstrating BOUT++ capabilities. They aren't installed and don't need to be built for packaging.
|
||||
CMAKE_ON+= BOUT_BUILD_EXAMPLES
|
||||
.endif
|
||||
|
||||
post-install:
|
||||
# workaround for /usr/local/lib/cmake/bout++/bout++Config.cmake:if
|
||||
@${REINPLACE_CMD} -i '' \
|
||||
-e 's|${BUILD_WRKSRC}/externalpackages/mpark.variant|${PREFIX}/lib/cmake/mpark_variant|' \
|
||||
-e 's|${BUILD_WRKSRC}/externalpackages/PVODE|${PREFIX}/lib/cmake/PVODE|' \
|
||||
-e 's|${WRKSRC}/cmake|${PREFIX}/lib/cmake/bout++|' \
|
||||
${STAGEDIR}${PREFIX}/lib/cmake/bout++/bout++Config.cmake
|
||||
# remove *.orig files created by patching
|
||||
@${RM} ${STAGEDIR}${PREFIX}/include/*.orig
|
||||
# install missing PVODE cmake files
|
||||
@${RM} ${STAGEDIR}${PREFIX}/lib/cmake/PVODE/*
|
||||
${INSTALL_DATA} ${BUILD_WRKSRC}/externalpackages/PVODE/PVODEConfig.cmake ${STAGEDIR}${PREFIX}/lib/cmake/PVODE
|
||||
${INSTALL_DATA} ${BUILD_WRKSRC}/externalpackages/PVODE/PVODEConfigVersion.cmake ${STAGEDIR}${PREFIX}/lib/cmake/PVODE
|
||||
@${REINPLACE_CMD} -i '' \
|
||||
-e 's|${BUILD_WRKSRC}/lib|${PREFIX}/lib|' \
|
||||
-e 's|${PORTSDIR}/.*/BOUT-dev-${PORTVERSION}/externalpackages/PVODE/include|${PREFIX}/include|g' \
|
||||
${STAGEDIR}${PREFIX}/lib/cmake/PVODE/*
|
||||
|
||||
.include <bsd.port.mk>
|
13
science/bout++/distinfo
Normal file
13
science/bout++/distinfo
Normal file
@ -0,0 +1,13 @@
|
||||
TIMESTAMP = 1671818294
|
||||
SHA256 (boutproject-BOUT-dev-v4.4.2_GH0.tar.gz) = 0ae02f353f936a2838f6c5088d1706eb0fbf668e702d2e2d5c5f7c472c6827ba
|
||||
SIZE (boutproject-BOUT-dev-v4.4.2_GH0.tar.gz) = 17341124
|
||||
SHA256 (boutproject-boutdata-3a66e6c_GH0.tar.gz) = a52faa54547a61603b738558ddbd7431eef2795d8be118097e998f27f4566242
|
||||
SIZE (boutproject-boutdata-3a66e6c_GH0.tar.gz) = 65076
|
||||
SHA256 (boutproject-boututils-a79a00a_GH0.tar.gz) = ab3c925995dc1709e00b9d6098256841b633bb3f55374a56c63d9918f6930e11
|
||||
SIZE (boutproject-boututils-a79a00a_GH0.tar.gz) = 59415
|
||||
SHA256 (google-googletest-96f4ce0_GH0.tar.gz) = 5d4ca5c67886183e4a6917dc0e35b31d7b8454495db39fad43c6a9a298ebab37
|
||||
SIZE (google-googletest-96f4ce0_GH0.tar.gz) = 888310
|
||||
SHA256 (meitar-git-archive-all.sh-fc86194_GH0.tar.gz) = cf07813444e441fcfbd6a78ad11228880bc2c2f12ce72b312872d9d7c3c341de
|
||||
SIZE (meitar-git-archive-all.sh-fc86194_GH0.tar.gz) = 4033
|
||||
SHA256 (mpark-variant-0b488da_GH0.tar.gz) = 81f8e07d3a500689358400e7347168f39c14d3b944c3181d76c25ae7c838fd96
|
||||
SIZE (mpark-variant-0b488da_GH0.tar.gz) = 33435
|
20
science/bout++/files/patch-CMakeLists.txt
Normal file
20
science/bout++/files/patch-CMakeLists.txt
Normal file
@ -0,0 +1,20 @@
|
||||
- workaround for: find_package(netCDFCxx REQUIRED) fails to find it because netcdf-cxx is built w/out cmake support
|
||||
|
||||
--- CMakeLists.txt.orig 2022-03-03 17:36:51 UTC
|
||||
+++ CMakeLists.txt
|
||||
@@ -556,10 +556,12 @@ if (BOUT_USE_NETCDF)
|
||||
find_package(netCDF REQUIRED)
|
||||
FetchContent_MakeAvailable(netcdf-cxx4)
|
||||
else()
|
||||
- find_package(netCDFCxx REQUIRED)
|
||||
- set(CONFIG_LDFLAGS "${CONFIG_LDFLAGS} ${netCDF_CXX_LIBRARY} ${netCDF_LIBRARIES}")
|
||||
+ find_package(PkgConfig REQUIRED)
|
||||
+ #find_package(netCDFCxx REQUIRED)
|
||||
+ pkg_check_modules(NETCDF REQUIRED IMPORTED_TARGET netcdf-cxx4)
|
||||
+ set(CONFIG_LDFLAGS "${CONFIG_LDFLAGS} ${netCDF_CXX_LIBRARY} ${NETCDF_LDFLAGS}")
|
||||
endif()
|
||||
- target_link_libraries(bout++ PUBLIC netCDF::netcdf-cxx4)
|
||||
+ target_link_libraries(bout++ PUBLIC ${NETCDF_LDFLAGS})
|
||||
target_compile_definitions(bout++
|
||||
PUBLIC "NCDF4"
|
||||
PUBLIC "BOUT_HAS_NETCDF")
|
13
science/bout++/files/patch-include_datafile.hxx
Normal file
13
science/bout++/files/patch-include_datafile.hxx
Normal file
@ -0,0 +1,13 @@
|
||||
- workaround for https://github.com/boutproject/BOUT-dev/issues/2621
|
||||
|
||||
--- include/datafile.hxx.orig 2022-12-24 02:25:29 UTC
|
||||
+++ include/datafile.hxx
|
||||
@@ -18,7 +18,7 @@ class Datafile;
|
||||
#include "bout/macro_for_each.hxx"
|
||||
|
||||
#include "dataformat.hxx"
|
||||
-#include "../src/fileio/impls/hdf5/h5_format.hxx"
|
||||
+//#include "../src/fileio/impls/hdf5/h5_format.hxx"
|
||||
#include "bout/format.hxx"
|
||||
|
||||
#include <cstdarg>
|
13
science/bout++/files/patch-include_options.hxx
Normal file
13
science/bout++/files/patch-include_options.hxx
Normal file
@ -0,0 +1,13 @@
|
||||
- workaround for clang++ failure, see https://github.com/llvm/llvm-project/issues/59683
|
||||
|
||||
--- include/options.hxx.orig 2022-12-23 21:59:09 UTC
|
||||
+++ include/options.hxx
|
||||
@@ -198,7 +198,7 @@ class Options { (public)
|
||||
/// Copy constructor
|
||||
AttributeType(const AttributeType& other) = default;
|
||||
/// Move constructor
|
||||
- AttributeType(AttributeType&& other) : Base(std::move(other)) {}
|
||||
+ AttributeType(AttributeType& other) : Base(std::move(other)) {}
|
||||
|
||||
/// Destructor
|
||||
~AttributeType() = default;
|
@ -0,0 +1,11 @@
|
||||
--- src/solver/impls/adams_bashforth/adams_bashforth.cxx.orig 2022-12-23 20:47:59 UTC
|
||||
+++ src/solver/impls/adams_bashforth/adams_bashforth.cxx
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
#include <output.hxx>
|
||||
|
||||
+#include <array>
|
||||
+
|
||||
namespace {
|
||||
BoutReal lagrange_at_position_denominator(const std::deque<BoutReal>& grid,
|
||||
const int position, const int order) {
|
5
science/bout++/pkg-descr
Normal file
5
science/bout++/pkg-descr
Normal file
@ -0,0 +1,5 @@
|
||||
BOUT++ is a framework for writing fluid and plasma simulations in curvilinear
|
||||
geometry. It is intended to be quite modular, with a variety of numerical
|
||||
methods and time-integration solvers available. BOUT++ is primarily designed
|
||||
and tested with reduced plasma fluid models in mind, but it can evolve any
|
||||
number of equations, with equations appearing in a readable form.
|
152
science/bout++/pkg-plist
Normal file
152
science/bout++/pkg-plist
Normal file
@ -0,0 +1,152 @@
|
||||
bin/bout-archive-helper.sh
|
||||
bin/bout-boutdata-restart-create
|
||||
bin/bout-config
|
||||
bin/bout-config.in
|
||||
bin/bout-log-color
|
||||
bin/bout-pylib-cmd-to-bin
|
||||
bin/bout-sonnet
|
||||
bin/bout-squashoutput
|
||||
bin/bout-stop-script
|
||||
bin/bout_3to4.py
|
||||
bin/bout_4to5
|
||||
bin/bout_4to5_header_file_list
|
||||
include/boundary_factory.hxx
|
||||
include/boundary_op.hxx
|
||||
include/boundary_region.hxx
|
||||
include/boundary_standard.hxx
|
||||
include/bout.hxx
|
||||
include/bout/array.hxx
|
||||
include/bout/assert.hxx
|
||||
include/bout/bout_enum_class.hxx
|
||||
include/bout/constants.hxx
|
||||
include/bout/coordinates.hxx
|
||||
include/bout/deprecated.hxx
|
||||
include/bout/deriv_store.hxx
|
||||
include/bout/expr.hxx
|
||||
include/bout/field_visitor.hxx
|
||||
include/bout/fieldgroup.hxx
|
||||
include/bout/format.hxx
|
||||
include/bout/fv_ops.hxx
|
||||
include/bout/generic_factory.hxx
|
||||
include/bout/globalfield.hxx
|
||||
include/bout/griddata.hxx
|
||||
include/bout/index_derivs.hxx
|
||||
include/bout/index_derivs_interface.hxx
|
||||
include/bout/invert/laplacexy.hxx
|
||||
include/bout/invert/laplacexz.hxx
|
||||
include/bout/invertable_operator.hxx
|
||||
include/bout/macro_for_each.hxx
|
||||
include/bout/mesh.hxx
|
||||
include/bout/monitor.hxx
|
||||
include/bout/openmpwrap.hxx
|
||||
include/bout/paralleltransform.hxx
|
||||
include/bout/petsclib.hxx
|
||||
include/bout/physicsmodel.hxx
|
||||
include/bout/region.hxx
|
||||
include/bout/rkscheme.hxx
|
||||
include/bout/rvec.hxx
|
||||
include/bout/scorepwrapper.hxx
|
||||
include/bout/slepclib.hxx
|
||||
include/bout/snb.hxx
|
||||
include/bout/solver.hxx
|
||||
include/bout/solverfactory.hxx
|
||||
include/bout/surfaceiter.hxx
|
||||
include/bout/sys/expressionparser.hxx
|
||||
include/bout/sys/gettext.hxx
|
||||
include/bout/sys/range.hxx
|
||||
include/bout/sys/timer.hxx
|
||||
include/bout/sys/type_name.hxx
|
||||
include/bout/sys/uncopyable.hxx
|
||||
include/bout/sys/uuid.h
|
||||
include/bout/sys/variant.hxx
|
||||
include/bout/template_combinations.hxx
|
||||
include/bout/traits.hxx
|
||||
include/bout_types.hxx
|
||||
include/boutcomm.hxx
|
||||
include/boutconfig/__init__.py
|
||||
include/boutexception.hxx
|
||||
include/boutmain.hxx
|
||||
include/cyclic_reduction.hxx
|
||||
include/datafile.hxx
|
||||
include/dataformat.hxx
|
||||
include/dcomplex.hxx
|
||||
include/derivs.hxx
|
||||
include/difops.hxx
|
||||
include/fft.hxx
|
||||
include/field.hxx
|
||||
include/field2d.hxx
|
||||
include/field3d.hxx
|
||||
include/field_data.hxx
|
||||
include/field_factory.hxx
|
||||
include/fieldperp.hxx
|
||||
include/globals.hxx
|
||||
include/gyro_average.hxx
|
||||
include/initialprofiles.hxx
|
||||
include/interpolation.hxx
|
||||
include/interpolation_factory.hxx
|
||||
include/invert_laplace.hxx
|
||||
include/invert_parderiv.hxx
|
||||
include/lapack_routines.hxx
|
||||
include/mask.hxx
|
||||
include/mpark/config.hpp
|
||||
include/mpark/in_place.hpp
|
||||
include/mpark/lib.hpp
|
||||
include/mpark/variant.hpp
|
||||
include/msg_stack.hxx
|
||||
include/multiostream.hxx
|
||||
include/options.hxx
|
||||
include/options_netcdf.hxx
|
||||
include/optionsreader.hxx
|
||||
include/output.hxx
|
||||
include/parallel_boundary_op.hxx
|
||||
include/parallel_boundary_region.hxx
|
||||
include/pvode/band.h
|
||||
include/pvode/cvdiag.h
|
||||
include/pvode/cvode.h
|
||||
include/pvode/cvspgmr.h
|
||||
include/pvode/iterativ.h
|
||||
include/pvode/llnlmath.h
|
||||
include/pvode/llnltyps.h
|
||||
include/pvode/nvector.h
|
||||
include/pvode/pvbbdpre.h
|
||||
include/pvode/smalldense.h
|
||||
include/pvode/spgmr.h
|
||||
include/pvode/vector.h
|
||||
include/smoothing.hxx
|
||||
include/sourcex.hxx
|
||||
include/stencils.hxx
|
||||
include/unused.hxx
|
||||
include/utils.hxx
|
||||
include/vecops.hxx
|
||||
include/vector2d.hxx
|
||||
include/vector3d.hxx
|
||||
include/where.hxx
|
||||
lib/cmake/PVODE/PVODEConfig.cmake
|
||||
lib/cmake/PVODE/PVODEConfigVersion.cmake
|
||||
lib/cmake/bout++/BOUT++functions.cmake
|
||||
lib/cmake/bout++/CorrectWindowsPaths.cmake
|
||||
lib/cmake/bout++/FindClangFormat.cmake
|
||||
lib/cmake/bout++/FindFFTW.cmake
|
||||
lib/cmake/bout++/FindLibuuid.cmake
|
||||
lib/cmake/bout++/FindPETSc.cmake
|
||||
lib/cmake/bout++/FindPackageMultipass.cmake
|
||||
lib/cmake/bout++/FindSLEPc.cmake
|
||||
lib/cmake/bout++/FindSUNDIALS.cmake
|
||||
lib/cmake/bout++/FindScoreP.cmake
|
||||
lib/cmake/bout++/FindSphinx.cmake
|
||||
lib/cmake/bout++/FindnetCDF.cmake
|
||||
lib/cmake/bout++/FindnetCDFCxx.cmake
|
||||
lib/cmake/bout++/ResolveCompilerPaths.cmake
|
||||
lib/cmake/bout++/bout++Config.cmake
|
||||
lib/cmake/bout++/bout++ConfigVersion.cmake
|
||||
lib/cmake/bout++/bout++Targets-%%CMAKE_BUILD_TYPE%%.cmake
|
||||
lib/cmake/bout++/bout++Targets.cmake
|
||||
lib/cmake/mpark_variant/mpark_variant-config-version.cmake
|
||||
lib/cmake/mpark_variant/mpark_variant-config.cmake
|
||||
lib/cmake/mpark_variant/mpark_variant-targets.cmake
|
||||
lib/libbout++.so
|
||||
lib/libbout++.so.4.4.0
|
||||
lib/libpvode.so
|
||||
lib/libpvode.so.1.0.0
|
||||
lib/libpvpre.so
|
||||
lib/libpvpre.so.1.0.0
|
Loading…
Reference in New Issue
Block a user