From 4213ba9f27ae93897b7be838788e9107fc271489 Mon Sep 17 00:00:00 2001 From: Claudio Perez <50180406+claudioperez@users.noreply.github.com> Date: Tue, 6 Jul 2021 03:11:52 -0700 Subject: [PATCH] cmp - fix CMakeLists for SuperLU/ARPACK; add FindAMD.cmake; minor reorganizing --- CMakeLists.txt | 84 +++-- Conf.cmake | 61 +--- ETC/cmake/FindAMD.cmake | 93 ++++++ ETC/cmake/FindSUPERLU.cmake | 125 ++++---- .../cmake/OpenSeesDepencencies.cmake | 77 +---- ETC/cmake/OpenSeesDependenciesUnix.cmake | 103 ++++++ ETC/cmake/OpenSeesFunctions.cmake | 55 ++-- OTHER/ARPACK/CMakeLists.txt | 10 + OTHER/SuperLU_5.1.1/CMakeLists.txt | 300 +++++++++++++----- SRC/element/CMakeLists.txt | 40 ++- 10 files changed, 611 insertions(+), 337 deletions(-) create mode 100644 ETC/cmake/FindAMD.cmake rename ConfWin.cmake => ETC/cmake/OpenSeesDepencencies.cmake (59%) create mode 100644 ETC/cmake/OpenSeesDependenciesUnix.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a9dc9622..3db39241d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required(VERSION 3.18) #============================================================================== # # OpenSees -- Open System For Earthquake Engineering Simulation @@ -34,26 +34,54 @@ set(OPS_BUNDLED_DIR ${PROJECT_SOURCE_DIR}/OTHER/) set(OPS_SRC_DIR ${PROJECT_SOURCE_DIR}/SRC/) include(OpenSeesFunctions) include(${PROJECT_SOURCE_DIR}/Conf.cmake) + +set_property(CACHE OPS_FINAL_TARGET PROPERTY STRINGS + G3 OpenSeesTcl OpenSeesMP OpenSeesSP OpenSeesPy +) + +#============================================================================== +# OS Configuration +# +#============================================================================== +if (UNIX) + include(OpenSeesDependenciesUnix) + + if(APPLE) + message(STATUS ">>> MacOS") + + else() + message(STATUS ">>> LINUX") + add_compile_definitions(_LINUX _UNIX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -ffloat-store") + endif() +endif() + +if(WIN32) + include(OpenSeesDependenciesBundled) + message(STATUS ">>> WIN32") +endif() + message("OPS >>> BLAS: ${BLAS_LIBRARIES}") -message("OPS >>> CBLAS: ${CBLAS_LIBRARY}") +message("OPS >>> CBLAS: ${CBLAS_LIBRARY}\n") message("OPS >>> LAPACK: ${LAPACK_LIBRARIES}") message("OPS >>> ARPACK: ${ARPACK_LIBRARIES}") + message("OPS >>> SUPERLU: ${SUPERLU_LIBRARIES}") + message("OPS >>> TCL: ${TCL_LIBRARY}") set(TCL_LIBRARIES ${TCL_LIBRARY}) -set_property(CACHE OPS_FINAL_TARGET PROPERTY STRINGS - G3 OpenSeesTcl OpenSeesMP OpenSeesSP OpenSeesPy -) +message("OPS >>> AMD: ${AMD_LIBRARIES}") + #============================================================================== # General Setup # #============================================================================== -## Properties -# +# Properties + #define_property(TARGET # PROPERTY OPS_INTERPRETER_GLOBAL #TODO # BRIEF_DOCS "Include functionality for using global interpreter" @@ -61,14 +89,11 @@ set_property(CACHE OPS_FINAL_TARGET PROPERTY STRINGS #) -#---------------------------------------------------------------- -# Compilers -#---------------------------------------------------------------- - # Fortran #-------------------------------------- enable_language(Fortran) + # C++ #-------------------------------------- @@ -87,30 +112,12 @@ opensees_add_cxx_flag( ) -#---------------------------------------------------------------- -# OS Specific Configuration -#---------------------------------------------------------------- - -if(APPLE) - message(STATUS ">>> MacOS") -endif() - -if(UNIX AND NOT APPLE) - message(STATUS ">>> LINUX") - add_compile_definitions(_LINUX _UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -ffloat-store") -endif() - -if(WIN32) - message(STATUS ">>> WIN32") -endif() - #---------------------------------------------------------------- # Global Includes #---------------------------------------------------------------- -# + # include paths to main abstract classes -# + # NOTE BeamIntegration and MatrixUtil need to be removed from element/forceBEamColumn include_directories( @@ -209,7 +216,7 @@ target_link_libraries(G3_Numerics INTERFACE ${SUPERLU_LIBRARIES} ${UMFPACK_LIBRARIES} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} - -lamd + ${AMD_LIBRARIES} ) # Core OpenSees @@ -224,6 +231,8 @@ add_library(OPS_Material OBJECT) add_library(OPS_Damage OBJECT) add_library(OPS_Database OBJECT) + + # Optional Extensions add_library(OPS_DRM OBJECT EXCLUDE_FROM_ALL) add_library(OPS_PFEM OBJECT EXCLUDE_FROM_ALL) @@ -232,8 +241,13 @@ add_library(OPS_Paraview OBJECT EXCLUDE_FROM_ALL) add_library(OPS_Renderer OBJECT EXCLUDE_FROM_ALL) #add_library(OPS_Reliability OBJECT EXCLUDE_FROM_ALL) + +# Packaged libraries add_library(G3) add_library(OpenSees EXCLUDE_FROM_ALL ) + +# Executables +#------------------------------------------------------------------------------ add_executable(OpenSeesTcl EXCLUDE_FROM_ALL ${OPS_SRC_DIR}/tcl/tclAppInit.cpp ${OPS_SRC_DIR}/tcl/tclMain.cpp @@ -242,8 +256,11 @@ add_executable(OpenSeesSP EXCLUDE_FROM_ALL ${OPS_SRC_DIR}/tcl/tclAppInit.cpp) add_executable(OpenSeesMP EXCLUDE_FROM_ALL ${OPS_SRC_DIR}/tcl/tclAppInit.cpp) add_executable(OpenSeesPy EXCLUDE_FROM_ALL ${OPS_SRC_DIR}/interpreter/pythonMain.cpp) -# Build selected frontend by default + +# Set selected frontend to be built by default set_target_properties(${OPS_FINAL_TARGET} PROPERTIES EXCLUDE_FROM_ALL OFF) + + # Add sources to targets add_subdirectory(${OPS_SRC_DIR}) @@ -272,6 +289,7 @@ target_link_libraries(G3 OPS_ConvergenceTest G3_Numerics ) + #---------------------------- # OpenSees #---------------------------- diff --git a/Conf.cmake b/Conf.cmake index 132797617..fb4bb6c10 100644 --- a/Conf.cmake +++ b/Conf.cmake @@ -62,54 +62,12 @@ option(OPS_MATERIAL_UNIAXIAL_SNAP # Properties # #============================================================================== - define_property(TARGET PROPERTY OPS_INTERPRETER_GLOBAL #TODO BRIEF_DOCS "Include functionality for using global interpreter" FULL_DOCS "..." ) -#============================================================================== -# External Libraries -# -#============================================================================== -# Synopsis -# - opensees_load( [BUILD|FIND|SEARCH|PATHS] []) -# -# Options: -# - BUILD: Build OpenSees provided library -# - FIND: Use CMake to find library, fail if not found -# - SEARCH: Try finding library with CMake, build OpenSees -# Version if not found. -# - PATHS: Provide specific paths for library. -# -#---------------------------------------------------------------- -opensees_load(TCL FIND - #LIBRARY /home/claudio/miniconda3/lib/libtcl8.6.so - #INCLUDE /home/claudio/miniconda3/include -) - -opensees_load(BLAS SEARCH - #LIBRARY /home/claudio/lib/libBlas.a -) - -opensees_load(LAPACK SEARCH -#LIBRARY /home/claudio/lib/libLapack.a -) - -opensees_load(SUPERLU SEARCH -#LIBRARY /home/claudio/lib/libSuperLU.a -#INCLUDE ${OPS_BUNDLED_DIR}/SuperLU_5.1.1/ -) - -opensees_load(ARPACK SEARCH) - -opensees_load(METIS SEARCH) - -opensees_load(HDF5 FIND) - -opensees_load(MySQL FIND) - #============================================================================== # Select Element Libraries @@ -118,33 +76,36 @@ opensees_load(MySQL FIND) #============================================================================== set(OPS_Element_List - #OPS_Element_PFEMElement + OPS_Element_truss + OPS_Element_beam3d + #OPS_Element_beam2d + OPS_Element_dispBeamColumnInt + OPS_Element_forceBeamColumn + OPS_Element_mixedBeamColumn + #OPS_Element_beamWithHinges - #OPS_Element_feap OPS_Element_LHMYS OPS_Element_PML OPS_Element_RockingBC OPS_Element_UP_ucsd OPS_Element_absorbentBoundaries OPS_Element_adapter - OPS_Element_beam3d - #OPS_Element_beam2d OPS_Element_catenaryCable OPS_Element_componentElement - OPS_Element_dispBeamColumnInt - OPS_Element_forceBeamColumn + OPS_Element_elastomericBearing OPS_Element_frictionBearing + OPS_Element_generic OPS_Element_gradientInelasticBeamColumn OPS_Element_joint - OPS_Element_mixedBeamColumn OPS_Element_mvlem OPS_Element_pyMacro OPS_Element_shell OPS_Element_surfaceLoad - OPS_Element_truss OPS_Element_updatedLagrangianBeamColumn + #OPS_Element_feap + #OPS_Element_PFEMElement ) diff --git a/ETC/cmake/FindAMD.cmake b/ETC/cmake/FindAMD.cmake new file mode 100644 index 000000000..c850ac6b1 --- /dev/null +++ b/ETC/cmake/FindAMD.cmake @@ -0,0 +1,93 @@ +# - Find the AMD includes and library +# +# This module defines +# AMD_INCLUDE_DIR, where to find umfpack.h, etc. +# AMD_LIBRARIES, the libraries to link against to use AMD. +# AMD_FOUND, If false, do not try to use AMD. +# also defined, but not for general use are +# AMD_LIBRARY, where to find the AMD library. +# None of the above will be defined unless UFconfig can be found. +# AMD depends on UFConfig + +#============================================================================= +# Copyright 2010, Martin Koehler +# http://www-user.tu-chemnitz.de/~komart/ +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# Changelog: +# - Apr. 1, 2011 Martin Koehler +# - June 25, 2013 Martin Koehler, add _libdir and _incdir + + if (WIN32) + set(_libdir ENV LIB) + set(_liblist $ENV{LIB}) + set(_incdir) + foreach ( dir ${_liblist}) + set(_incdir ${_incdir} "${dir}/../include") + endforeach() + set(_incdir "${_incdir}" ENV INC ENV INCLUDE ENV CPATH) + elseif (APPLE) + set(_libdir ENV DYLD_LIBRARY_PATH) + string(REPLACE ":" ";" _liblist $ENV{DYLD_LIBRARY_PATH} "") + set(_incdir) + foreach ( dir ${_liblist}) + set(_incdir ${_incdir} "${dir}/../include") + endforeach() + set(_incdir "${_incdir}" ENV INC ENV INCLUDE ENV CPATH) + else () + set(_libdir ENV LD_LIBRARY_PATH) + string(REPLACE ":" ";" _liblist $ENV{LD_LIBRARY_PATH} "") + set(_incdir) + foreach ( dir ${_liblist}) + set(_incdir ${_incdir} "${dir}/../include") + endforeach() + set(_incdir "${_incdir}" ENV INC ENV INCLUDE ENV CPATH) + endif () + + +find_path(AMD_AMD_INCLUDE_DIR amd.h + HINTS ${SUITESPARSE}/AMD/Include #Local Setup + ${SUITESPARSE}/include + ${_incdir} + /usr/local/include/suitesparse #FreeBSD + /usr/include/suitesparse #Debian + /opt/local/include/ufsparse #Macports + NO_DEFAULT_PATH + ) +find_path(AMD_AMD_INCLUDE_DIR amd.h) + + +set(AMD_NAMES ${AMD_NAMES} libamd amd) +set(AMD_PATH + ${SUITESPARSE}/AMD/Lib + ${SUITESPARSE}/lib + /opt/local/lib # Macports + ${_libdir} +) +find_library(AMD_LIBRARY NAMES ${AMD_NAMES} PATHS ${AMD_PATH} NO_DEFAULT_PATH ) +#MESSAGE(STATUS "AMD_LIB: ${AMD_LIBRARY}") +find_library(AMD_LIBRARY NAMES ${AMD_NAMES} ) + +#MESSAGE(STATUS "AMD_INC: ${AMD_AMD_INCLUDE_DIR}" ) +#MESSAGE(STATUS "AMD_LIB: ${AMD_LIBRARY}") + +if (AMD_LIBRARY AND AMD_AMD_INCLUDE_DIR) + SET(AMD_INCLUDE_DIR ${AMD_AMD_INCLUDE_DIR} ) + SET(AMD_LIBRARIES ${AMD_LIBRARY} ) +endif (AMD_LIBRARY AND AMD_AMD_INCLUDE_DIR) + + +# handle the QUIETLY and REQUIRED arguments and set AMD_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(AMD DEFAULT_MSG AMD_LIBRARY AMD_AMD_INCLUDE_DIR) + +mark_as_advanced(AMD_AMD_INCLUDE_DIR AMD_LIBRARY ) + + diff --git a/ETC/cmake/FindSUPERLU.cmake b/ETC/cmake/FindSUPERLU.cmake index 78fe0ca2c..9eaf2cce0 100644 --- a/ETC/cmake/FindSUPERLU.cmake +++ b/ETC/cmake/FindSUPERLU.cmake @@ -12,7 +12,7 @@ if (SUPERLU_INCLUDES AND SUPERLU_LIBRARIES) set(SUPERLU_FIND_QUIETLY TRUE) -endif (SUPERLU_INCLUDES AND SUPERLU_LIBRARIES) +endif () find_path(SUPERLU_INCLUDES NAMES @@ -26,76 +26,78 @@ find_path(SUPERLU_INCLUDES ) message("Looking for SuperLu in $ENV{SUPERLU_DIR}") + find_library(SUPERLU_LIBRARIES NAMES "superlu_5.2.1" "superlu_5.2" "superlu_5.1.1" "superlu_5.1" "superlu_5.0" "superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0" "superlu_3.1" "superlu_3.0" "superlu" PATHS $ENV{SUPERLU_DIR} ${LIB_INSTALL_DIR} - PATH_SUFFIXES lib) + PATH_SUFFIXES lib +) if(SUPERLU_INCLUDES AND SUPERLU_LIBRARIES) -include(CheckCXXSourceCompiles) -include(CMakePushCheckState) -cmake_push_check_state() - -set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${SUPERLU_INCLUDES}) - -# check whether struct mem_usage_t is globally defined -check_cxx_source_compiles(" -typedef int int_t; -#include -#include -int main() { - mem_usage_t mem; - return 0; -}" -SUPERLU_HAS_GLOBAL_MEM_USAGE_T) - - -check_cxx_source_compiles(" -typedef int int_t; -#include -#include -int main() { - return SLU_SINGLE; -}" -SUPERLU_HAS_CLEAN_ENUMS) - -check_cxx_source_compiles(" -typedef int int_t; -#include -#include -int main(void) -{ - GlobalLU_t glu; - return 0; -}" -SUPERLU_HAS_GLOBALLU_T) - -if(SUPERLU_HAS_GLOBALLU_T) - # at least 5.0 - set(SUPERLU_VERSION_VAR "5.0") -elseif(SUPERLU_HAS_CLEAN_ENUMS) - # at least 4.3 - set(SUPERLU_VERSION_VAR "4.3") -elseif(SUPERLU_HAS_GLOBAL_MEM_USAGE_T) - # at least 4.0 - set(SUPERLU_VERSION_VAR "4.0") -else() - set(SUPERLU_VERSION_VAR "3.0") -endif() - -cmake_pop_check_state() - -if(SuperLU_FIND_VERSION) - if(${SUPERLU_VERSION_VAR} VERSION_LESS ${SuperLU_FIND_VERSION}) - set(SUPERLU_VERSION_OK FALSE) + include(CheckCXXSourceCompiles) + include(CMakePushCheckState) + cmake_push_check_state() + + set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${SUPERLU_INCLUDES}) + + # check whether struct mem_usage_t is globally defined + check_cxx_source_compiles(" + typedef int int_t; + #include + #include + int main() { + mem_usage_t mem; + return 0; + }" + SUPERLU_HAS_GLOBAL_MEM_USAGE_T) + + + check_cxx_source_compiles(" + typedef int int_t; + #include + #include + int main() { + return SLU_SINGLE; + }" + SUPERLU_HAS_CLEAN_ENUMS) + + check_cxx_source_compiles(" + typedef int int_t; + #include + #include + int main(void) + { + GlobalLU_t glu; + return 0; + }" + SUPERLU_HAS_GLOBALLU_T) + + if(SUPERLU_HAS_GLOBALLU_T) + # at least 5.0 + set(SUPERLU_VERSION_VAR "5.0") + elseif(SUPERLU_HAS_CLEAN_ENUMS) + # at least 4.3 + set(SUPERLU_VERSION_VAR "4.3") + elseif(SUPERLU_HAS_GLOBAL_MEM_USAGE_T) + # at least 4.0 + set(SUPERLU_VERSION_VAR "4.0") + else() + set(SUPERLU_VERSION_VAR "3.0") + endif() + + cmake_pop_check_state() + + if(SuperLU_FIND_VERSION) + if(${SUPERLU_VERSION_VAR} VERSION_LESS ${SuperLU_FIND_VERSION}) + set(SUPERLU_VERSION_OK FALSE) + else() + set(SUPERLU_VERSION_OK TRUE) + endif() else() set(SUPERLU_VERSION_OK TRUE) endif() -else() - set(SUPERLU_VERSION_OK TRUE) -endif() endif() @@ -105,3 +107,4 @@ find_package_handle_standard_args(SUPERLU VERSION_VAR SUPERLU_VERSION_VAR) mark_as_advanced(SUPERLU_INCLUDES SUPERLU_LIBRARIES) + diff --git a/ConfWin.cmake b/ETC/cmake/OpenSeesDepencencies.cmake similarity index 59% rename from ConfWin.cmake rename to ETC/cmake/OpenSeesDepencencies.cmake index 42e6776fc..9ecef0dd8 100644 --- a/ConfWin.cmake +++ b/ETC/cmake/OpenSeesDepencencies.cmake @@ -7,70 +7,19 @@ # All Rights Reserved # (Copyright and Disclaimer @ http://www.berkeley.edu/OpenSees/copyright.html) # -#------------------------------------------------------------------------------ - #============================================================================== -# Select Executable +# External Libraries # -#============================================================================== -set(OPS_FINAL_TARGET "OpenSeesTcl" - CACHE STRING "OpenSees final target" -) -#============================================================================== -# Basic Switches +# - BLAS_LIBRARIES +# - BLAS_INCLUDE_DIRS # -#============================================================================== -option(FMK - "Special FMK Code" OFF) - -option(OPS_THREADSAFE - "Only build thread safe components" ON) - -# Component Libraries -#-------------------------------------- - -option(OPS_Use_Reliability - "Include reliability" OFF) - -option(OPS_Use_Thermal - "Include thermal components" ON) - -option(OPS_Use_Graphics - "Include graphics" OFF) - -option(OPS_Use_PFEM - "Include PFEM library" OFF) - -option(OPS_Use_ASDEA - "Include ASDEA library" ON) - -option(OPS_Use_DRM - "DRM lib" ON) - -option(OPS_Use_HDF5 - "HDF5 Dependent Code" OFF) - - -# TODO: Implement material options like elements -option(OPS_MATERIAL_UNIAXIAL_PY - "Include PY material library" OFF) - -option(OPS_MATERIAL_UNIAXIAL_SNAP - "Include snap material library" OFF) - -#============================================================================== -# Properties +# - LAPACK_LIBRARIES +# - LAPACK_INCLUDE_DIRS # -#============================================================================== - -define_property(TARGET - PROPERTY OPS_INTERPRETER_GLOBAL #TODO - BRIEF_DOCS "Include functionality for using global interpreter" - FULL_DOCS "..." -) - -#============================================================================== -# External Libraries +# - ARPACK_LIBRARIES +# +# - SUPERLU_LIBRARIES +# - SUPERLU_INCLUDE_DIRS # #============================================================================== # Synopsis @@ -83,7 +32,7 @@ define_property(TARGET # Version if not found. # - PATHS: Provide specific paths for library. # -#---------------------------------------------------------------- +#============================================================================== set(CONDA_DIR "C:/Users/claud/miniconda3") set(CONDA_ENV "c/Users/claud/miniconda3/envs/sim") @@ -91,15 +40,16 @@ opensees_load(TCL #FIND LIBRARY ${CONDA_DIR}/Library/lib/tcl86t.lib INCLUDE ${CONDA_DIR}/Library/include ) + set(TCL_INCLUDE_PATH ${TCL_INCLUDE_DIRS}) message("TCL: ${TCL_INCLUDE_PATH}") opensees_load(BLAS SEARCH - #LIBRARY /home/claudio/lib/libBlas.a + #LIBRARY /home/claudio/lib/libBlas.a ) opensees_load(LAPACK SEARCH -#LIBRARY /home/claudio/lib/libLapack.a + #LIBRARY /home/claudio/lib/libLapack.a ) set(ENV{SUPERLU_DIR} ) @@ -130,7 +80,6 @@ set(MYSQL_INCLUDE_DIR "${CONDA_ENV}/Library/include/mysql/") # Each element in this list ows and associated macro definition #============================================================================== set(OPS_Element_List - #OPS_Element_PFEMElement #OPS_Element_beamWithHinges #OPS_Element_feap diff --git a/ETC/cmake/OpenSeesDependenciesUnix.cmake b/ETC/cmake/OpenSeesDependenciesUnix.cmake new file mode 100644 index 000000000..712c235a7 --- /dev/null +++ b/ETC/cmake/OpenSeesDependenciesUnix.cmake @@ -0,0 +1,103 @@ +#============================================================================== +# +# OpenSees -- Open System For Earthquake Engineering Simulation +# Pacific Earthquake Engineering Research Center +# +# (c) Copyright 1999-2021 The Regents of the University of California +# All Rights Reserved +# (Copyright and Disclaimer @ http://www.berkeley.edu/OpenSees/copyright.html) +# +#============================================================================== +# External Libraries +# +#============================================================================== +# Synopsis +# - opensees_load( [BUILD|FIND|SEARCH|PATHS] []) +# +# Options: +# - BUILD: Build OpenSees provided library +# - FIND: Use CMake to find library, fail if not found +# - SEARCH: Try finding library with CMake, build OpenSees +# Version if not found. +# +# Keyword arguments +# - PATHS: .. +# Provide specific paths for library. +# +# - BUNDLED +# +#---------------------------------------------------------------- +opensees_load(TCL FIND + #LIBRARY /home/claudio/miniconda3/lib/libtcl8.6.so + #INCLUDE /home/claudio/miniconda3/include + #AS TCL_LIBRARY TCL_INCLUDE_PATH +) +set(TCL_LIBRARIES ${TCL_LIBRARY}) + +opensees_load(BLAS FIND + #LIBRARY /home/claudio/lib/libBlas.a +) + +opensees_load(LAPACK FIND + #LIBRARY /home/claudio/lib/libLapack.a +) + +opensees_load(SUPERLU #FIND + BUNDLED ${OPS_BUNDLED_DIR}/SuperLU_5.1.1/ +) + +opensees_load(ARPACK #FIND + BUNDLED ${OPS_BUNDLED_DIR}/ARPACK/ +) + +opensees_load(AMD FIND + BUNDLED ${OPS_BUNDLED_DIR}/AMD/ +) + +opensees_load(METIS FIND) + +opensees_load(HDF5 FIND) + +opensees_load(MySQL FIND) + + +#============================================================================== +# Select Element Libraries +# +# Each element in this list ows and associated macro definition +#============================================================================== +set(OPS_Element_List + + OPS_Element_truss + OPS_Element_beam3d + #OPS_Element_beam2d + OPS_Element_dispBeamColumnInt + OPS_Element_forceBeamColumn + OPS_Element_mixedBeamColumn + + #OPS_Element_beamWithHinges + OPS_Element_LHMYS + OPS_Element_PML + OPS_Element_RockingBC + OPS_Element_UP_ucsd + OPS_Element_absorbentBoundaries + OPS_Element_adapter + OPS_Element_catenaryCable + OPS_Element_componentElement + + OPS_Element_elastomericBearing + OPS_Element_frictionBearing + + OPS_Element_generic + OPS_Element_gradientInelasticBeamColumn + OPS_Element_joint + OPS_Element_mvlem + OPS_Element_pyMacro + OPS_Element_shell + OPS_Element_surfaceLoad + OPS_Element_updatedLagrangianBeamColumn + #OPS_Element_feap + #OPS_Element_PFEMElement +) + + diff --git a/ETC/cmake/OpenSeesFunctions.cmake b/ETC/cmake/OpenSeesFunctions.cmake index 352ae5612..1de7c0145 100644 --- a/ETC/cmake/OpenSeesFunctions.cmake +++ b/ETC/cmake/OpenSeesFunctions.cmake @@ -30,52 +30,59 @@ function (opensees_load lib_name) cmake_parse_arguments( PARSE_ARGV 1 OPS_LOAD_ARG # prefix of output variables - "SEARCH;BUILD;FIND" # list of names of the boolean arguments (only defined ones will be true) - "BUNDLED;LIBRARY;INCLUDE" # list of names of mono-valued arguments - "PATHS" # list of names of multi-valued arguments (output variables are lists) + "BUILD;FIND" # list of names of the boolean arguments (only defined ones will be true) + "BUNDLED;LIBRARY;INCLUDE" # list of names of mono-valued arguments + "PATHS;AS" # list of names of multi-valued arguments (output variables are lists) #${ARGN} # arguments of the function to parse, here we take the all original ones ) set(OPS_PKG_FOUND_VAR "${lib_name}_FOUND")# PARENT_SCOPE) set(${OPS_PKG_FOUND_VAR} FALSE)# PARENT_SCOPE) - if(OPS_LOAD_ARG_BUILD) - message("OPS >>> Using OpenSees bundled library '${lib_name}'") - set(${OPS_PKG_FOUND_VAR} TRUE PARENT_SCOPE) - opensees_build(${lib_name}) - return() - elseif(OPS_LOAD_ARG_BUNDLED) - include_directories("${OPS_LOAD_ARG_BUNDLED}") - set("${lib_name}_INCLUDE_DIRS" ${OPS_LOAD_ARG_BUNDLED}/SRC PARENT_SCOPE) - set("${lib_name}_LIBRARIES" ${lib_name} PARENT_SCOPE) - elseif(OPS_LOAD_ARG_LIBRARY) + #if(OPS_LOAD_ARG_BUILD) + # message("OPS >>> Using OpenSees bundled library '${lib_name}'") + # set(${OPS_PKG_FOUND_VAR} TRUE PARENT_SCOPE) + # opensees_build(${lib_name}) + # return() + + if(OPS_LOAD_ARG_LIBRARY) + if(NOT ${${OPS_PKG_FOUND_VAR}}) message("OPS >>> ${lib_name}") set("${lib_name}_LIBRARIES" ${OPS_LOAD_ARG_LIBRARY} PARENT_SCOPE) - set("${lib_name}_INCLUDE_DIRS" ${OPS_LOAD_ARG_INCLUDE} PARENT_SCOPE) + set("${lib_name}_INCLUDE_DIR" ${OPS_LOAD_ARG_INCLUDE} PARENT_SCOPE) + endif() + endif() - elseif(OPS_LOAD_ARG_PATHS) + if(OPS_LOAD_ARG_PATHS) message("Provided ${lib_name} paths are:") foreach(src ${OPS_LOAD_ARG_PATHS}) message("- ${src}") endforeach(src) find_package(${lib_name} PATHS ${OPS_LOAD_ARG_PATHS}) + endif() - else() - message("OPS>>> find_package(${lib_name})") - find_package(${lib_name}) - message("OPS>>> status: ${OPS_PKG_FOUND_VAR}=${${OPS_PKG_FOUND_VAR}}") - + if(OPS_LOAD_ARG_FIND) + if(NOT ${${OPS_PKG_FOUND_VAR}}) + message("OPS >>> find_package(${lib_name})") + find_package(${lib_name}) + message("OPS >>> status: ${OPS_PKG_FOUND_VAR}=${${OPS_PKG_FOUND_VAR}}") + endif() endif() - if(OPS_LOAD_ARG_SEARCH) + if(OPS_LOAD_ARG_BUNDLED) if(NOT ${${OPS_PKG_FOUND_VAR}}) - message("CMake failed to find ${lib_name}; building OpenSees version") + message("OPS >>> Building OpenSees bundled ${lib_name}") set(${OPS_PKG_FOUND_VAR} TRUE PARENT_SCOPE) - opensees_build(${lib_name}) - set("${lib_name}_LIBRARIES" ${lib_name} PARENT_SCOPE) + #opensees_build(${lib_name}) + add_subdirectory("${OPS_LOAD_ARG_BUNDLED}") + include_directories("${OPS_LOAD_ARG_BUNDLED}") + #set("${lib_name}_INCLUDE_DIRS" ${OPS_LOAD_ARG_BUNDLED}/ PARENT_SCOPE) + set("${lib_name}_LIBRARIES" "${lib_name}") endif() endif() set("${lib_name}_LIBRARIES" ${${lib_name}_LIBRARIES} PARENT_SCOPE) set("${lib_name}_INCLUDE_DIRS" ${${lib_name}_INCLUDE_DIRS} PARENT_SCOPE) + message(" status: ${lib_name}_LIBRARIES =${${lib_name}_LIBRARIES}") + message(" status: ${lib_name}_INCLUDE_DIR =${${lib_name}_INCLUDE_DIR}\n") endfunction() function (opensees_build lib_name) diff --git a/OTHER/ARPACK/CMakeLists.txt b/OTHER/ARPACK/CMakeLists.txt index 4f5b9afe6..dfa483b46 100644 --- a/OTHER/ARPACK/CMakeLists.txt +++ b/OTHER/ARPACK/CMakeLists.txt @@ -18,6 +18,15 @@ project(ARPACK Fortran) add_library(ARPACK) +# Arg-mismatch check adapted from OneLab CMakeLists +include(CheckFortranCompilerFlag) +check_fortran_compiler_flag("-fallow-argument-mismatch" ARGMISMATCH) +if (ARGMISMATCH) + message("Setting -fallow-argument-mismatch") + #add_compile_options("-fallow-argument-mismatch") + target_compile_options(ARPACK PUBLIC $<$:-fallow-argument-mismatch>) +endif() + target_sources(ARPACK PUBLIC dgetv0.f dlaqrb.f dstqrb.f dsortc.f dsortr.f dstatn.f dstats.f dnaitr.f dnapps.f dnaup2.f dnaupd.f dnconv.f dneigh.f dngets.f @@ -26,6 +35,7 @@ target_sources(ARPACK PUBLIC icnteq.f icopy.f iset.f iswap.f ivout.f second.f ) + # Required on Unix OS family to be able to be linked into shared libraries. set_target_properties(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON) diff --git a/OTHER/SuperLU_5.1.1/CMakeLists.txt b/OTHER/SuperLU_5.1.1/CMakeLists.txt index a15c460c3..6539e04d1 100644 --- a/OTHER/SuperLU_5.1.1/CMakeLists.txt +++ b/OTHER/SuperLU_5.1.1/CMakeLists.txt @@ -1,13 +1,13 @@ -# makefile for sparse supernodal LU, implemented in ANSI C +# sparse supernodal LU, implemented in ANSI C ####################################################################### # This is the makefile to create a library for SuperLU. # The files are organized as follows: # # ALLAUX -- Auxiliary routines called from all precisions of SuperLU -# SLUSRC -- Single precision real SuperLU routines +# SLUSRC -- Single precision real SuperLU routines # DLUSRC -- Double precision real SuperLU routines -# CLUSRC -- Single precision complex SuperLU routines +# CLUSRC -- Single precision complex SuperLU routines # ZLUSRC -- Double precision complex SuperLU routines # # The library can be set up to include routines for any combination @@ -28,124 +28,256 @@ # ####################################################################### -project(SUPERLU) +project(SUPERLU C) +set(SUPERLU_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/SRC") + +add_library(SUPERLU) ### return machine parameters -#SCAUX = smach.o -#DZAUX = dmach.o -### SuperLU +#SCAUX = smach.o -target_sources(ALLAUX PUBLIC - superlu_timer.c util.c memory.c get_perm_c.c mmd.c - sp_coletree.c sp_preorder.c sp_ienv.c relax_snode.c - heap_relax_snode.c colamd.c - ilu_relax_snode.c ilu_heap_relax_snode.c mark_relax.c - mc64ad.c qselect.c input_error.c smach.c dmach.c +add_library(DZLAUX OBJECT + ${SUPERLU_SRC_DIR}/dmach.c ) -target_sources(SLUSRC PUBLIC - sgssv.c sgssvx.c - ssp_blas2.c ssp_blas3.c sgscon.c - slangs.c sgsequ.c slaqgs.c spivotgrowth.c - sgsrfs.c sgstrf.c sgstrs.c scopy_to_ucol.c - ssnode_dfs.c ssnode_bmod.c - spanel_dfs.c spanel_bmod.c - sreadhb.c sreadrb.c sreadtriple.c - scolumn_dfs.c scolumn_bmod.c spivotL.c spruneL.c - smemory.c sutil.c smyblas2.c - sgsisx.c sgsitrf.c sldperm.c - ilu_sdrop_row.c ilu_ssnode_dfs.c - ilu_scolumn_dfs.c ilu_spanel_dfs.c ilu_scopy_to_ucol.c - ilu_spivotL.c sdiagonal.c slacon2.c +add_library(ALLAUX OBJECT + ${SUPERLU_SRC_DIR}/superlu_timer.c + ${SUPERLU_SRC_DIR}/util.c + ${SUPERLU_SRC_DIR}/memory.c + ${SUPERLU_SRC_DIR}/get_perm_c.c + ${SUPERLU_SRC_DIR}/mmd.c + ${SUPERLU_SRC_DIR}/sp_coletree.c + ${SUPERLU_SRC_DIR}/sp_preorder.c + ${SUPERLU_SRC_DIR}/sp_ienv.c + ${SUPERLU_SRC_DIR}/relax_snode.c + ${SUPERLU_SRC_DIR}/heap_relax_snode.c + ${SUPERLU_SRC_DIR}/colamd.c + ${SUPERLU_SRC_DIR}/ilu_relax_snode.c + ${SUPERLU_SRC_DIR}/ilu_heap_relax_snode.c + ${SUPERLU_SRC_DIR}/mark_relax.c + ${SUPERLU_SRC_DIR}/mc64ad.c + ${SUPERLU_SRC_DIR}/qselect.c + ${SUPERLU_SRC_DIR}/input_error.c + ${SUPERLU_SRC_DIR}/smach.c + #${SUPERLU_SRC_DIR}/dmach.c ) -target_sources(DLUSRC PUBLIC - dgssv.c dgssvx.c - dsp_blas2.c dsp_blas3.c dgscon.c - dlangs.c dgsequ.c dlaqgs.c dpivotgrowth.c - dgsrfs.c dgstrf.c dgstrs.c dcopy_to_ucol.c - dsnode_dfs.c dsnode_bmod.c dpanel_dfs.c dpanel_bmod.c - dreadhb.c dreadrb.c dreadtriple.c - dcolumn_dfs.c dcolumn_bmod.c dpivotL.c dpruneL.c - dmemory.c dutil.c dmyblas2.c - dgsisx.c dgsitrf.c dldperm.c - ilu_ddrop_row.c ilu_dsnode_dfs.c - ilu_dcolumn_dfs.c ilu_dpanel_dfs.c ilu_dcopy_to_ucol.c - ilu_dpivotL.c ddiagonal.c dlacon2.c - ## dgstrsL.c dgstrsU.c +#add_library(SLUSRC OBJECT +# ${SUPERLU_SRC_DIR}/sgssv.c +# ${SUPERLU_SRC_DIR}/sgssvx.c +# ${SUPERLU_SRC_DIR}/ssp_blas2.c +# ${SUPERLU_SRC_DIR}/ssp_blas3.c +# ${SUPERLU_SRC_DIR}/sgscon.c +# ${SUPERLU_SRC_DIR}/slangs.c +# ${SUPERLU_SRC_DIR}/sgsequ.c +# ${SUPERLU_SRC_DIR}/slaqgs.c +# ${SUPERLU_SRC_DIR}/spivotgrowth.c +# ${SUPERLU_SRC_DIR}/sgsrfs.c +# ${SUPERLU_SRC_DIR}/sgstrf.c +# ${SUPERLU_SRC_DIR}/sgstrs.c +# ${SUPERLU_SRC_DIR}/scopy_to_ucol.c +# ${SUPERLU_SRC_DIR}/ssnode_dfs.c +# ${SUPERLU_SRC_DIR}/ssnode_bmod.c +# ${SUPERLU_SRC_DIR}/spanel_dfs.c +# ${SUPERLU_SRC_DIR}/spanel_bmod.c +# ${SUPERLU_SRC_DIR}/sreadhb.c +# ${SUPERLU_SRC_DIR}/sreadrb.c +# ${SUPERLU_SRC_DIR}/sreadtriple.c +# ${SUPERLU_SRC_DIR}/scolumn_dfs.c +# ${SUPERLU_SRC_DIR}/scolumn_bmod.c +# ${SUPERLU_SRC_DIR}/spivotL.c +# ${SUPERLU_SRC_DIR}/spruneL.c +# ${SUPERLU_SRC_DIR}/smemory.c +# ${SUPERLU_SRC_DIR}/sutil.c +# ${SUPERLU_SRC_DIR}/smyblas2.c +# ${SUPERLU_SRC_DIR}/sgsisx.c +# ${SUPERLU_SRC_DIR}/sgsitrf.c +# ${SUPERLU_SRC_DIR}/sldperm.c +# ${SUPERLU_SRC_DIR}/ilu_sdrop_row.c +# ${SUPERLU_SRC_DIR}/ilu_ssnode_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_scolumn_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_spanel_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_scopy_to_ucol.c +# ${SUPERLU_SRC_DIR}/ilu_spivotL.c +# ${SUPERLU_SRC_DIR}/sdiagonal.c +# ${SUPERLU_SRC_DIR}/slacon2.c +#) -target_sources(CLUSRC PUBLIC - scomplex.c cgssv.c cgssvx.c csp_blas2.c csp_blas3.c cgscon.c - clangs.c cgsequ.c claqgs.c cpivotgrowth.c - cgsrfs.c cgstrf.c cgstrs.c ccopy_to_ucol.c - csnode_dfs.c csnode_bmod.c - cpanel_dfs.c cpanel_bmod.c - creadhb.c creadrb.c creadtriple.c - ccolumn_dfs.c ccolumn_bmod.c cpivotL.c cpruneL.c - cmemory.c cutil.c cmyblas2.c - cgsisx.c cgsitrf.c cldperm.c - ilu_cdrop_row.c ilu_csnode_dfs.c - ilu_ccolumn_dfs.c ilu_cpanel_dfs.c ilu_ccopy_to_ucol.c - ilu_cpivotL.c cdiagonal.c clacon2.c scsum1.c icmax1.c +add_library(DLUSRC OBJECT + ${SUPERLU_SRC_DIR}/dgssv.c + ${SUPERLU_SRC_DIR}/dgssvx.c + ${SUPERLU_SRC_DIR}/dsp_blas2.c + ${SUPERLU_SRC_DIR}/dsp_blas3.c + ${SUPERLU_SRC_DIR}/dgscon.c + ${SUPERLU_SRC_DIR}/dlangs.c + ${SUPERLU_SRC_DIR}/dgsequ.c + ${SUPERLU_SRC_DIR}/dlaqgs.c + ${SUPERLU_SRC_DIR}/dpivotgrowth.c + ${SUPERLU_SRC_DIR}/dgsrfs.c + ${SUPERLU_SRC_DIR}/dgstrf.c + ${SUPERLU_SRC_DIR}/dgstrs.c + ${SUPERLU_SRC_DIR}/dcopy_to_ucol.c + ${SUPERLU_SRC_DIR}/dsnode_dfs.c + ${SUPERLU_SRC_DIR}/dsnode_bmod.c + ${SUPERLU_SRC_DIR}/dpanel_dfs.c + ${SUPERLU_SRC_DIR}/dpanel_bmod.c + ${SUPERLU_SRC_DIR}/dreadhb.c + ${SUPERLU_SRC_DIR}/dreadrb.c + ${SUPERLU_SRC_DIR}/dreadtriple.c + ${SUPERLU_SRC_DIR}/dcolumn_dfs.c + ${SUPERLU_SRC_DIR}/dcolumn_bmod.c + ${SUPERLU_SRC_DIR}/dpivotL.c + ${SUPERLU_SRC_DIR}/dpruneL.c + ${SUPERLU_SRC_DIR}/dmemory.c + ${SUPERLU_SRC_DIR}/dutil.c + ${SUPERLU_SRC_DIR}/dmyblas2.c + ${SUPERLU_SRC_DIR}/dgsisx.c + ${SUPERLU_SRC_DIR}/dgsitrf.c + ${SUPERLU_SRC_DIR}/dldperm.c + ${SUPERLU_SRC_DIR}/ilu_ddrop_row.c + ${SUPERLU_SRC_DIR}/ilu_dsnode_dfs.c + ${SUPERLU_SRC_DIR}/ilu_dcolumn_dfs.c + ${SUPERLU_SRC_DIR}/ilu_dpanel_dfs.c + ${SUPERLU_SRC_DIR}/ilu_dcopy_to_ucol.c + ${SUPERLU_SRC_DIR}/ilu_dpivotL.c + ${SUPERLU_SRC_DIR}/ddiagonal.c + ${SUPERLU_SRC_DIR}/dlacon2.c + ## dgstrsL.c dgstrsU.c ) -target_sources(ZLUSRC PUBLIC - dcomplex.c zgssv.c zgssvx.c zsp_blas2.c zsp_blas3.c zgscon.c - zlangs.c zgsequ.c zlaqgs.c zpivotgrowth.c - zgsrfs.c zgstrf.c zgstrs.c zcopy_to_ucol.c - zsnode_dfs.c zsnode_bmod.c - zpanel_dfs.c zpanel_bmod.c - zreadhb.c zreadrb.c zreadtriple.c - zcolumn_dfs.c zcolumn_bmod.c zpivotL.c zpruneL.c - zmemory.c zutil.c zmyblas2.c - zgsisx.c zgsitrf.c zldperm.c - ilu_zdrop_row.c ilu_zsnode_dfs.c - ilu_zcolumn_dfs.c ilu_zpanel_dfs.c ilu_zcopy_to_ucol.c - ilu_zpivotL.c zdiagonal.c zlacon2.c dzsum1.c izmax1.c -) +#add_library(CLUSRC OBJECT +# ${SUPERLU_SRC_DIR}/scomplex.c +# ${SUPERLU_SRC_DIR}/cgssv.c +# ${SUPERLU_SRC_DIR}/cgssvx.c +# ${SUPERLU_SRC_DIR}/csp_blas2.c +# ${SUPERLU_SRC_DIR}/csp_blas3.c +# ${SUPERLU_SRC_DIR}/cgscon.c +# ${SUPERLU_SRC_DIR}/clangs.c +# ${SUPERLU_SRC_DIR}/cgsequ.c +# ${SUPERLU_SRC_DIR}/claqgs.c +# ${SUPERLU_SRC_DIR}/cpivotgrowth.c +# ${SUPERLU_SRC_DIR}/cgsrfs.c +# ${SUPERLU_SRC_DIR}/cgstrf.c +# ${SUPERLU_SRC_DIR}/cgstrs.c +# ${SUPERLU_SRC_DIR}/ccopy_to_ucol.c +# ${SUPERLU_SRC_DIR}/csnode_dfs.c +# ${SUPERLU_SRC_DIR}/csnode_bmod.c +# ${SUPERLU_SRC_DIR}/cpanel_dfs.c +# ${SUPERLU_SRC_DIR}/cpanel_bmod.c +# ${SUPERLU_SRC_DIR}/creadhb.c +# ${SUPERLU_SRC_DIR}/creadrb.c +# ${SUPERLU_SRC_DIR}/creadtriple.c +# ${SUPERLU_SRC_DIR}/ccolumn_dfs.c +# ${SUPERLU_SRC_DIR}/ccolumn_bmod.c +# ${SUPERLU_SRC_DIR}/cpivotL.c +# ${SUPERLU_SRC_DIR}/cpruneL.c +# ${SUPERLU_SRC_DIR}/cmemory.c +# ${SUPERLU_SRC_DIR}/cutil.c +# ${SUPERLU_SRC_DIR}/cmyblas2.c +# ${SUPERLU_SRC_DIR}/cgsisx.c +# ${SUPERLU_SRC_DIR}/cgsitrf.c +# ${SUPERLU_SRC_DIR}/cldperm.c +# ${SUPERLU_SRC_DIR}/ilu_cdrop_row.c +# ${SUPERLU_SRC_DIR}/ilu_csnode_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_ccolumn_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_cpanel_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_ccopy_to_ucol.c +# ${SUPERLU_SRC_DIR}/ilu_cpivotL.c +# ${SUPERLU_SRC_DIR}/cdiagonal.c +# ${SUPERLU_SRC_DIR}/clacon2.c +# ${SUPERLU_SRC_DIR}/scsum1.c +# ${SUPERLU_SRC_DIR}/icmax1.c +#) +#add_library(ZLUSRC OBJECT +# ${SUPERLU_SRC_DIR}/dcomplex.c +# ${SUPERLU_SRC_DIR}/zgssv.c +# ${SUPERLU_SRC_DIR}/zgssvx.c +# ${SUPERLU_SRC_DIR}/zsp_blas2.c +# ${SUPERLU_SRC_DIR}/zsp_blas3.c +# ${SUPERLU_SRC_DIR}/zgscon.c +# ${SUPERLU_SRC_DIR}/zlangs.c +# ${SUPERLU_SRC_DIR}/zgsequ.c +# ${SUPERLU_SRC_DIR}/zlaqgs.c +# ${SUPERLU_SRC_DIR}/zpivotgrowth.c +# ${SUPERLU_SRC_DIR}/zgsrfs.c +# ${SUPERLU_SRC_DIR}/zgstrf.c +# ${SUPERLU_SRC_DIR}/zgstrs.c +# ${SUPERLU_SRC_DIR}/zcopy_to_ucol.c +# ${SUPERLU_SRC_DIR}/zsnode_dfs.c +# ${SUPERLU_SRC_DIR}/zsnode_bmod.c +# ${SUPERLU_SRC_DIR}/zpanel_dfs.c +# ${SUPERLU_SRC_DIR}/zpanel_bmod.c +# ${SUPERLU_SRC_DIR}/zreadhb.c +# ${SUPERLU_SRC_DIR}/zreadrb.c +# ${SUPERLU_SRC_DIR}/zreadtriple.c +# ${SUPERLU_SRC_DIR}/zcolumn_dfs.c +# ${SUPERLU_SRC_DIR}/zcolumn_bmod.c +# ${SUPERLU_SRC_DIR}/zpivotL.c +# ${SUPERLU_SRC_DIR}/zpruneL.c +# ${SUPERLU_SRC_DIR}/zmemory.c +# ${SUPERLU_SRC_DIR}/zutil.c +# ${SUPERLU_SRC_DIR}/zmyblas2.c +# ${SUPERLU_SRC_DIR}/zgsisx.c +# ${SUPERLU_SRC_DIR}/zgsitrf.c +# ${SUPERLU_SRC_DIR}/zldperm.c +# ${SUPERLU_SRC_DIR}/ilu_zdrop_row.c +# ${SUPERLU_SRC_DIR}/ilu_zsnode_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_zcolumn_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_zpanel_dfs.c +# ${SUPERLU_SRC_DIR}/ilu_zcopy_to_ucol.c +# ${SUPERLU_SRC_DIR}/ilu_zpivotL.c +# ${SUPERLU_SRC_DIR}/zdiagonal.c +# ${SUPERLU_SRC_DIR}/zlacon2.c +# ${SUPERLU_SRC_DIR}/dzsum1.c +# ${SUPERLU_SRC_DIR}/izmax1.c +#) +include_directories(${SUPERLUS_SRC_DIR}) target_link_libraries(SUPERLU DLUSRC ALLAUX DZLAUX) set(${PROJECT_NAME}_INCLUDE_DIRS ${PROJECT_SOURCE_DIR} CACHE INTERNAL "${PROJECT_NAME}: Include Directories" FORCE) -export(TARGETS ARPACK +export(TARGETS ALLAUX DZLAUX DLUSRC SUPERLU FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/SUPERLU.cmake" ) #all: double # #single: $(SLUSRC) $(ALLAUX) $(SCAUX) -# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(SLUSRC) $(ALLAUX) $(SCAUX) -# $(RANLIB) $(SUPERLULIB) +# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(SLUSRC) $(ALLAUX) $(SCAUX) +# $(RANLIB) $(SUPERLULIB) # #double: $(DLUSRC) $(ALLAUX) $(DZLAUX) -# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(DLUSRC) $(ALLAUX) $(DZLAUX) -# $(RANLIB) $(SUPERLULIB) +# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(DLUSRC) $(ALLAUX) $(DZLAUX) +# $(RANLIB) $(SUPERLULIB) # #complex: $(CLUSRC) $(ALLAUX) $(SCAUX) -# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(CLUSRC) $(ALLAUX) $(SCAUX) -# $(RANLIB) $(SUPERLULIB) +# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(CLUSRC) $(ALLAUX) $(SCAUX) +# $(RANLIB) $(SUPERLULIB) # #complex16: $(ZLUSRC) $(ALLAUX) $(DZLAUX) -# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(ZLUSRC) $(ALLAUX) $(DZLAUX) -# $(RANLIB) $(SUPERLULIB) +# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(ZLUSRC) $(ALLAUX) $(DZLAUX) +# $(RANLIB) $(SUPERLULIB) # # ################################### ## Do not optimize these routines # ################################### -#smach.o: smach.c ; $(CC) -c -fPIC $(NOOPTS) $(CDEFS) $< -#dmach.o: dmach.c ; $(CC) -c -fPIC $(NOOPTS) $(CDEFS) $< -#superlu_timer.o: superlu_timer.c ; $(CC) -c -fPIC $(NOOPTS) $< +#smach.o: smach.c +# ${SUPERLU_SRC_DIR}/; $(CC) -c -fPIC $(NOOPTS) $(CDEFS) $< +#dmach.o: dmach.c +# ${SUPERLU_SRC_DIR}/; $(CC) -c -fPIC $(NOOPTS) $(CDEFS) $< +#superlu_timer.o: superlu_timer.c +# ${SUPERLU_SRC_DIR}/; $(CC) -c -fPIC $(NOOPTS) $< ################################### # #.c.o: -# $(CC) $(CFLAGS) $(CDEFS) $(BLASDEF) -c $< $(VERBOSE) +# $(CC) $(CFLAGS) $(CDEFS) $(BLASDEF) -c $< $(VERBOSE) # #.f.o: -# $(FORTRAN) $(FFLAGS) -c $< +# $(FORTRAN) $(FFLAGS) -c $< # -#clean: -# rm -f *.o $(SUPERLULIB) +#clean: +# rm -f *.o $(SUPERLULIB) diff --git a/SRC/element/CMakeLists.txt b/SRC/element/CMakeLists.txt index 2a531f53a..10e5fa088 100644 --- a/SRC/element/CMakeLists.txt +++ b/SRC/element/CMakeLists.txt @@ -26,26 +26,21 @@ target_sources(G3_Utilities # #PUBLIC #) - -add_subdirectory(zeroLength) - +add_subdirectory(fourNodeQuad) +add_subdirectory(twoNodeLink) +add_subdirectory(tetrahedron) +add_subdirectory(triangle) +add_subdirectory(shell) add_subdirectory(brick) -add_subdirectory(truss) +add_subdirectory(zeroLength) +add_subdirectory(truss) add_subdirectory(beam2d) add_subdirectory(beam3d) #add_subdirectory(beamWithHinges) -add_subdirectory(catenaryCable) -add_subdirectory(LHMYS) -add_subdirectory(PML) -add_subdirectory(RockingBC) -add_subdirectory(absorbentBoundaries) -add_subdirectory(adapter) -add_subdirectory(componentElement) - add_subdirectory(dispBeamColumn) add_subdirectory(dispBeamColumnInt) add_subdirectory(forceBeamColumn) @@ -53,25 +48,28 @@ add_subdirectory(mixedBeamColumn) add_subdirectory(elasticBeamColumn) add_subdirectory(gradientInelasticBeamColumn) add_subdirectory(updatedLagrangianBeamColumn) - -add_subdirectory(fourNodeQuad) -add_subdirectory(twoNodeLink) - add_subdirectory(nonlinearBeamColumn) -add_subdirectory(tetrahedron) -add_subdirectory(triangle) +add_subdirectory(catenaryCable) +add_subdirectory(LHMYS) +add_subdirectory(PML) +add_subdirectory(RockingBC) +add_subdirectory(absorbentBoundaries) +add_subdirectory(adapter) +add_subdirectory(componentElement) add_subdirectory(frictionBearing) add_subdirectory(elastomericBearing) -add_subdirectory(feap) add_subdirectory(generic) add_subdirectory(joint) -add_subdirectory(mvlem) -add_subdirectory(shell) add_subdirectory(surfaceLoad) + + +add_subdirectory(feap) + add_subdirectory(PFEMElement) +add_subdirectory(mvlem) add_subdirectory(pyMacro) add_subdirectory(UP-ucsd) add_subdirectory(UWelements)