feat(linear-static-3d-euler-beam): step 23 - hdf5-results-writer
This commit is contained in:
@@ -20,10 +20,12 @@ add_executable(
|
||||
unit/io/abaqus/domain_mapper_test.cpp
|
||||
unit/io/abaqus/input_reader_test.cpp
|
||||
unit/io/abaqus/input_syntax_test.cpp
|
||||
unit/io/hdf5/hdf5_results_writer_test.cpp
|
||||
unit/model/domain_test.cpp
|
||||
unit/model/model_types_test.cpp
|
||||
unit/results/result_records_test.cpp
|
||||
unit/results/result_recovery_test.cpp
|
||||
unit/results/results_writer_test.cpp
|
||||
unit/solvers/linear/linear_solver_test.cpp
|
||||
unit/solvers/linear/mkl_pardiso_solver_test.cpp
|
||||
)
|
||||
@@ -32,6 +34,7 @@ target_link_libraries(
|
||||
fesa_unit_tests
|
||||
PRIVATE
|
||||
fesa_solver
|
||||
Fesa::HDF5
|
||||
GTest::gtest_main
|
||||
)
|
||||
|
||||
@@ -40,6 +43,9 @@ if(WIN32)
|
||||
NOT OMP_DLL_DIR OR NOT OMP_DLLNAME)
|
||||
message(FATAL_ERROR "The oneMKL runtime files required by tests were not resolved")
|
||||
endif()
|
||||
if(NOT EXISTS "${OMP_DLL_DIR}/libmmd.dll")
|
||||
message(FATAL_ERROR "The Intel runtime required by the selected HDF5 DLL was not resolved")
|
||||
endif()
|
||||
|
||||
file(GLOB _fesa_mkl_dispatch_dlls "${MKL_ROOT}/bin/mkl_def.*.dll")
|
||||
if(NOT _fesa_mkl_dispatch_dlls)
|
||||
@@ -65,9 +71,18 @@ if(WIN32)
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
|
||||
"${OMP_DLL_DIR}/${OMP_DLLNAME}"
|
||||
"$<TARGET_FILE_DIR:fesa_unit_tests>"
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
|
||||
"${OMP_DLL_DIR}/libmmd.dll"
|
||||
"$<TARGET_FILE_DIR:fesa_unit_tests>"
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
|
||||
"${_fesa_mkl_dispatch_dll}"
|
||||
"$<TARGET_FILE_DIR:fesa_unit_tests>"
|
||||
# Stage runtime DLLs selected through imported targets, including the
|
||||
# normalized HDF5 backend, without naming a package-specific target.
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
|
||||
"$<TARGET_RUNTIME_DLLS:fesa_unit_tests>"
|
||||
"$<TARGET_FILE_DIR:fesa_unit_tests>"
|
||||
COMMAND_EXPAND_LISTS
|
||||
)
|
||||
|
||||
unset(_fesa_mkl_dispatch_dll)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,24 @@
|
||||
#include "fesa/results/results_writer.hpp"
|
||||
|
||||
#include "fesa/analysis/analysis_state.hpp"
|
||||
#include "fesa/core/diagnostic.hpp"
|
||||
#include "fesa/core/status.hpp"
|
||||
#include "fesa/model/domain.hpp"
|
||||
|
||||
#include <filesystem>
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
|
||||
namespace {
|
||||
|
||||
using WriteSignature = fesa::Status (fesa::ResultsWriter::*)(
|
||||
const std::filesystem::path&,
|
||||
const fesa::Domain&,
|
||||
const fesa::AnalysisState&,
|
||||
const std::vector<fesa::Diagnostic>&);
|
||||
|
||||
static_assert(std::has_virtual_destructor_v<fesa::ResultsWriter>);
|
||||
static_assert(std::is_abstract_v<fesa::ResultsWriter>);
|
||||
static_assert(std::is_same_v<decltype(&fesa::ResultsWriter::write), WriteSignature>);
|
||||
|
||||
} // namespace
|
||||
Reference in New Issue
Block a user