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.
*