aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2022-09-05 08:14:44 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2022-09-05 08:15:51 +0000
commit565a8a434c2616ec558255f4d548d269bcd973b3 (patch)
tree2c570cacb990f69226f65b3385fd45f302f71ebf
parent05be3d3a279ef387900a0ab4fad92fe8da1d0a7d (diff)
downloadports-565a8a434c2616ec558255f4d548d269bcd973b3.tar.gz
ports-565a8a434c2616ec558255f4d548d269bcd973b3.zip
science/serac: New port: High order nonlinear thermomechanical simulation code
-rw-r--r--science/Makefile1
-rw-r--r--science/serac/Makefile52
-rw-r--r--science/serac/distinfo9
-rw-r--r--science/serac/files/patch-src_serac_infrastructure_tests_serac__profiling.cpp10
-rw-r--r--science/serac/files/patch-src_serac_numerics_functional_functional.hpp11
-rw-r--r--science/serac/pkg-descr7
-rw-r--r--science/serac/pkg-plist99
7 files changed, 189 insertions, 0 deletions
diff --git a/science/Makefile b/science/Makefile
index f41ec7bd287d..fd58073dc13c 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -417,6 +417,7 @@
SUBDIR += rubygem-ruby-netcdf
SUBDIR += scidavis
SUBDIR += segyio
+ SUBDIR += serac
SUBDIR += shelxle
SUBDIR += siconos
SUBDIR += siesta
diff --git a/science/serac/Makefile b/science/serac/Makefile
new file mode 100644
index 000000000000..aa6870216062
--- /dev/null
+++ b/science/serac/Makefile
@@ -0,0 +1,52 @@
+PORTNAME= serac
+PORTVERSION= g20220823
+CATEGORIES= science
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= High order nonlinear thermomechanical simulation code
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libaxom.so:science/axom \
+ libconduit.so:science/conduit \
+ libhdf5.so:science/hdf5 \
+ libHYPRE.so:science/hypre \
+ libmfem.so:math/mfem \
+ libsiloh5.so:science/silo
+
+USES= cmake:testing compiler:c++17-lang
+USE_LDCONFIG= yes
+
+USE_GITHUB= yes
+GH_ACCOUNT= LLNL
+GH_TAGNAME= 07b8ef1
+GH_TUPLE= LLNL:blt:49971b88e631aba76a9990c7702ceee47a7c3216:LLNL_blt/cmake/blt \
+ LLNL:uberenv:2cd030dd8fa9ff381900bfbe12fe1eea44a57bb5:LLNL_uberenv/scripts/uberenv \
+ LLNL:serac_tests:2fee9739eadeb218e99f7f5549e0800df81ca757:LLNL_serac_tests/tests
+
+CMAKE_TESTING_ON= ENABLE_TESTS # tests fail to compile, see https://github.com/LLNL/serac/issues/786
+
+CMAKE_ON= BUILD_SHARED_LIBS
+CMAKE_OFF= ENABLE_TESTS
+CMAKE_ARGS= -DAXOM_DIR=${LOCALBASE} \
+ -DCONDUIT_DIR=${LOCALBASE} \
+ -DMFEM_DIR=${LOCALBASE}
+
+OPTIONS_SINGLE= MPI
+OPTIONS_SINGLE_MPI= MPICH OPENMPI
+OPTIONS_DEFAULT= MPICH
+OPTIONS_SUB= yes
+
+MPICH_USES= mpi:mpich
+MPICH_CMAKE_ON= -DENABLE_MPI=ON \
+ -DMPI_C_COMPILER=${MPICC} \
+ -DMPI_CXX_COMPILER=${MPICXX}
+
+OPENMPI_USES= mpi:openmpi
+OPENMPI_CMAKE_ON= -DENABLE_MPI=ON \
+ -DMPI_C_COMPILER=${MPICC} \
+ -DMPI_CXX_COMPILER=${MPICXX}
+OPENMPI_BROKEN= mixes OpenMPI and MPICH when both are installed, see https://github.com/LLNL/serac/issues/787
+
+.include <bsd.port.mk>
diff --git a/science/serac/distinfo b/science/serac/distinfo
new file mode 100644
index 000000000000..ab991e9f6eb8
--- /dev/null
+++ b/science/serac/distinfo
@@ -0,0 +1,9 @@
+TIMESTAMP = 1662358186
+SHA256 (LLNL-serac-g20220823-07b8ef1_GH0.tar.gz) = 687bfc578b6b1ba30d13ac973977f2cd31c92baa7539dbabd2d71c7b99759a51
+SIZE (LLNL-serac-g20220823-07b8ef1_GH0.tar.gz) = 5513337
+SHA256 (LLNL-blt-49971b88e631aba76a9990c7702ceee47a7c3216_GH0.tar.gz) = 456a70fa20ab6859fa7dad80646bd3e5ba39e195f31fe00519beea21622c3c61
+SIZE (LLNL-blt-49971b88e631aba76a9990c7702ceee47a7c3216_GH0.tar.gz) = 1216333
+SHA256 (LLNL-uberenv-2cd030dd8fa9ff381900bfbe12fe1eea44a57bb5_GH0.tar.gz) = 939b597b84afffc1210c61d0fb3a9705696c398d871eda83ccef3bd68381eaf7
+SIZE (LLNL-uberenv-2cd030dd8fa9ff381900bfbe12fe1eea44a57bb5_GH0.tar.gz) = 25837
+SHA256 (LLNL-serac_tests-2fee9739eadeb218e99f7f5549e0800df81ca757_GH0.tar.gz) = 0bcd3ad11b117da20362b8b6187e5ff16100a7058a200230fff7758c4d93cd14
+SIZE (LLNL-serac_tests-2fee9739eadeb218e99f7f5549e0800df81ca757_GH0.tar.gz) = 17539
diff --git a/science/serac/files/patch-src_serac_infrastructure_tests_serac__profiling.cpp b/science/serac/files/patch-src_serac_infrastructure_tests_serac__profiling.cpp
new file mode 100644
index 000000000000..5878566711fb
--- /dev/null
+++ b/science/serac/files/patch-src_serac_infrastructure_tests_serac__profiling.cpp
@@ -0,0 +1,10 @@
+--- src/serac/infrastructure/tests/serac_profiling.cpp.orig 2022-09-05 06:58:55 UTC
++++ src/serac/infrastructure/tests/serac_profiling.cpp
+@@ -4,6 +4,7 @@
+ //
+ // SPDX-License-Identifier: (BSD-3-Clause)
+
++#include <array>
+ #include <cstring>
+ #include <exception>
+
diff --git a/science/serac/files/patch-src_serac_numerics_functional_functional.hpp b/science/serac/files/patch-src_serac_numerics_functional_functional.hpp
new file mode 100644
index 000000000000..4cae7b80f6f3
--- /dev/null
+++ b/science/serac/files/patch-src_serac_numerics_functional_functional.hpp
@@ -0,0 +1,11 @@
+--- src/serac/numerics/functional/functional.hpp.orig 2022-09-05 06:55:45 UTC
++++ src/serac/numerics/functional/functional.hpp
+@@ -23,6 +23,8 @@
+ #include "serac/numerics/functional/boundary_integral.hpp"
+ #include "serac/numerics/functional/dof_numbering.hpp"
+
++#include <array>
++
+ namespace serac {
+
+ template <int i>
diff --git a/science/serac/pkg-descr b/science/serac/pkg-descr
new file mode 100644
index 000000000000..1c47ed569d54
--- /dev/null
+++ b/science/serac/pkg-descr
@@ -0,0 +1,7 @@
+Serac is a 3D implicit nonlinear thermal-structural simulation code. Its primary
+purpose is to investigate multiphysics abstraction strategies and implicit
+finite element-based algorithm development for emerging computing architectures.
+It also serves as a proxy-app for LLNL's Smith code and heavily leverages the
+MFEM finite element library.
+
+WWW: https://github.com/LLNL/serac
diff --git a/science/serac/pkg-plist b/science/serac/pkg-plist
new file mode 100644
index 000000000000..830d25fe8601
--- /dev/null
+++ b/science/serac/pkg-plist
@@ -0,0 +1,99 @@
+bin/serac
+examples/serac/simple_conduction/conduction.lua
+examples/serac/simple_conduction/with_input_file.cpp
+examples/serac/simple_conduction/without_input_file.cpp
+examples/serac/using-with-cmake/CMakeLists.txt
+examples/serac/using-with-cmake/host-config.cmake
+examples/serac/using-with-cmake/serac_example.cpp
+include/serac/infrastructure/about.hpp
+include/serac/infrastructure/accelerator.hpp
+include/serac/infrastructure/cli.hpp
+include/serac/infrastructure/git_sha.hpp
+include/serac/infrastructure/initialize.hpp
+include/serac/infrastructure/input.hpp
+include/serac/infrastructure/logger.hpp
+include/serac/infrastructure/output.hpp
+include/serac/infrastructure/profiling.hpp
+include/serac/infrastructure/terminator.hpp
+include/serac/infrastructure/variant.hpp
+include/serac/mesh/mesh_utils.hpp
+include/serac/mesh/mesh_utils_base.hpp
+include/serac/numerics/equation_solver.hpp
+include/serac/numerics/expr_template_impl.hpp
+include/serac/numerics/expr_template_ops.hpp
+include/serac/numerics/functional/boundary_integral.hpp
+include/serac/numerics/functional/boundary_integral_kernels.hpp
+include/serac/numerics/functional/detail/hexahedron_H1.inl
+include/serac/numerics/functional/detail/hexahedron_Hcurl.inl
+include/serac/numerics/functional/detail/hexahedron_L2.inl
+include/serac/numerics/functional/detail/metaprogramming.hpp
+include/serac/numerics/functional/detail/qoi.inl
+include/serac/numerics/functional/detail/quadrilateral_H1.inl
+include/serac/numerics/functional/detail/quadrilateral_Hcurl.inl
+include/serac/numerics/functional/detail/quadrilateral_L2.inl
+include/serac/numerics/functional/detail/segment_H1.inl
+include/serac/numerics/functional/detail/segment_Hcurl.inl
+include/serac/numerics/functional/detail/segment_L2.inl
+include/serac/numerics/functional/dof_numbering.hpp
+include/serac/numerics/functional/domain_integral.hpp
+include/serac/numerics/functional/domain_integral_kernels.hpp
+include/serac/numerics/functional/dual.hpp
+include/serac/numerics/functional/evector_view.hpp
+include/serac/numerics/functional/finite_element.hpp
+include/serac/numerics/functional/functional.hpp
+include/serac/numerics/functional/functional_qoi.inl
+include/serac/numerics/functional/integral_utilities.hpp
+include/serac/numerics/functional/isotropic_tensor.hpp
+include/serac/numerics/functional/polynomials.hpp
+include/serac/numerics/functional/quadrature.hpp
+include/serac/numerics/functional/tensor.hpp
+include/serac/numerics/functional/tuple.hpp
+include/serac/numerics/functional/tuple_arithmetic.hpp
+include/serac/numerics/odes.hpp
+include/serac/numerics/quadrature_data.hpp
+include/serac/numerics/solver_config.hpp
+include/serac/numerics/stdfunction_operator.hpp
+include/serac/numerics/vector_expression.hpp
+include/serac/physics/base_physics.hpp
+include/serac/physics/boundary_conditions/boundary_condition.hpp
+include/serac/physics/boundary_conditions/boundary_condition_helper.hpp
+include/serac/physics/boundary_conditions/boundary_condition_manager.hpp
+include/serac/physics/coefficients/coefficient_extensions.hpp
+include/serac/physics/coefficients/loading_functions.hpp
+include/serac/physics/coefficients/sensitivity_coefficients.hpp
+include/serac/physics/integrators/displacement_hyperelastic_integrator.hpp
+include/serac/physics/integrators/nonlinear_reaction_integrator.hpp
+include/serac/physics/integrators/traction_integrator.hpp
+include/serac/physics/integrators/wrapper_integrator.hpp
+include/serac/physics/materials/functional_material_utils.hpp
+include/serac/physics/materials/hyperelastic_material.hpp
+include/serac/physics/materials/parameterized_solid_functional_material.hpp
+include/serac/physics/materials/parameterized_thermal_functional_material.hpp
+include/serac/physics/materials/solid_functional_material.hpp
+include/serac/physics/materials/solid_utils.hpp
+include/serac/physics/materials/thermal_expansion_material.hpp
+include/serac/physics/materials/thermal_functional_material.hpp
+include/serac/physics/solid.hpp
+include/serac/physics/solid_functional.hpp
+include/serac/physics/state/finite_element_dual.hpp
+include/serac/physics/state/finite_element_state.hpp
+include/serac/physics/state/finite_element_vector.hpp
+include/serac/physics/state/state_manager.hpp
+include/serac/physics/thermal_conduction.hpp
+include/serac/physics/thermal_conduction_functional.hpp
+include/serac/physics/thermal_mechanics_functional.hpp
+include/serac/physics/thermal_solid.hpp
+include/serac/serac_config.hpp
+lib/cmake/serac-config-version.cmake
+lib/cmake/serac-config.cmake
+lib/cmake/serac-targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/serac-targets.cmake
+lib/libserac_boundary_conditions.so
+lib/libserac_coefficients.so
+lib/libserac_infrastructure.so
+lib/libserac_mesh.so
+lib/libserac_numerics.so
+lib/libserac_physics.so
+lib/libserac_physics_integrators.so
+lib/libserac_physics_materials.so
+lib/libserac_state.so