science/serac: New port: High order nonlinear thermomechanical simulation code

This commit is contained in:
Yuri Victorovich 2022-09-05 01:14:44 -07:00
parent 05be3d3a27
commit 565a8a434c
7 changed files with 189 additions and 0 deletions

View file

@ -417,6 +417,7 @@
SUBDIR += rubygem-ruby-netcdf
SUBDIR += scidavis
SUBDIR += segyio
SUBDIR += serac
SUBDIR += shelxle
SUBDIR += siconos
SUBDIR += siesta

52
science/serac/Makefile Normal file
View file

@ -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>

9
science/serac/distinfo Normal file
View file

@ -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

View file

@ -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>

View file

@ -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>

7
science/serac/pkg-descr Normal file
View file

@ -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

99
science/serac/pkg-plist Normal file
View file

@ -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