aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2021-10-11 03:56:01 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2021-10-11 03:56:33 +0000
commiteb26b25084ca81ec7a3df633d635337b881cf7a0 (patch)
tree08cd1817668ca1885fe4018b834016c4e0bfdd17
parent1ec4ec311a9e7ac64e7cdc037dc5e881617766cc (diff)
science/openmc: New port: Monte Carlo neutron and photon transport simulation code
-rw-r--r--science/Makefile1
-rw-r--r--science/openmc/Makefile43
-rw-r--r--science/openmc/distinfo5
-rw-r--r--science/openmc/files/patch-CMakeLists.txt28
-rw-r--r--science/openmc/pkg-descr10
-rw-r--r--science/openmc/pkg-plist138
6 files changed, 225 insertions, 0 deletions
diff --git a/science/Makefile b/science/Makefile
index b1371a5909d0..421d2e26b93e 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -178,6 +178,7 @@
SUBDIR += openems
SUBDIR += openkim
SUBDIR += openkim-models
+ SUBDIR += openmc
SUBDIR += openmx
SUBDIR += opensim-core
SUBDIR += opensph
diff --git a/science/openmc/Makefile b/science/openmc/Makefile
new file mode 100644
index 000000000000..178c65250c23
--- /dev/null
+++ b/science/openmc/Makefile
@@ -0,0 +1,43 @@
+PORTNAME= openmc
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.12.2
+CATEGORIES= science
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Monte Carlo neutron and photon transport simulation code
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= xtensor>0:math/xtensor
+LIB_DEPENDS= libfmt.so:devel/libfmt \
+ libhdf5.so:science/hdf5 \
+ libpugixml.so:textproc/pugixml \
+ libsz.so:science/szip
+
+USES= cmake:noninja eigen:3 pkgconfig
+
+USE_GITHUB= yes
+GH_ACCOUNT= ${PORTNAME}-dev
+GH_TUPLE= martinmoene:gsl-lite:913e86d:gsl_lite/vendor/gsl-lite
+
+BINARY_ALIAS= git=false
+
+OPTIONS_DEFINE= LIBMESH MPI OPENMP
+OPTIONS_DEFAULT= MPI OPENMP
+
+LIBMESH_DESC= Support for libMesh unstructured mesh tallies
+LIBMESH_CMAKE_BOOL= libmesh
+LIBMESH_LIB_DEPENDS= libmesh_opt.so:math/libmesh
+LIBMESH_BROKEN= https://github.com/openmc-dev/openmc/issues/1893
+
+MPI_VARS= CXX=${LOCALBASE}/mpi/openmpi/bin/mpic++
+MPI_BUILD_DEPENDS= openmpi>0:net/openmpi
+MPI_RUN_DEPENDS= openmpi>0:net/openmpi
+
+OPENMP_CMAKE_BOOL= openmp
+
+post-install:
+ ${RM} -r ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/science/openmc/distinfo b/science/openmc/distinfo
new file mode 100644
index 000000000000..cfecd2e87c2b
--- /dev/null
+++ b/science/openmc/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1633803853
+SHA256 (openmc-dev-openmc-v0.12.2_GH0.tar.gz) = 29ca66d0e7140357d747516807c91cbf1aace0ebc29dfe9650e9da3c2975dd94
+SIZE (openmc-dev-openmc-v0.12.2_GH0.tar.gz) = 8316985
+SHA256 (martinmoene-gsl-lite-913e86d_GH0.tar.gz) = 53f4ad67e182d58161ec297593af4139ccb2a8fd712ba9cd77d129b6f87c6b3b
+SIZE (martinmoene-gsl-lite-913e86d_GH0.tar.gz) = 105966
diff --git a/science/openmc/files/patch-CMakeLists.txt b/science/openmc/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..039d87adf5a2
--- /dev/null
+++ b/science/openmc/files/patch-CMakeLists.txt
@@ -0,0 +1,28 @@
+- workaround for https://github.com/openmc-dev/openmc/issues/1891
+- fix xtl,xtensor dependencies
+
+--- CMakeLists.txt.orig 2021-06-14 14:22:01 UTC
++++ CMakeLists.txt
+@@ -174,7 +174,7 @@ if(GIT_FOUND AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.
+ endif()
+
+ # Check to see if submodules exist (by checking one)
+-if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/vendor/pugixml/CMakeLists.txt")
++if(FALSE AND NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/vendor/pugixml/CMakeLists.txt")
+ message(FATAL_ERROR "The git submodules were not downloaded! GIT_SUBMODULE was \
+ turned off or failed. Please update submodules and try again.")
+ endif()
+@@ -206,9 +206,10 @@ if (NOT (CMAKE_VERSION VERSION_LESS 3.13))
+ cmake_policy(SET CMP0079 NEW)
+ endif()
+
+-add_subdirectory(vendor/xtl)
+-set(xtl_DIR ${CMAKE_CURRENT_BINARY_DIR}/vendor/xtl)
+-add_subdirectory(vendor/xtensor)
++#add_subdirectory(vendor/xtl)
++#set(xtl_DIR ${CMAKE_CURRENT_BINARY_DIR}/vendor/xtl)
++#add_subdirectory(vendor/xtensor)
++find_package(xtensor REQUIRED)
+
+ #===============================================================================
+ # GSL header-only library
diff --git a/science/openmc/pkg-descr b/science/openmc/pkg-descr
new file mode 100644
index 000000000000..5f83fbdea530
--- /dev/null
+++ b/science/openmc/pkg-descr
@@ -0,0 +1,10 @@
+OpenMC is a community-developed Monte Carlo neutron and photon transport
+simulation code. It is capable of performing fixed source, k-eigenvalue, and
+subcritical multiplication calculations on models built using either a
+constructive solid geometry or CAD representation. OpenMC supports both
+continuous-energy and multigroup transport. The continuous-energy particle
+interaction data is based on a native HDF5 format that can be generated from
+ACE files produced by NJOY. Parallelism is enabled via a hybrid MPI and OpenMP
+programming model.
+
+WWW: https://openmc.org/
diff --git a/science/openmc/pkg-plist b/science/openmc/pkg-plist
new file mode 100644
index 000000000000..58e11ae2a3d2
--- /dev/null
+++ b/science/openmc/pkg-plist
@@ -0,0 +1,138 @@
+bin/openmc
+include/faddeeva/Faddeeva.cc
+include/faddeeva/Faddeeva.hh
+include/gsl-lite/gsl-lite.hpp
+include/gsl/gsl
+include/gsl/gsl-lite.hpp
+include/openmc/angle_energy.h
+include/openmc/array.h
+include/openmc/bank.h
+include/openmc/boundary_condition.h
+include/openmc/bremsstrahlung.h
+include/openmc/capi.h
+include/openmc/cell.h
+include/openmc/cmfd_solver.h
+include/openmc/constants.h
+include/openmc/container_util.h
+include/openmc/cross_sections.h
+include/openmc/dagmc.h
+include/openmc/distribution.h
+include/openmc/distribution_angle.h
+include/openmc/distribution_energy.h
+include/openmc/distribution_multi.h
+include/openmc/distribution_spatial.h
+include/openmc/eigenvalue.h
+include/openmc/endf.h
+include/openmc/error.h
+include/openmc/event.h
+include/openmc/file_utils.h
+include/openmc/finalize.h
+include/openmc/geometry.h
+include/openmc/geometry_aux.h
+include/openmc/hdf5_interface.h
+include/openmc/initialize.h
+include/openmc/lattice.h
+include/openmc/material.h
+include/openmc/math_functions.h
+include/openmc/memory.h
+include/openmc/mesh.h
+include/openmc/message_passing.h
+include/openmc/mgxs.h
+include/openmc/mgxs_interface.h
+include/openmc/neighbor_list.h
+include/openmc/nuclide.h
+include/openmc/openmp_interface.h
+include/openmc/output.h
+include/openmc/particle.h
+include/openmc/particle_data.h
+include/openmc/particle_restart.h
+include/openmc/photon.h
+include/openmc/physics.h
+include/openmc/physics_common.h
+include/openmc/physics_mg.h
+include/openmc/plot.h
+include/openmc/position.h
+include/openmc/progress_bar.h
+include/openmc/random_dist.h
+include/openmc/random_lcg.h
+include/openmc/reaction.h
+include/openmc/reaction_product.h
+include/openmc/scattdata.h
+include/openmc/search.h
+include/openmc/secondary_correlated.h
+include/openmc/secondary_kalbach.h
+include/openmc/secondary_nbody.h
+include/openmc/secondary_thermal.h
+include/openmc/secondary_uncorrelated.h
+include/openmc/settings.h
+include/openmc/shared_array.h
+include/openmc/simulation.h
+include/openmc/source.h
+include/openmc/state_point.h
+include/openmc/string_utils.h
+include/openmc/summary.h
+include/openmc/surface.h
+include/openmc/tallies/derivative.h
+include/openmc/tallies/filter.h
+include/openmc/tallies/filter_azimuthal.h
+include/openmc/tallies/filter_cell.h
+include/openmc/tallies/filter_cell_instance.h
+include/openmc/tallies/filter_cellborn.h
+include/openmc/tallies/filter_cellfrom.h
+include/openmc/tallies/filter_collision.h
+include/openmc/tallies/filter_delayedgroup.h
+include/openmc/tallies/filter_distribcell.h
+include/openmc/tallies/filter_energy.h
+include/openmc/tallies/filter_energyfunc.h
+include/openmc/tallies/filter_legendre.h
+include/openmc/tallies/filter_match.h
+include/openmc/tallies/filter_material.h
+include/openmc/tallies/filter_mesh.h
+include/openmc/tallies/filter_meshsurface.h
+include/openmc/tallies/filter_mu.h
+include/openmc/tallies/filter_particle.h
+include/openmc/tallies/filter_polar.h
+include/openmc/tallies/filter_sph_harm.h
+include/openmc/tallies/filter_sptl_legendre.h
+include/openmc/tallies/filter_surface.h
+include/openmc/tallies/filter_universe.h
+include/openmc/tallies/filter_zernike.h
+include/openmc/tallies/tally.h
+include/openmc/tallies/tally_scoring.h
+include/openmc/tallies/trigger.h
+include/openmc/thermal.h
+include/openmc/timer.h
+include/openmc/track_output.h
+include/openmc/urr.h
+include/openmc/vector.h
+include/openmc/version.h
+include/openmc/version.h.in
+include/openmc/volume_calc.h
+include/openmc/wmp.h
+include/openmc/xml_interface.h
+include/openmc/xsdata.h
+lib/cmake/OpenMC/OpenMCConfig.cmake
+lib/cmake/OpenMC/OpenMCConfigVersion.cmake
+lib/cmake/OpenMC/OpenMCTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/OpenMC/OpenMCTargets.cmake
+lib/cmake/gsl-lite/gsl-lite-config-version.cmake
+lib/cmake/gsl-lite/gsl-lite-config.cmake
+lib/cmake/gsl-lite/gsl-lite-targets.cmake
+lib/libfaddeeva.a
+lib/libopenmc.so
+man/man1/openmc.1.gz
+%%DATADIR%%/relaxng/cross_sections.rnc
+%%DATADIR%%/relaxng/cross_sections.rng
+%%DATADIR%%/relaxng/geometry.rnc
+%%DATADIR%%/relaxng/geometry.rng
+%%DATADIR%%/relaxng/materials.rnc
+%%DATADIR%%/relaxng/materials.rng
+%%DATADIR%%/relaxng/mg_cross_sections.rnc
+%%DATADIR%%/relaxng/mg_cross_sections.rng
+%%DATADIR%%/relaxng/plots.rnc
+%%DATADIR%%/relaxng/plots.rng
+%%DATADIR%%/relaxng/readme.rst
+%%DATADIR%%/relaxng/settings.rnc
+%%DATADIR%%/relaxng/settings.rng
+%%DATADIR%%/relaxng/tallies.rnc
+%%DATADIR%%/relaxng/tallies.rng