Skip to content

Commit ab76516

Browse files
authored
v3.7.1 (#261)
1 parent 12eca41 commit ab76516

File tree

1,204 files changed

+16968
-60284
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,204 files changed

+16968
-60284
lines changed

.github/.codecov.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,7 @@ ignore:
1818
- "Toolbox/amd-src"
1919
- "Toolbox/arpack-src"
2020
- "Toolbox/feast-src"
21-
- "Toolbox/lapack-ext"
22-
- "Toolbox/lis-src"
23-
- "Toolbox/metis-src"
24-
- "Toolbox/mumps-src"
2521
- "Toolbox/superlu-src"
2622
- "Toolbox/superlumt-src"
2723
- "Toolbox/argument.cpp"
2824
- "Toolbox/command.cpp"
29-
- "Toolbox/tester.pardiso.cpp"

.github/workflows/dev-all.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ jobs:
175175
uses: actions/setup-go@v5
176176
with:
177177
cache: false
178-
- name: Depedency
178+
- name: Dependency
179179
run: |
180180
wget -q https://github.com/TLCFEM/prebuilds/releases/download/latest/VTK-9.4.2-linux.tar.gz
181181
tar xf VTK-9.4.2-linux.tar.gz

.github/workflows/master-all.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ jobs:
335335
ls -halt
336336
if [ "${{ github.event_name }}" == "push" ]; then
337337
choco apikey --key ${{ secrets.CHOCO_KEY }} --source https://push.chocolatey.org/
338-
choco push suanpan.3.7.0.nupkg --source https://push.chocolatey.org/
338+
choco push suanpan.3.7.1.nupkg --source https://push.chocolatey.org/
339339
fi
340340
- name: Release SHA256
341341
if: matrix.mkl == 'ON' && matrix.vtk == 'ON' && matrix.avx == 'ON'
@@ -354,8 +354,8 @@ jobs:
354354
uses: svenstaro/upload-release-action@v2
355355
with:
356356
repo_token: ${{ secrets.GITHUB_TOKEN }}
357-
file: suanpan.3.7.0.nupkg
358-
asset_name: suanpan.3.7.0.nupkg
357+
file: suanpan.3.7.1.nupkg
358+
asset_name: suanpan.3.7.1.nupkg
359359
tag: ${{ env.SP_TIME }}
360360
prerelease: true
361361
overwrite: true

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ keywords:
3131
- IGA
3232
- Solid Mechanics
3333
license: GPL-3.0
34-
version: '3.7'
35-
date-released: '2025-04-12'
34+
version: "3.7.1"
35+
date-released: '2025-05-17'

CMakeLists.txt

Lines changed: 40 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
1717
include(CheckLanguage)
1818
check_language(Fortran)
1919
if (CMAKE_Fortran_COMPILER)
20-
set(FORTRAN_STATUS TRUE)
2120
enable_language(Fortran)
22-
else ()
23-
set(FORTRAN_STATUS FALSE)
2421
endif ()
2522

2623
set(ROOT ${CMAKE_CURRENT_SOURCE_DIR})
@@ -67,9 +64,11 @@ else ()
6764
set(SP_OPENBLAS_PATH "" CACHE PATH "Manually assign the path to the OpenBLAS library, if not set, the bundled version will be used.")
6865
endif ()
6966
if (SP_ENABLE_AOCL)
70-
set(AOCL_BLIS_PATH "${CMAKE_SOURCE_DIR}/Libs/linux/libblis-mt.a" CACHE FILEPATH "AOCL libblis path.")
71-
set(AOCL_FLAME_PATH "${CMAKE_SOURCE_DIR}/Libs/linux/libflame.a" CACHE FILEPATH "AOCL libflame path.")
72-
set(AOCL_UTILS_PATH "${CMAKE_SOURCE_DIR}/Libs/linux/libaoclutils.a" CACHE FILEPATH "AOCL libaoclutils path.")
67+
set(AOCL_PATH "${CMAKE_SOURCE_DIR}/Libs/linux/libaocl.a" CACHE FILEPATH "AOCL all-in-one library path.")
68+
if (NOT AOCL_PATH MATCHES "aocl")
69+
message(FATAL_ERROR "Please point AOCL_PATH to the all-in-one library file of AOCL.")
70+
endif ()
71+
add_compile_definitions(SUANPAN_AOCL)
7372
endif ()
7473

7574
set(COMPILER_IDENTIFIER "unknown")
@@ -105,8 +104,7 @@ elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin") # MAC PLATFORM
105104
set(COMPILER_IDENTIFIER "clang-mac")
106105
include_directories("/usr/local/include" "/usr/local/opt/llvm/include" "/usr/local/opt/libomp/include")
107106
link_directories("/usr/local/lib" "/usr/local/opt/llvm/lib" "/usr/local/opt/libomp/lib/")
108-
message(STATUS "On macOS, make sure llvm and libomp are installed.")
109-
message(STATUS "brew install llvm libomp")
107+
message(STATUS "On macOS, make sure `llvm` and `libomp` are installed.")
110108
endif ()
111109
endif ()
112110

@@ -174,38 +172,16 @@ if (SP_ENABLE_MKL)
174172
add_compile_definitions(SUANPAN_MKL)
175173
add_compile_definitions(EZP_MKL)
176174
# add_compile_definitions(ARMA_USE_MKL_ALLOC)
177-
elseif (FORTRAN_STATUS AND CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
175+
elseif (CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
178176
message(WARNING "Since Intel compilers are used, why not enabling MKL?")
179-
else ()
180-
if (SP_ENABLE_64BIT_INDEXING)
181-
message(NOTICE "64-bit indexing is enabled, please make sure the linear algebra driver is compiled using 64-bit integer as well.")
182-
endif ()
183-
if (SP_ENABLE_AOCL)
184-
if (NOT AOCL_BLIS_PATH MATCHES "blis")
185-
message(FATAL_ERROR "Please point AOCL_BLIS_PATH to the library file of BLIS.")
186-
endif ()
187-
if (NOT AOCL_FLAME_PATH MATCHES "flame")
188-
message(FATAL_ERROR "Please point AOCL_FLAME_PATH to the library file of FLAME.")
189-
endif ()
190-
if (NOT AOCL_UTILS_PATH MATCHES "aoclutils")
191-
message(FATAL_ERROR "Please point AOCL_UTILS_PATH to the library file of AOCL Utils.")
192-
endif ()
193-
add_compile_definitions(SUANPAN_AOCL)
194-
endif ()
177+
elseif (SP_ENABLE_64BIT_INDEXING)
178+
message(NOTICE "64-bit indexing is enabled, please make sure the linear algebra driver is compiled using 64-bit integer as well.")
195179
endif ()
196180

197181
if (SP_ENABLE_CUDA)
198-
if (POLICY CMP0146)
199-
cmake_policy(SET CMP0146 OLD)
200-
endif ()
201-
find_package(CUDA PATHS ${CUDA_PATH})
202-
if (NOT CUDA_FOUND)
203-
set(CUDA_PATH "" CACHE PATH "CUDA library path that contains /include folder.")
204-
message(FATAL_ERROR "CUDA library is not found, please indicate its path.")
205-
endif ()
182+
find_package(CUDAToolkit REQUIRED)
183+
link_libraries(CUDA::cudart_static CUDA::cublas_static CUDA::cusolver_static CUDA::cusparse_static)
206184
add_compile_definitions(SUANPAN_CUDA)
207-
include_directories(${CUDA_INCLUDE_DIRS})
208-
link_libraries(${CUDA_LIBRARIES} ${CUDA_CUBLAS_LIBRARIES} ${CUDA_cusolver_LIBRARY} ${CUDA_cusparse_LIBRARY})
209185
if (SP_ENABLE_MAGMA)
210186
set(MAGMAROOT "" CACHE PATH "Magma library path which contains /include and /lib folders.")
211187
find_file(MAGMA_HEADER NAMES magma.h PATHS ${MAGMAROOT}/include)
@@ -279,6 +255,11 @@ if (SP_BUILD_PARALLEL)
279255
endif ()
280256
endif ()
281257

258+
if (CMAKE_BUILD_TYPE MATCHES "Rel")
259+
add_compile_definitions(ARMA_WARN_LEVEL=1)
260+
add_compile_definitions(ARMA_DONT_CHECK_CONFORMANCE)
261+
endif ()
262+
282263
if (BUILD_SHARED_LIBS)
283264
message(STATUS "BUILD SHARED LIBRARY")
284265
else ()
@@ -423,7 +404,7 @@ if (SP_ENABLE_MKL)
423404
elseif (COMPILER_IDENTIFIER MATCHES "vs")
424405
link_libraries(libopenblas)
425406
elseif (SP_ENABLE_AOCL)
426-
link_libraries(${AOCL_FLAME_PATH} ${AOCL_BLIS_PATH} ${AOCL_UTILS_PATH})
407+
link_libraries(${AOCL_PATH})
427408
else ()
428409
link_libraries(openblas)
429410
if (COMPILER_IDENTIFIER MATCHES "linux")
@@ -433,26 +414,15 @@ endif ()
433414

434415
add_executable(${PROJECT_NAME}
435416
suanPan.cpp
417+
Include/catch/catch_amalgamated.cpp
436418
Include/fmt/src/format.cc
437419
Include/whereami/whereami.c
438-
Include/catch/catch_amalgamated.cpp
439-
Constraint/CMakeLists.txt
440-
Database/CMakeLists.txt
441-
Domain/CMakeLists.txt
442-
Load/CMakeLists.txt
443-
Recorder/CMakeLists.txt
444-
Step/CMakeLists.txt
445-
Toolbox/CMakeLists.txt
446-
UnitTest/CMakeLists.txt
447420
)
448421

449422
set_property(TARGET ${PROJECT_NAME} PROPERTY ENABLE_EXPORTS 1)
450423

451-
if (COMPILER_IDENTIFIER MATCHES "vs")
452-
target_link_options(${PROJECT_NAME} PRIVATE /NODEFAULTLIB:LIBCMT)
453-
endif ()
454-
455424
if (MSVC)
425+
target_link_options(${PROJECT_NAME} PRIVATE "/NODEFAULTLIB:LIBCMT")
456426
target_compile_options(${PROJECT_NAME} PRIVATE "/bigobj")
457427
elseif (MINGW)
458428
target_compile_options(${PROJECT_NAME} PRIVATE "-Wa,-mbig-obj")
@@ -478,9 +448,7 @@ add_subdirectory(Step)
478448
add_subdirectory(Toolbox)
479449
add_subdirectory(UnitTest)
480450

481-
target_link_libraries(${PROJECT_NAME} Element Material Section Solver)
482-
483-
if (FORTRAN_STATUS)
451+
if (CMAKE_Fortran_COMPILER)
484452
message(STATUS "Linking additional amd arpack feast libraries.")
485453
add_subdirectory(Toolbox/amd-src)
486454
add_subdirectory(Toolbox/arpack-src)
@@ -565,38 +533,40 @@ if (COMPILER_IDENTIFIER MATCHES "(linux|mac)")
565533
if (SP_ENABLE_SHARED_MKL)
566534
file(GLOB MKL_FILES ${MKL_ROOT}/lib/intel64/libmkl_core${DECOR}*${SUFFIX})
567535
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
568-
file(GLOB MKL_FILES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64${DECOR}*${SUFFIX})
569-
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
570536
file(GLOB MKL_FILES ${MKL_ROOT}/lib/intel64/libmkl_def${DECOR}*${SUFFIX})
571537
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
572538
file(GLOB MKL_FILES ${MKL_ROOT}/lib/intel64/libmkl_avx*${DECOR}*${SUFFIX})
573539
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
540+
if (SP_ENABLE_64BIT_INDEXING)
541+
file(GLOB MKL_FILES ${MKL_ROOT}/lib/intel64/libmkl_intel_ilp64${DECOR}*${SUFFIX})
542+
else ()
543+
file(GLOB MKL_FILES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64${DECOR}*${SUFFIX})
544+
endif ()
545+
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
574546
if (SP_ENABLE_IOMP)
575547
file(GLOB MKL_FILES ${MKL_ROOT}/lib/intel64/libmkl_intel_thread${DECOR}*${SUFFIX})
576-
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
577548
else ()
578549
file(GLOB MKL_FILES ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread${DECOR}*${SUFFIX})
579-
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
580550
endif ()
551+
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
581552
endif ()
582553
if (SP_ENABLE_IOMP)
583554
file(GLOB MKL_FILES ${IOMPPATH}/libiomp5${DECOR}*${SUFFIX})
584555
install(PROGRAMS ${MKL_FILES} DESTINATION lib)
585556
endif ()
586557
endif ()
587558
if (CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM")
588-
set(PATH_LIST
559+
foreach (ONEAPI_PATH
589560
$ENV{ONEAPI_ROOT}/compiler/latest/lib # since 2024
590561
$ENV{ONEAPI_ROOT}/compiler/latest/linux/compiler/lib/intel64_lin # prior to 2024
591562
)
592-
foreach (PATHA ${PATH_LIST})
593563
file(GLOB ONEAPI_FILES
594-
${PATHA}/libifcoremt${DECOR}*${SUFFIX}
595-
${PATHA}/libifport${DECOR}*${SUFFIX}
596-
${PATHA}/libimf${DECOR}*${SUFFIX}
597-
${PATHA}/libintlc${DECOR}*${SUFFIX}
598-
${PATHA}/libiomp5${DECOR}*${SUFFIX}
599-
${PATHA}/libsvml${DECOR}*${SUFFIX}
564+
${ONEAPI_PATH}/libifcoremt${DECOR}*${SUFFIX}
565+
${ONEAPI_PATH}/libifport${DECOR}*${SUFFIX}
566+
${ONEAPI_PATH}/libimf${DECOR}*${SUFFIX}
567+
${ONEAPI_PATH}/libintlc${DECOR}*${SUFFIX}
568+
${ONEAPI_PATH}/libiomp5${DECOR}*${SUFFIX}
569+
${ONEAPI_PATH}/libsvml${DECOR}*${SUFFIX}
600570
)
601571
install(PROGRAMS ${ONEAPI_FILES} DESTINATION lib)
602572
endforeach ()
@@ -650,16 +620,10 @@ elseif (COMPILER_IDENTIFIER MATCHES "vs")
650620
)
651621
install(FILES ${MKL_FILES} DESTINATION bin)
652622
endif ()
653-
if (SP_ENABLE_IOMP)
654-
find_file(libifcoremd libifcoremd.dll PATHS ${MKL_ROOT}/../../ ${MKL_ROOT}/../../compiler/latest/bin/ REQUIRED)
655-
install(FILES ${libifcoremd} DESTINATION bin)
656-
find_file(libiomp5md libiomp5md.dll PATHS ${MKL_ROOT}/../../ ${MKL_ROOT}/../../compiler/latest/bin/ REQUIRED)
657-
install(FILES ${libiomp5md} DESTINATION bin)
658-
find_file(libmmd libmmd.dll PATHS ${MKL_ROOT}/../../ ${MKL_ROOT}/../../compiler/latest/bin/ REQUIRED)
659-
install(FILES ${libmmd} DESTINATION bin)
660-
find_file(svml_dispmd svml_dispmd.dll PATHS ${MKL_ROOT}/../../ ${MKL_ROOT}/../../compiler/latest/bin/ REQUIRED)
661-
install(FILES ${svml_dispmd} DESTINATION bin)
662-
endif ()
623+
foreach (IOMP_DLL libifcoremd libiomp5md libmmd svml_dispmd)
624+
find_file(IOMP_${IOMP_DLL} ${IOMP_DLL}.dll PATHS ${MKL_ROOT}/../../ ${MKL_ROOT}/../../compiler/latest/bin/ REQUIRED NO_DEFAULT_PATH)
625+
install(FILES ${IOMP_${IOMP_DLL}} DESTINATION bin)
626+
endforeach ()
663627
else ()
664628
file(GLOB DLL_FILES Libs/win/lib*.dll)
665629
install(FILES ${DLL_FILES} DESTINATION bin)
@@ -671,7 +635,7 @@ endif ()
671635
message(STATUS "Flags and Dirs:")
672636
message(STATUS "suanPan C_FLAGS: ${CMAKE_C_FLAGS}")
673637
message(STATUS "suanPan CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
674-
if (FORTRAN_STATUS)
638+
if (CMAKE_Fortran_COMPILER)
675639
message(STATUS "suanPan Fortran_FLAGS: ${CMAKE_Fortran_FLAGS}")
676640
endif ()
677641

@@ -712,7 +676,7 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
712676
set(CPACK_PACKAGE_ICON ${ROOT}/Resource/suanPan-ua.svg)
713677
set(CPACK_PACKAGE_RELEASE 1)
714678
set(CPACK_PACKAGE_VENDOR "tlcfem")
715-
set(CPACK_PACKAGE_VERSION "3.7.0")
679+
set(CPACK_PACKAGE_VERSION "3.7.1")
716680
set(CPACK_PACKAGE_DESCRIPTION "An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework")
717681
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/TLCFEM/suanPan")
718682

Constraint/BC/GroupPenaltyBC.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
******************************************************************************/
1717

1818
#include "GroupPenaltyBC.h"
19+
1920
#include <Domain/DomainBase.h>
2021
#include <Domain/Group/Group.h>
2122

Constraint/BC/MultiplierBC.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616
******************************************************************************/
1717

1818
#include "MultiplierBC.h"
19+
1920
#include <Domain/DomainBase.h>
2021
#include <Domain/Factory.hpp>
21-
#include <Step/Step.h>
2222
#include <Solver/Integrator/Integrator.h>
23+
#include <Step/Step.h>
2324

2425
/**
2526
* \brief method to apply the BC to the system.

Constraint/BC/PenaltyBC.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
******************************************************************************/
1717

1818
#include "PenaltyBC.h"
19+
1920
#include <Domain/DomainBase.h>
2021
#include <Domain/Factory.hpp>
2122
#include <Toolbox/utility.h>

Constraint/Constraint.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,6 @@ class Constraint : public ConditionalModifier {
6060
uvec&&, // dof tags
6161
unsigned // size of multiplier
6262
);
63-
Constraint(const Constraint&) = delete; // copy forbidden
64-
Constraint(Constraint&&) = delete; // move forbidden
65-
Constraint& operator=(const Constraint&) = delete; // assign forbidden
66-
Constraint& operator=(Constraint&&) = delete; // assign forbidden
67-
68-
~Constraint() override = default;
6963

7064
const sp_vec& get_resistance() const;
7165
const sp_mat& get_stiffness() const;

0 commit comments

Comments
 (0)