diff --git a/scripts/run_semproxy_benchmark.sh b/scripts/run_semproxy_benchmark.sh index 3aea8f53..a269b5c6 100644 --- a/scripts/run_semproxy_benchmark.sh +++ b/scripts/run_semproxy_benchmark.sh @@ -5,7 +5,7 @@ set -euo pipefail EXS="100" EYS="100" EZS="100" -IMPLEMS="classic optim geos shiva" +IMPLEMS="geos shiva" MESHES="cartesian ucartesian" ORDERS="1 2 3" SEMPROXY_BIN="bin/semproxy" @@ -20,7 +20,7 @@ Options (space-separated lists allowed; quoted): --ex "100" # values for --ex --ey "100" # values for --ey --ez "100" # values for --ez - --implem "classic" # {classic, optim, geos, shiva} + --implem "geos" # {classic, optim, geos, shiva} --mesh "cartesian" # {cartesian, ucartesian} -o|--order "1 2 3" # polynomial orders --bin PATH # path to semproxy (default: bin/semproxy) @@ -77,7 +77,9 @@ for order in $ORDERS; do --ex "$ex" --ey "$ey" --ez "$ez" --implem "$implem" --mesh "$mesh" - -o "$order" ) + -o "$order" + --timemax "1.5" + --dt "0.001" ) echo ">> ${cmd[*]}" if [[ "$DRY_RUN" -eq 1 ]]; then diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 170ef6c8..8b5415ca 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,4 +6,32 @@ add_subdirectory(main) if(ENABLE_PYWRAP) install_pyproxys_package(model solver) -endif() \ No newline at end of file +endif() + + +# Collect all sources +file(GLOB_RECURSE ALL_SOURCE_FILES + "${CMAKE_SOURCE_DIR}/src/*.cpp" + "${CMAKE_SOURCE_DIR}/src/*.hpp" + "${CMAKE_SOURCE_DIR}/src/*.cxx" + "${CMAKE_SOURCE_DIR}/src/*.hxx" + "${CMAKE_SOURCE_DIR}/src/*.cc" + "${CMAKE_SOURCE_DIR}/src/*.c" + "${CMAKE_SOURCE_DIR}/src/*.h" + "${CMAKE_SOURCE_DIR}/src/*.hh") + +# Example: filter out files whose path contains "Shiva" or "SEMKernels" +list(FILTER ALL_SOURCE_FILES EXCLUDE REGEX "Shiva") +list(FILTER ALL_SOURCE_FILES EXCLUDE REGEX "SEMKernels") + +# Make the format target +if( NOT CLANG_FORMAT_EXECUTABLE ) + set( CLANG_FORMAT_EXECUTABLE clang-format ) +endif() + +message( STATUS "Using clang-format executable: ${CLANG_FORMAT_EXECUTABLE}" ) + +add_custom_target( apply_clang_format + COMMAND ${CLANG_FORMAT_EXECUTABLE} -i -style=file -fallback-style=none ${ALL_SOURCE_FILES} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} +) diff --git a/src/discretization/CMakeLists.txt b/src/discretization/CMakeLists.txt index ee4b1192..968d4f4e 100644 --- a/src/discretization/CMakeLists.txt +++ b/src/discretization/CMakeLists.txt @@ -4,7 +4,6 @@ target_include_directories(discretization INTERFACE $ $ - $ $ # $ $ @@ -12,12 +11,7 @@ target_include_directories(discretization ) message(STATUS "Binary include dir: ${CMAKE_BINARY_DIR}/include") -include( fe/SEMKernels/src/Shiva/tpl/camp/extern/blt/SetupBLT.cmake ) add_subdirectory( fe/SEMKernels ) -add_dependencies( discretization finiteElements shiva) - -target_link_libraries(discretization - INTERFACE - proxy_utils -) \ No newline at end of file +target_link_libraries( discretization INTERFACE proxy_utils ) +target_link_libraries( discretization INTERFACE Shiva::shiva ) \ No newline at end of file diff --git a/src/discretization/fe/SEMKernels b/src/discretization/fe/SEMKernels index a69a9541..125d9aca 160000 --- a/src/discretization/fe/SEMKernels +++ b/src/discretization/fe/SEMKernels @@ -1 +1 @@ -Subproject commit a69a954186a1a82ce3711abb22ab6628a234ff71 +Subproject commit 125d9aca4b8e78e153f447cd76fdfc946057fc50 diff --git a/src/main/fe/CMakeLists.txt b/src/main/fe/CMakeLists.txt index 3f2bcbe1..98c709e8 100644 --- a/src/main/fe/CMakeLists.txt +++ b/src/main/fe/CMakeLists.txt @@ -1,5 +1,7 @@ if(COMPILE_SEM) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + add_executable(semproxy src/main.cc src/sem_proxy.cc diff --git a/src/model/api/include/builder.h b/src/model/api/include/builder.h index 005f870a..fc7a9454 100644 --- a/src/model/api/include/builder.h +++ b/src/model/api/include/builder.h @@ -13,6 +13,8 @@ class ModelBuilderBase ModelBuilderBase() = default; ~ModelBuilderBase() = default; + static constexpr int MAX_ORDER = 5; + virtual std::shared_ptr> getModel() const = 0; }; diff --git a/src/model/impl/builder/cartesian/include/cartesian_unstruct_builder.h b/src/model/impl/builder/cartesian/include/cartesian_unstruct_builder.h index 21d7b68e..db470df9 100644 --- a/src/model/impl/builder/cartesian/include/cartesian_unstruct_builder.h +++ b/src/model/impl/builder/cartesian/include/cartesian_unstruct_builder.h @@ -12,6 +12,8 @@ template class CartesianUnstructBuilder : ModelBuilderBase { public: + using ModelBuilderBase::MAX_ORDER; + CartesianUnstructBuilder() {} CartesianUnstructBuilder(const CartesianParams& p) @@ -115,7 +117,7 @@ class CartesianUnstructBuilder : ModelBuilderBase void getCoordInOneDirection(const int& h, const int& n_element, float* coord) { - float xi[order_ + 1]; + float xi[MAX_ORDER + 1]; switch (order_) { @@ -188,9 +190,9 @@ class CartesianUnstructBuilder : ModelBuilderBase nodes_coords_z_ = allocateVector(total_nodes, "nodes coords z"); - float coord_x[order_ + 1]; - float coord_y[order_ + 1]; - float coord_z[order_ + 1]; + float coord_x[MAX_ORDER + 1]; + float coord_y[MAX_ORDER + 1]; + float coord_z[MAX_ORDER + 1]; auto hx = lx_ / ex_; auto hy = ly_ / ey_; diff --git a/src/solver/impl/include/sem_solver.h b/src/solver/impl/include/sem_solver.h index 058307a9..f6706aea 100644 --- a/src/solver/impl/include/sem_solver.h +++ b/src/solver/impl/include/sem_solver.h @@ -76,7 +76,7 @@ class SEMsolver : public SolverBase virtual void computeFEInit(model::ModelApi &mesh, const float sponge_size[3], const bool surface_sponge, - const float taper_delta_); + const float taper_delta_) override final; /** * @brief Compute one time step of the SEM wave equation solver. *