From d974a384bd93c9e055aff05f5aecedde98ce0b7c Mon Sep 17 00:00:00 2001 From: "Michael H. Scott" Date: Thu, 8 Jul 2021 15:39:07 -0700 Subject: [PATCH 01/16] Update MixedBeamColumn2d.cpp Memory leak in OPS_ function --- SRC/element/mixedBeamColumn/MixedBeamColumn2d.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SRC/element/mixedBeamColumn/MixedBeamColumn2d.cpp b/SRC/element/mixedBeamColumn/MixedBeamColumn2d.cpp index 799e6aefe..88d16c725 100644 --- a/SRC/element/mixedBeamColumn/MixedBeamColumn2d.cpp +++ b/SRC/element/mixedBeamColumn/MixedBeamColumn2d.cpp @@ -241,6 +241,7 @@ void * OPS_MixedBeamColumn2d() { return 0; } + delete [] sections; return theElement; } From ff5b86b06fd717eebe42d30bcd93dacb9709c8ab Mon Sep 17 00:00:00 2001 From: "Michael H. Scott" Date: Thu, 8 Jul 2021 15:39:45 -0700 Subject: [PATCH 02/16] Update MixedBeamColumn3d.cpp Memory leak in OPS_ function --- SRC/element/mixedBeamColumn/MixedBeamColumn3d.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SRC/element/mixedBeamColumn/MixedBeamColumn3d.cpp b/SRC/element/mixedBeamColumn/MixedBeamColumn3d.cpp index 3dca64679..f90a379e0 100644 --- a/SRC/element/mixedBeamColumn/MixedBeamColumn3d.cpp +++ b/SRC/element/mixedBeamColumn/MixedBeamColumn3d.cpp @@ -224,6 +224,7 @@ void * OPS_MixedBeamColumn3d() { return 0; } + delete [] sections; return theElement; } From 0ca41688de6d2f418d756b8981216dcecaffdc2c Mon Sep 17 00:00:00 2001 From: "Michael H. Scott" Date: Thu, 8 Jul 2021 21:11:05 -0700 Subject: [PATCH 03/16] Update OpenSeesOutputCommands.cpp Checking null pointer for nodeEigenvector --- SRC/interpreter/OpenSeesOutputCommands.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SRC/interpreter/OpenSeesOutputCommands.cpp b/SRC/interpreter/OpenSeesOutputCommands.cpp index 2e65420ab..c52d25983 100644 --- a/SRC/interpreter/OpenSeesOutputCommands.cpp +++ b/SRC/interpreter/OpenSeesOutputCommands.cpp @@ -314,6 +314,10 @@ int OPS_nodeEigenvector() // get eigen vectors Node* theNode = theDomain->getNode(data[0]); + if (theNode == 0) { + opserr << "nodeEigenvector - node with tag " << data[0] << " not found\n"; + return -1; + } const Matrix &theEigenvectors = theNode->getEigenvectors(); int size = theEigenvectors.noRows(); From e8020b92e95a3fdf97583d57c79ca41416473e23 Mon Sep 17 00:00:00 2001 From: claudioperez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 07:23:11 -0700 Subject: [PATCH 04/16] cmp - wrapped paths in quotes --- CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3db39241d..d0577c999 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,12 +26,12 @@ project( ) set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/ETC/cmake) -set(OPS_EXTERN_SOURCE_DIR ${PROJECT_SOURCE_DIR}/OTHER/) -set(OPS_EXTERNALS_DIR ${PROJECT_SOURCE_DIR}/OTHER/) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/ETC/cmake") +set(OPS_EXTERN_SOURCE_DIR "${PROJECT_SOURCE_DIR}/OTHER/") +set(OPS_EXTERNALS_DIR "${PROJECT_SOURCE_DIR}/OTHER/") -set(OPS_BUNDLED_DIR ${PROJECT_SOURCE_DIR}/OTHER/) -set(OPS_SRC_DIR ${PROJECT_SOURCE_DIR}/SRC/) +set(OPS_BUNDLED_DIR "${PROJECT_SOURCE_DIR}/OTHER/") +set(OPS_SRC_DIR "${PROJECT_SOURCE_DIR}/SRC/") include(OpenSeesFunctions) include(${PROJECT_SOURCE_DIR}/Conf.cmake) @@ -57,7 +57,7 @@ if (UNIX) endif() if(WIN32) - include(OpenSeesDependenciesBundled) + include(OpenSeesDependenciesWin) message(STATUS ">>> WIN32") endif() From faed0f4b9b22a7d83817f3ffd4ab2dc11ea93855 Mon Sep 17 00:00:00 2001 From: claudioperez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 07:23:33 -0700 Subject: [PATCH 05/16] cmp - rename dependency cmake file --- ...epencencies.cmake => OpenSeesDependenciesWin.cmake} | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) rename ETC/cmake/{OpenSeesDepencencies.cmake => OpenSeesDependenciesWin.cmake} (95%) diff --git a/ETC/cmake/OpenSeesDepencencies.cmake b/ETC/cmake/OpenSeesDependenciesWin.cmake similarity index 95% rename from ETC/cmake/OpenSeesDepencencies.cmake rename to ETC/cmake/OpenSeesDependenciesWin.cmake index 9ecef0dd8..648297bdf 100644 --- a/ETC/cmake/OpenSeesDepencencies.cmake +++ b/ETC/cmake/OpenSeesDependenciesWin.cmake @@ -34,7 +34,7 @@ # #============================================================================== set(CONDA_DIR "C:/Users/claud/miniconda3") -set(CONDA_ENV "c/Users/claud/miniconda3/envs/sim") +set(CONDA_ENV "C:/Users/claud/miniconda3/envs/sim") opensees_load(TCL #FIND LIBRARY ${CONDA_DIR}/Library/lib/tcl86t.lib @@ -42,6 +42,8 @@ opensees_load(TCL #FIND ) set(TCL_INCLUDE_PATH ${TCL_INCLUDE_DIRS}) +set(TCL_LIBRARY ${TCL_LIBRARIES}) + message("TCL: ${TCL_INCLUDE_PATH}") opensees_load(BLAS SEARCH @@ -52,14 +54,16 @@ opensees_load(LAPACK SEARCH #LIBRARY /home/claudio/lib/libLapack.a ) -set(ENV{SUPERLU_DIR} ) +set(ENV{SUPERLU_DIR}) opensees_load(SUPERLU #SEARCH BUNDLED ${OPS_BUNDLED_DIR}/SuperLU_5.1.1/ #LIBRARY ${OPS_BUNDLED_DIR}/SuperLU_5.1.1/ #INCLUDE ${OPS_BUNDLED_DIR}/SuperLU_5.1.1/ ) -opensees_load(ARPACK SEARCH) +opensees_load(ARPACK SEARCH + BUNDLED ${OPS_BUNDLED_DIR}/ARPACK/ +) opensees_load(METIS SEARCH) From 310f917048fd1379d00eec7778388a1571d0e647 Mon Sep 17 00:00:00 2001 From: claudioperez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 07:24:05 -0700 Subject: [PATCH 06/16] cmp - modify scope of `opensees_load` returns --- ETC/cmake/OpenSeesFunctions.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ETC/cmake/OpenSeesFunctions.cmake b/ETC/cmake/OpenSeesFunctions.cmake index 1de7c0145..7ed2ee512 100644 --- a/ETC/cmake/OpenSeesFunctions.cmake +++ b/ETC/cmake/OpenSeesFunctions.cmake @@ -47,8 +47,8 @@ function (opensees_load lib_name) 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_DIR" ${OPS_LOAD_ARG_INCLUDE} PARENT_SCOPE) + set("${lib_name}_LIBRARIES" ${OPS_LOAD_ARG_LIBRARY})# PARENT_SCOPE) + set("${lib_name}_INCLUDE_DIRS" ${OPS_LOAD_ARG_INCLUDE})# PARENT_SCOPE) endif() endif() @@ -82,7 +82,7 @@ function (opensees_load lib_name) 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") + message(" status: ${lib_name}_INCLUDE_DIRS =${${lib_name}_INCLUDE_DIRS}\n") endfunction() function (opensees_build lib_name) From 5b63eb1064eeb351c5f325942a68bb7be514f4de Mon Sep 17 00:00:00 2001 From: claudioperez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 07:24:43 -0700 Subject: [PATCH 07/16] cmp - separate out Fortran files for MSVC builds --- .../algorithm/equiSolnAlgo/accelerator/CMakeLists.txt | 5 ++++- SRC/material/uniaxial/CMakeLists.txt | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/SRC/analysis/algorithm/equiSolnAlgo/accelerator/CMakeLists.txt b/SRC/analysis/algorithm/equiSolnAlgo/accelerator/CMakeLists.txt index 9c5edfda9..5e1c07a0f 100644 --- a/SRC/analysis/algorithm/equiSolnAlgo/accelerator/CMakeLists.txt +++ b/SRC/analysis/algorithm/equiSolnAlgo/accelerator/CMakeLists.txt @@ -2,7 +2,6 @@ target_sources(G3_Analysis PRIVATE Accelerator.cpp MillerAccelerator.cpp - naccel.f RaphsonAccelerator.cpp PeriodicAccelerator.cpp KrylovAccelerator.cpp @@ -25,5 +24,9 @@ target_sources(G3_Analysis SecantAccelerator2.h SecantAccelerator3.h ) +# Build files are not properly generated for Windows +# when libraries contain both C++ and Fortran files +add_library(G3_Analysis_Naccel OBJECT naccel.f) +target_link_libraries(G3_Analysis G3_Analysis_Naccel) target_include_directories(G3_Analysis PUBLIC $(CMAKE_CURRENT_LIST_DIR)) diff --git a/SRC/material/uniaxial/CMakeLists.txt b/SRC/material/uniaxial/CMakeLists.txt index 1afacf961..c5225eac6 100644 --- a/SRC/material/uniaxial/CMakeLists.txt +++ b/SRC/material/uniaxial/CMakeLists.txt @@ -1,3 +1,4 @@ + target_sources(G3_Material PRIVATE MaterialState.cpp @@ -56,6 +57,11 @@ target_sources(G3_Material AxialSp.h ) + +add_library(OPS_Material_f OBJECT + DoddRestrepo.f +) + target_sources(OPS_Material PRIVATE ASD_SMA_3K.cpp @@ -87,7 +93,6 @@ target_sources(OPS_Material DamperMaterial.cpp DegradingPinchedBW.cpp DoddRestr.cpp - DoddRestrepo.f Dodd_Restrepo.cpp DrainMaterial.cpp ECC01.cpp @@ -260,7 +265,6 @@ target_sources(OPS_Material pyUCLA.h ) - target_include_directories(OPS_Material PUBLIC $(CMAKE_CURRENT_LIST_DIR)) add_subdirectory(backbone) @@ -274,3 +278,6 @@ add_subdirectory(snap) add_subdirectory(fedeas) add_subdirectory(drain) +target_link_libraries(OPS_Material OPS_Material_f) + + From 860640fa57a5a2a855de7021df5d553210765481 Mon Sep 17 00:00:00 2001 From: claudioperez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 07:25:05 -0700 Subject: [PATCH 08/16] cmp - separate out X11 renderer for Win build --- SRC/renderer/CMakeLists.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/SRC/renderer/CMakeLists.txt b/SRC/renderer/CMakeLists.txt index faec2c2b6..31b3940f8 100644 --- a/SRC/renderer/CMakeLists.txt +++ b/SRC/renderer/CMakeLists.txt @@ -6,22 +6,17 @@ target_sources(OPS_Renderer Device.cpp DofColorMap.cpp gMatrix.cpp - #main.cpp - #mainTriangle.cpp #OpenGlDevice.cpp #OpenGlRenderer.cpp PlainMap.cpp Projection.cpp Renderer.cpp Scan.cpp - #simple.c View.cpp Viewport.cpp VrmlViewer.cpp WindowDevice.cpp WindowRenderer.cpp - X11Device.cpp - X11Renderer.cpp PUBLIC #AGL_Device.h Clipping.h @@ -39,8 +34,12 @@ target_sources(OPS_Renderer VrmlViewer.h WindowDevice.h WindowRenderer.h - X11Device.h - X11Renderer.h +) +add_library(OPS_Renderer_X11 OBJECT + X11Device.cpp + X11Renderer.cpp + #X11Device.h + #X11Renderer.h ) target_include_directories(OPS_Renderer PUBLIC $(CMAKE_CURRENT_LIST_DIR)) From 5ca95bb1cb4937c608730bc8de52863ac3e4f648 Mon Sep 17 00:00:00 2001 From: claudioperez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 07:30:15 -0700 Subject: [PATCH 09/16] cmp - fixed broken call to Adapter element constructor --- SRC/element/adapter/TclAdapterCommand.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SRC/element/adapter/TclAdapterCommand.cpp b/SRC/element/adapter/TclAdapterCommand.cpp index 8bba7f66a..6db2394f0 100644 --- a/SRC/element/adapter/TclAdapterCommand.cpp +++ b/SRC/element/adapter/TclAdapterCommand.cpp @@ -198,9 +198,9 @@ int TclModelBuilder_addAdapter(ClientData clientData, Tcl_Interp *interp, int a // now create the adapter and add it to the Domain if (mass == 0) - theElement = new Adapter(tag, nodes, dofs, kb, ipPort, doRayleigh); + theElement = new Adapter(tag, nodes, dofs, kb, ipPort, 0, 0, doRayleigh); else - theElement = new Adapter(tag, nodes, dofs, kb, ipPort, doRayleigh, mass); + theElement = new Adapter(tag, nodes, dofs, kb, ipPort, 0, 0, doRayleigh, mass); // cleanup dynamic memory if (dofs != 0) From af56eaa5fbe821f1504377122116b9cd60d59e98 Mon Sep 17 00:00:00 2001 From: claudioperez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 07:34:18 -0700 Subject: [PATCH 10/16] cmp - moved inclusions of `f2c.h` to after `math.h`. --- SRC/system_of_eqn/eigenSOE/ArpackSOE.cpp | 2 +- SRC/system_of_eqn/eigenSOE/ArpackSolver.cpp | 9 ++++++--- SRC/system_of_eqn/eigenSOE/ArpackSolver.h | 5 +++-- SRC/system_of_eqn/eigenSOE/BandArpackSolver.cpp | 4 +++- SRC/system_of_eqn/eigenSOE/SymArpackSolver.cpp | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/SRC/system_of_eqn/eigenSOE/ArpackSOE.cpp b/SRC/system_of_eqn/eigenSOE/ArpackSOE.cpp index b6800d3a5..c50d08262 100644 --- a/SRC/system_of_eqn/eigenSOE/ArpackSOE.cpp +++ b/SRC/system_of_eqn/eigenSOE/ArpackSOE.cpp @@ -33,8 +33,8 @@ #include #include #include -#include #include +#include #include #include #include diff --git a/SRC/system_of_eqn/eigenSOE/ArpackSolver.cpp b/SRC/system_of_eqn/eigenSOE/ArpackSolver.cpp index 037eb6c4e..4c520c1ac 100644 --- a/SRC/system_of_eqn/eigenSOE/ArpackSolver.cpp +++ b/SRC/system_of_eqn/eigenSOE/ArpackSolver.cpp @@ -44,7 +44,10 @@ #include #include #include + #include +#include + #include #include #include @@ -173,7 +176,7 @@ ArpackSolver::solve(int numModes, bool generalized, bool findSmallest) eigenvalues = new double[nev]; eigenvectors = new double[n * nev]; resid = new double[n]; - select = new logical[ncv]; + select = new int[ncv]; for (int i=0; i #include -#include + +// #include class LinearSOE; @@ -88,7 +89,7 @@ class ArpackSolver : public EigenSolver int iparam[11]; int ipntr[11]; // long int* select; - logical* select; + int* select; void myMv(int n, double *v, double *result); void myCopy(int n, double *v, double *result); diff --git a/SRC/system_of_eqn/eigenSOE/BandArpackSolver.cpp b/SRC/system_of_eqn/eigenSOE/BandArpackSolver.cpp index 99d209a3a..4c333741c 100644 --- a/SRC/system_of_eqn/eigenSOE/BandArpackSolver.cpp +++ b/SRC/system_of_eqn/eigenSOE/BandArpackSolver.cpp @@ -15,7 +15,9 @@ #include #include #include -#include +// The version of f2c.h supplied with OpenSees +// must be included after math.h +#include BandArpackSolver::BandArpackSolver(int numE) :EigenSolver(EigenSOLVER_TAGS_BandArpackSolver), diff --git a/SRC/system_of_eqn/eigenSOE/SymArpackSolver.cpp b/SRC/system_of_eqn/eigenSOE/SymArpackSolver.cpp index 8f74dd5cd..976e14097 100644 --- a/SRC/system_of_eqn/eigenSOE/SymArpackSolver.cpp +++ b/SRC/system_of_eqn/eigenSOE/SymArpackSolver.cpp @@ -14,8 +14,8 @@ #include "SymArpackSOE.h" #include "SymArpackSolver.h" -#include #include +#include #include #include #include From ede6cccf2028cc07f1e4293891fb60d271a75c75 Mon Sep 17 00:00:00 2001 From: Claudio Perez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 07:57:33 -0700 Subject: [PATCH 11/16] cmp - fix fortran material lib to compile on *nix --- SRC/material/uniaxial/CMakeLists.txt | 98 +++++++++++++++------------- 1 file changed, 54 insertions(+), 44 deletions(-) diff --git a/SRC/material/uniaxial/CMakeLists.txt b/SRC/material/uniaxial/CMakeLists.txt index c5225eac6..fa9f5a589 100644 --- a/SRC/material/uniaxial/CMakeLists.txt +++ b/SRC/material/uniaxial/CMakeLists.txt @@ -1,67 +1,70 @@ target_sources(G3_Material PRIVATE - MaterialState.cpp - UniaxialMaterial.cpp - ElasticMaterial.cpp - Elastic2Material.cpp - ElasticPowerFunc.cpp - UVCuniaxial.cpp + AxialSp.cpp + AxialSp.cpp + AxialSpHD.cpp + BWBN.cpp Bilin.cpp Bilin02.cpp + + ConcreteCM.cpp + ConcreteD.cpp + ConcretewBeta.cpp + + Elastic2Material.cpp + ElasticBilin.cpp + ElasticMaterial.cpp + ElasticMultiLinear.cpp + ElasticPPMaterial.cpp + ElasticPowerFunc.cpp + IMKBilin.cpp IMKPeakOriented.cpp IMKPinching.cpp - Steel2.cpp + + MaterialState.cpp OriginCentered.cpp - ConcretewBeta.cpp - ConcreteD.cpp - ConcreteCM.cpp - SteelMPF.cpp - c14-SK-M.f - ElasticMultiLinear.cpp - ElasticPPMaterial.cpp - ElasticBilin.cpp ParallelMaterial.cpp ResilienceLow.cpp - AxialSp.cpp - BWBN.cpp - AxialSpHD.cpp - AxialSp.cpp + Steel2.cpp + SteelMPF.cpp + UVCuniaxial.cpp + UniaxialMaterial.cpp PUBLIC - MaterialState.h - UniaxialMaterial.h - ElasticMaterial.h - Elastic2Material.h - ElasticPowerFunc.h - UVCuniaxial.h + AxialSp.h + AxialSp.h + AxialSpHD.h + BWBN.h Bilin.h Bilin02.h + + ConcreteCM.h + ConcreteD.h + ConcretewBeta.h + + Elastic2Material.h + ElasticBilin.h + ElasticMaterial.h + ElasticMultiLinear.h + ElasticPPMaterial.h + ElasticPowerFunc.h + IMKBilin.h IMKPeakOriented.h IMKPinching.h - Steel2.h + + MaterialState.h OriginCentered.h - ConcretewBeta.h - ConcreteD.h - ConcreteCM.h - SteelMPF.h - ElasticMultiLinear.h - ElasticPPMaterial.h - ElasticBilin.h ParallelMaterial.h ResilienceLow.h - AxialSp.h - BWBN.h - AxialSpHD.h - AxialSp.h + Steel2.h + SteelMPF.h + UVCuniaxial.h + UniaxialMaterial.h ) -add_library(OPS_Material_f OBJECT - DoddRestrepo.f -) - target_sources(OPS_Material PRIVATE ASD_SMA_3K.cpp @@ -131,7 +134,6 @@ target_sources(OPS_Material ResilienceMaterialHR.cpp SAWSMaterial.cpp SPSW02.cpp - STEELDR.f SecantConcrete.cpp SelfCenteringMaterial.cpp SeriesMaterial.cpp @@ -160,7 +162,6 @@ target_sources(OPS_Material ViscousDamper.cpp ViscousMaterial.cpp WrapperUniaxialMaterial.cpp - c14-SK-M.f pyUCLA.cpp PUBLIC ASD_SMA_3K.h @@ -265,6 +266,16 @@ target_sources(OPS_Material pyUCLA.h ) +add_library(OPS_Material_f OBJECT) + +target_sources(OPS_Material_f PUBLIC + DoddRestrepo.f + STEELDR.f + c14-SK-M.f +) + +target_link_libraries(OPS_Material PUBLIC OPS_Material_f) + target_include_directories(OPS_Material PUBLIC $(CMAKE_CURRENT_LIST_DIR)) add_subdirectory(backbone) @@ -278,6 +289,5 @@ add_subdirectory(snap) add_subdirectory(fedeas) add_subdirectory(drain) -target_link_libraries(OPS_Material OPS_Material_f) From 4f0610dea1ac67d6af49f389d6ea0e5d1f3815bb Mon Sep 17 00:00:00 2001 From: Claudio Perez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 9 Jul 2021 08:05:47 -0700 Subject: [PATCH 12/16] cmp - separate Fortran in G3_SysOfEqn --- .../linearSOE/sparseSYM/CMakeLists.txt | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/SRC/system_of_eqn/linearSOE/sparseSYM/CMakeLists.txt b/SRC/system_of_eqn/linearSOE/sparseSYM/CMakeLists.txt index 2b88e03c9..e62fa3028 100644 --- a/SRC/system_of_eqn/linearSOE/sparseSYM/CMakeLists.txt +++ b/SRC/system_of_eqn/linearSOE/sparseSYM/CMakeLists.txt @@ -1,19 +1,22 @@ target_sources(G3_SysOfEqn PRIVATE - SymSparseLinSOE.cpp - SymSparseLinSolver.cpp - grcm.c - nest.c - nmat.c - symbolic.c - utility.c - newordr.c - nnsim.c - genmmd.f + SymSparseLinSOE.cpp + SymSparseLinSolver.cpp + grcm.c + nest.c + nmat.c + symbolic.c + utility.c + newordr.c + nnsim.c PUBLIC - SymSparseLinSOE.h - SymSparseLinSolver.h + SymSparseLinSOE.h + SymSparseLinSolver.h ) +add_library(G3_SysOfEqn_f OBJECT) +target_sources(G3_SysOfEqn_f PUBLIC genmmd.f) +target_link_libraries(G3_SysOfEqn G3_SysOfEqn_f) + +#target_include_directories(OPS_SysOfEqn PUBLIC ${CMAKE_CURRENT_LIST_DIR}) -target_include_directories(OPS_SysOfEqn PUBLIC $(CMAKE_CURRENT_LIST_DIR)) From 8fcd15183b9d2b8547e63a930eaae1782982a695 Mon Sep 17 00:00:00 2001 From: Claudio Perez <50180406+claudioperez@users.noreply.github.com> Date: Sat, 10 Jul 2021 19:56:03 -0700 Subject: [PATCH 13/16] cmp - removed glob in OPS_Tcl target --- CMakeLists.txt | 168 ++++++++++++------ .../linearSOE/sparseSYM/CMakeLists.txt | 1 + 2 files changed, 112 insertions(+), 57 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d0577c999..945608176 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.18) +cmake_minimum_required(VERSION 3.16) #============================================================================== # # OpenSees -- Open System For Earthquake Engineering Simulation @@ -14,7 +14,7 @@ cmake_minimum_required(VERSION 3.18) # Project wide includes, properties, libraries, etc # # - Target definitions -# Define component libraries +# Declarations/definitions of component libraries # # - Target Configuration # Specify target-specific compiler options, linking, etc @@ -80,23 +80,16 @@ message("OPS >>> AMD: ${AMD_LIBRARIES}") # General Setup # #============================================================================== -# Properties - -#define_property(TARGET -# PROPERTY OPS_INTERPRETER_GLOBAL #TODO -# BRIEF_DOCS "Include functionality for using global interpreter" -# FULL_DOCS "..." -#) - +#---------------------------------------------------------------- +# Compilers +#---------------------------------------------------------------- # Fortran #-------------------------------------- enable_language(Fortran) - # C++ #-------------------------------------- - set(CMAKE_CXX_STANDARD 11) # Warnings @@ -111,7 +104,6 @@ opensees_add_cxx_flag( MSVC /fp:precise ) - #---------------------------------------------------------------- # Global Includes #---------------------------------------------------------------- @@ -173,12 +165,10 @@ include_directories( ${OPS_SRC_DIR}/actor/objectBroker ${OPS_SRC_DIR}/actor/message ) -# Temporary fix -include_directories(${PROJECT_SOURCE_DIR}/include) -include_directories(${PROJECT_SOURCE_DIR}/include/incl) include_directories(${TCL_INCLUDE_PATH}) include_directories(${MYSQL_INCLUDE_DIR}) +# Temporary fix: include all directories with .h files by glob file(GLOB_RECURSE ops_include_files CONFIGURE_DEPENDS ${OPS_SRC_DIR}/*.h ${OPS_BUNDLED_DIR}/*.h @@ -191,7 +181,6 @@ endforeach() list(REMOVE_DUPLICATES OPS_INCLUDE_DIRS) include_directories(${OPS_INCLUDE_DIRS}) -#message(${OPS_INCLUDE_DIRS}) #============================================================================== @@ -210,13 +199,14 @@ add_library(G3_Utilities OBJECT) add_library(G3_Element OBJECT) add_library(G3_Material OBJECT) add_library(G3_ModelBuilder OBJECT) + add_library(G3_Numerics INTERFACE) -target_link_libraries(G3_Numerics INTERFACE +target_link_libraries(G3_Numerics INTERFACE ${ARPACK_LIBRARIES} ${SUPERLU_LIBRARIES} ${UMFPACK_LIBRARIES} - ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${AMD_LIBRARIES} + ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ) # Core OpenSees @@ -231,8 +221,6 @@ 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) @@ -295,17 +283,18 @@ target_link_libraries(G3 #---------------------------- target_sources(OpenSees PRIVATE - ${OPS_SRC_DIR}/interpreter/OpenSeesBeamIntegrationCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesCrdTransfCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesFrictionModelCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesMiscCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesNDMaterialCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesOutputCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesElementCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesSectionCommands.cpp - ${OPS_SRC_DIR}/interpreter/OpenSeesUniaxialMaterialCommands.cpp + "${OPS_SRC_DIR}/interpreter/OpenSeesBeamIntegrationCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesCrdTransfCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesFrictionModelCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesMiscCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesNDMaterialCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesOutputCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesElementCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesSectionCommands.cpp" + "${OPS_SRC_DIR}/interpreter/OpenSeesUniaxialMaterialCommands.cpp" ) + target_link_libraries(OpenSees #OPS_Paraview OPS_Renderer @@ -330,35 +319,100 @@ target_include_directories(OpenSees PUBLIC ${TCL_INCLUDE_PATH}) #---------------------------- # OPS_Tcl #---------------------------- -file(GLOB_RECURSE OPS_TCL_SOURCES CONFIGURE_DEPENDS - ${OPS_SRC_DIR}/Tcl*.cpp -) -# TODO: Properly list out Tcl files -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX "${OPS_SRC_DIR}/database/TclBerkeley.*") -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*PFEM.*") -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*/reliability/.*") -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*/drm/.*") - -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*tclMain.*") -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*tclAppInit.*") -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*Interpreter.*") - -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*/petsc/.*") - -#list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*TclFeViewer.*") -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*TclVideoP.*") - -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*TclFeap.*") - -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*nonlinearBeamColumn.*") -list(FILTER OPS_TCL_SOURCES EXCLUDE REGEX ".*TclNewUniaxialMaterial.*") -# END - # Add sources to OPS_Tcl target target_sources(OPS_Tcl PRIVATE - ${OPS_TCL_SOURCES} + "${OPS_SRC_DIR}/coordTransformation/TclGeomTransfCommand.cpp" + + "${OPS_SRC_DIR}/database/TclDatabaseCommands.cpp" + "${OPS_SRC_DIR}/database/TclMySQL.cpp" + #"${OPS_SRC_DIR}/database/TclBerkeleyDB.cpp" + + "${OPS_SRC_DIR}/domain/component/TclParameterCommands.cpp" + "${OPS_SRC_DIR}/domain/component/TclUpdateMaterialCommand.cpp" + "${OPS_SRC_DIR}/domain/groundMotion/TclGroundMotionCommand.cpp" + "${OPS_SRC_DIR}/domain/pattern/TclPatternCommand.cpp" + "${OPS_SRC_DIR}/domain/pattern/TclSeriesCommand.cpp" + "${OPS_SRC_DIR}/domain/pattern/TclSeriesIntegratorCommand.cpp" + #"${OPS_SRC_DIR}/domain/pattern/drm/TclPatternCommand.cpp" + "${OPS_SRC_DIR}/domain/region/TclRegionCommands.cpp" + + "${OPS_SRC_DIR}/element/TclElementCommands.cpp" + "${OPS_SRC_DIR}/element/UP-ucsd/TclFourNodeQuadUPCommand.cpp" + "${OPS_SRC_DIR}/element/UWelements/Tcl_generateInterfacePoints.cpp" + "${OPS_SRC_DIR}/element/adapter/TclActuatorCommand.cpp" + "${OPS_SRC_DIR}/element/adapter/TclActuatorCorotCommand.cpp" + "${OPS_SRC_DIR}/element/adapter/TclAdapterCommand.cpp" + "${OPS_SRC_DIR}/element/beamWithHinges/TclBeamWithHingesBuilder.cpp" + "${OPS_SRC_DIR}/element/brick/TclBrickCommand.cpp" + "${OPS_SRC_DIR}/element/brick/TclTwenty_Node_BrickCommand.cpp" + "${OPS_SRC_DIR}/element/dispBeamColumnInt/TclDispBeamColumnIntCommand.cpp" + "${OPS_SRC_DIR}/element/elasticBeamColumn/TclElasticBeamCommand.cpp" + "${OPS_SRC_DIR}/element/elastomericBearing/TclElastomericBearingBoucWenCommand.cpp" + "${OPS_SRC_DIR}/element/elastomericBearing/TclElastomericBearingPlasticityCommand.cpp" + "${OPS_SRC_DIR}/element/elastomericBearing/TclElastomericBearingUFRPCommand.cpp" + "${OPS_SRC_DIR}/element/forceBeamColumn/TclForceBeamColumnCommand.cpp" + "${OPS_SRC_DIR}/element/fourNodeQuad/TclFourNodeQuadCommand.cpp" + "${OPS_SRC_DIR}/element/frictionBearing/TclFlatSliderCommand.cpp" + "${OPS_SRC_DIR}/element/frictionBearing/TclRJWatsonEQSCommand.cpp" + "${OPS_SRC_DIR}/element/frictionBearing/TclSingleFPCommand.cpp" + "${OPS_SRC_DIR}/element/frictionBearing/frictionModel/TclModelBuilderFrictionModelCommand.cpp" + "${OPS_SRC_DIR}/element/generic/TclGenericClientCommand.cpp" + "${OPS_SRC_DIR}/element/generic/TclGenericCopyCommand.cpp" + "${OPS_SRC_DIR}/element/gradientInelasticBeamColumn/TclGradientInelasticBeamColumnCommand.cpp" + "${OPS_SRC_DIR}/element/joint/TclBeamColumnJointCommand.cpp" + "${OPS_SRC_DIR}/element/joint/TclJoint2dCommand.cpp" + "${OPS_SRC_DIR}/element/joint/TclJoint3dCommand.cpp" + "${OPS_SRC_DIR}/element/twoNodeLink/TclTwoNodeLinkCommand.cpp" + "${OPS_SRC_DIR}/element/updatedLagrangianBeamColumn/TclCyclicModelCommands.cpp" + "${OPS_SRC_DIR}/element/updatedLagrangianBeamColumn/TclElement2dGNL.cpp" + "${OPS_SRC_DIR}/element/updatedLagrangianBeamColumn/TclElement2dYS.cpp" + "${OPS_SRC_DIR}/element/zeroLength/TclZeroLength.cpp" + #"${OPS_SRC_DIR}/element/PFEMElement/TclModelBuilder_addPFEMElement.cpp" + #"${OPS_SRC_DIR}/element/PFEMElement/TclPFEMCommands.cpp" + #"${OPS_SRC_DIR}/element/feap/TclFeapElementCommand.cpp" + #"${OPS_SRC_DIR}/element/nonlinearBeamColumn/tcl/TclElmtBuilder.cpp" + # Materials + "${OPS_SRC_DIR}/material/nD/TclModelBuilderNDMaterialCommand.cpp" + "${OPS_SRC_DIR}/material/nD/feap/TclFeapMaterialCommand.cpp" + "${OPS_SRC_DIR}/material/nD/soil/TclUpdateMaterialStageCommand.cpp" + "${OPS_SRC_DIR}/material/section/TclModelBuilderSectionCommand.cpp" + "${OPS_SRC_DIR}/material/section/yieldSurface/TclModelBuilderYS_SectionCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/PY/TclPyTzQzMaterialCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/TclModelBuilderUniaxialMaterialCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/backbone/TclModelBuilderBackboneCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/drain/TclDrainMaterialCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/fedeas/TclFedeasMaterialCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/limitState/TclLimitState.cpp" + "${OPS_SRC_DIR}/material/uniaxial/snap/TclSnapMaterialCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/stiffness/TclModelBuilderStiffnessDegradationCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/strength/TclModelBuilderStrengthDegradationCommand.cpp" + "${OPS_SRC_DIR}/material/uniaxial/unloading/TclModelBuilderUnloadingRuleCommand.cpp" + "${OPS_SRC_DIR}/material/yieldSurface/evolution/TclModelBuilderYS_EvolutionCommand.cpp" + "${OPS_SRC_DIR}/material/yieldSurface/plasticHardeningMaterial/TclModelBuilderYSPlasticMaterialCommand.cpp" + "${OPS_SRC_DIR}/material/yieldSurface/yieldSurfaceBC/TclModelBuilderYieldSurfaceBCCommand.cpp" + #"${OPS_SRC_DIR}/material/uniaxial/TclNewUniaxialMaterial.cpp" + # Model Builders + "${OPS_SRC_DIR}/modelbuilder/tcl/TclModelBuilder.cpp" + "${OPS_SRC_DIR}/modelbuilder/tcl/TclPlaneStressMaterialTester.cpp" + "${OPS_SRC_DIR}/modelbuilder/tcl/TclSectionTester.cpp" + "${OPS_SRC_DIR}/modelbuilder/tcl/TclUniaxialMaterialTester.cpp" + "${OPS_SRC_DIR}/optimization/tcl/TclOptimizationBuilder.cpp" + "${OPS_SRC_DIR}/recorder/TclRecorderCommands.cpp" + "${OPS_SRC_DIR}/damage/TclModelBuilderDamageModelCommand.cpp" + "${OPS_SRC_DIR}/api/elementAPI_TCL.cpp" "${OPS_SRC_DIR}/tcl/commands.cpp" + "${OPS_SRC_DIR}/tcl/TclFeViewer.cpp" + + #"${OPS_SRC_DIR}/interpreter/TclInterpreter.cpp" + "${OPS_SRC_DIR}/interpreter/TclWrapper.cpp" + + #"${OPS_SRC_DIR}/reliability/analysis/gFunction/TclGFunEvaluator.cpp" + #"${OPS_SRC_DIR}/reliability/analysis/gFunction/TclMatlabGFunEvaluator.cpp" + #"${OPS_SRC_DIR}/reliability/domain/functionEvaluator/TclEvaluator.cpp" + #"${OPS_SRC_DIR}/reliability/tcl/TclReliabilityBuilder.cpp" + #"${OPS_SRC_DIR}/system_of_eqn/linearSOE/petsc/TclPetsc.cpp" + #"${OPS_SRC_DIR}/tcl/TclVideoPlayer.cpp" ) target_include_directories(OPS_Tcl PUBLIC ${TCL_INCLUDE_PATH}) @@ -373,7 +427,6 @@ opensees_add_cxx_flag(TARGETS OPS_Tcl #---------------------------- # OpenSeesTcl #---------------------------- - target_link_libraries(OpenSeesTcl OPS_Tcl ${OPS_Element_List} OPS_Thermal OpenSees ${CMAKE_DL_LIBS} ) @@ -393,6 +446,7 @@ target_link_libraries(OpenSeesMP OpenSees) target_compile_definitions(OpenSeesSP PUBLIC _OPS_PARALLEL_INTERPRETERS ) + #---------------------------- # OpenSeesPy #---------------------------- diff --git a/SRC/system_of_eqn/linearSOE/sparseSYM/CMakeLists.txt b/SRC/system_of_eqn/linearSOE/sparseSYM/CMakeLists.txt index e62fa3028..bccb2f4d3 100644 --- a/SRC/system_of_eqn/linearSOE/sparseSYM/CMakeLists.txt +++ b/SRC/system_of_eqn/linearSOE/sparseSYM/CMakeLists.txt @@ -14,6 +14,7 @@ target_sources(G3_SysOfEqn SymSparseLinSOE.h SymSparseLinSolver.h ) + add_library(G3_SysOfEqn_f OBJECT) target_sources(G3_SysOfEqn_f PUBLIC genmmd.f) target_link_libraries(G3_SysOfEqn G3_SysOfEqn_f) From 2ca8d489126cea811ab50f23817dae26f2f7568e Mon Sep 17 00:00:00 2001 From: Claudio Perez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 16 Jul 2021 07:04:31 -0700 Subject: [PATCH 14/16] cmp - cleaning bundled CMake files --- OTHER/AMD/CMakeLists.txt | 17 ++- OTHER/ARPACK/CMakeLists.txt | 67 ++++++---- OTHER/LAPACK/CMakeLists.txt | 188 ++++++++++++++++++++++------- OTHER/SuperLU_5.1.1/CMakeLists.txt | 68 +++-------- 4 files changed, 222 insertions(+), 118 deletions(-) diff --git a/OTHER/AMD/CMakeLists.txt b/OTHER/AMD/CMakeLists.txt index a7a8a55c8..60a478ef1 100644 --- a/OTHER/AMD/CMakeLists.txt +++ b/OTHER/AMD/CMakeLists.txt @@ -1,8 +1,19 @@ +#============================================================================== +# +# 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) +# +#------------------------------------------------------------------------------ +# Claudio Perez + project(AMD) add_library(AMD) - add_compiler_flags(-fexceptions -fPIC -I.) #------------------------------------------------------------------------------- @@ -13,11 +24,7 @@ target_sources(AMD amd_order.c amd_control.c amd_info.c amd_valid.c amd_preprocess ) -amd.h amd_internal.h SuiteSparse_config.h -#------------------------------------------------------------------------------- -# object files for each version -#------------------------------------------------------------------------------- #AMDI = $(addsuffix .o, $(subst amd_,amd_i_,$(AMD))) #AMDL = $(addsuffix .o, $(subst amd_,amd_l_,$(AMD))) diff --git a/OTHER/ARPACK/CMakeLists.txt b/OTHER/ARPACK/CMakeLists.txt index dfa483b46..4135aa2da 100644 --- a/OTHER/ARPACK/CMakeLists.txt +++ b/OTHER/ARPACK/CMakeLists.txt @@ -1,38 +1,64 @@ -############################################################################ +#============================================================================== +# +# OpenSees -- Open System For Earthquake Engineering Simulation +# Pacific Earthquake Engineering Research Center # -# Program: ARPACK +# (c) Copyright 1999-2021 The Regents of the University of California +# All Rights Reserved +# (Copyright and Disclaimer @ http://www.berkeley.edu/OpenSees/copyright.html) # -# Module: Makefile -# -# Purpose: Sources Makefile -# -# Creation date: February 22, 1996 -# -# Modified: 2021 -# -# Send bug reports, comments or suggestions to arpack.caam.rice.edu -# -############################################################################ +#------------------------------------------------------------------------------ +# Claudio Perez project(ARPACK Fortran) add_library(ARPACK) -# Arg-mismatch check adapted from OneLab CMakeLists +# This checks whether the compiler has an "argument mismatch" flag; +# if it does, it needs to be set. This solution was inspired by +# a CMake file in the OneLab repositories 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 - dsaitr.f dsapps.f dsaup2.f dsaupd.f dsconv.f dseigt.f dsgets.f - dneupd.f dseupd.f dsesrt.f dvout.f dmout.f - icnteq.f icopy.f iset.f iswap.f ivout.f second.f + 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 + dsaitr.f + dsapps.f + dsaup2.f + dsaupd.f + dsconv.f + dseigt.f + dsgets.f + + dneupd.f + dseupd.f + dsesrt.f + dvout.f + dmout.f + + icnteq.f + icopy.f + iset.f + iswap.f + ivout.f + second.f ) @@ -47,7 +73,6 @@ set(${PROJECT_NAME}_INCLUDE_DIRS ${PROJECT_SOURCE_DIR} export(TARGETS ARPACK FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/ARPACK.cmake" - #EXPORT_LINK_INTERFACE_LIBRARIES #NAMESPACE MathFunctions:: ) diff --git a/OTHER/LAPACK/CMakeLists.txt b/OTHER/LAPACK/CMakeLists.txt index 1d459223b..0b1b9ee18 100644 --- a/OTHER/LAPACK/CMakeLists.txt +++ b/OTHER/LAPACK/CMakeLists.txt @@ -1,3 +1,13 @@ +#============================================================================== +# +# 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) +# +#------------------------------------------------------------------------------ # Claudio Perez project(LAPACK) @@ -5,49 +15,145 @@ project(LAPACK) add_library(LAPACK) target_sources(LAPACK PUBLIC - dgeqr2.f dlabad.f dlacon.f dlacpy.f dladiv.f dlae2.f dlaev2.f - dlaexc.f dlagtm.f dlahqr.f dlaln2.f dlamch.f dlange.f dlanhs.f - dlanst.f dlanv2.f dlaptm.f dlapy2.f dlapy3.f dlaran.f dlarf.f - dlarfg.f dlarfx.f dlarnd.f dlarnv.f dlartg.f dlaruv.f dlascl.f - dlaset.f dlasr.f dlasrt.f dlassq.f dlasy2.f dorm2r.f dsteqr.f - dtrevc.f dtrexc.f dtrsen.f dtrsyl.f dgbtf2.f dgbtrf.f dgbtrs.f - dgttrf.f dgttrs.f dpttrf.f dpttrs.f dlaswp.f dgbsv.f dpbtrs.f - dgesv.f dgetrs.f dpbsv.f dgetrf.f dgetf2.f dpbtrf.f dpotf2.f - dpbtf2.f dgels.f dgeqrf.f dgelqf.f dormqr.f dormlq.f - dgelq2.f dlarft.f dlarfb.f dorml2.f - dlaebz.f dlagtf.f dlagts.f dlansb.f dlar2v.f dlargv.f - dlartv.f dsbevx.f dsbtrd.f dstebz.f dstein.f dsterf.f - dgetri.f dtrtri.f dtrti2.f dgebak.f dgebal.f dgeev.f - dgehd2.f dgehrd.f dhseqr.f dlahrd.f - dorg2r.f dorghr.f dorgqr.f dpotrf.f dpotrs.f dtrtrs.f - dggbak.f dggbal.f dggev.f dgghrd.f dhgeqz.f dlag2.f dlasv2.f dtgevc.f - dgesvxx.f dla_gerfsx_extended.f dlascl2.f dlaqge.f dgeequb.f dgerfsx.f - chla_transtype.f dla_gercond.f dla_wwaddw.f ilaprec.f ilatrans.f dgecon.f - dla_geamv.f dlacn2.f dla_lin_berr.f drscl.f dlatrs.f dla_rpvgrw.f dla_gerpvgrw.f - BLAS_dgemv2_x.c BLAS_dgemv2_x-f2c.c - BLAS_dgemv_x.c BLAS_dgemv_x-f2c.c BLAS_error.c BLAS_error.c -) + dgeqr2.f + dlabad.f + dlacon.f + dlacpy.f + dladiv.f + dlae2.f + dlaev2.f + dlaexc.f + dlagtm.f + dlahqr.f + dlaln2.f + dlamch.f + dlange.f + dlanhs.f + dlanst.f + dlanv2.f + dlaptm.f + dlapy2.f + dlapy3.f + dlaran.f + dlarf.f + dlarfg.f + dlarfx.f + dlarnd.f + dlarnv.f + dlartg.f + dlaruv.f + dlascl.f + dlaset.f + dlasr.f + dlasrt.f + dlassq.f + dlasy2.f + dorm2r.f + dsteqr.f + dtrevc.f + dtrexc.f + dtrsen.f + dtrsyl.f + dgbtf2.f + dgbtrf.f + dgbtrs.f + dgttrf.f + dgttrs.f + dpttrf.f + dpttrs.f + dlaswp.f + dgbsv.f + dpbtrs.f + dgesv.f + dgetrs.f + dpbsv.f + dgetrf.f + dgetf2.f + dpbtrf.f + dpotf2.f + dpbtf2.f + dgels.f + dgeqrf.f + dgelqf.f + dormqr.f + dormlq.f + dgelq2.f + dlarft.f + dlarfb.f + dorml2.f + dlaebz.f + dlagtf.f + dlagts.f + dlansb.f + dlar2v.f + dlargv.f + dlartv.f + dsbevx.f + dsbtrd.f + dstebz.f + dstein.f + dsterf.f + dgetri.f + dtrtri.f + dtrti2.f + dgebak.f + dgebal.f + dgeev.f + dgehd2.f + dgehrd.f + dhseqr.f + dlahrd.f + + dorg2r.f + dorghr.f + dorgqr.f + dpotrf.f + dpotrs.f + dtrtrs.f + + dggbak.f + dggbal.f + dggev.f + dgghrd.f + dhgeqz.f + dlag2.f + dlasv2.f + dtgevc.f + + dgesvxx.f + dla_gerfsx_extended.f + dlascl2.f + dlaqge.f + dgeequb.f + dgerfsx.f + + chla_transtype.f + dla_gercond.f + dla_wwaddw.f + ilaprec.f + ilatrans.f + dgecon.f + + dla_geamv.f + dlacn2.f + dla_lin_berr.f + drscl.f + dlatrs.f + dla_rpvgrw.f + dla_gerpvgrw.f +) +add_library(LAPACK_C) +target_sources(LAPACK_C PUBLIC + BLAS_dgemv2_x.c + BLAS_dgemv2_x-f2c.c + BLAS_dgemv_x.c + BLAS_dgemv_x-f2c.c + BLAS_error.c + BLAS_error.c +) +target_link_libraries(LAPACK PUBLIC LAPACK_C) -#IOBJ = ilaenv.o lsame.o lsamen.o xerbla.o xlaenv.o ieeeck.o -#all: double -# -#double: $(DOBJ) $(IOBJ) -# @$(RM) $(RMFLAGS) $(LAPACK_LIBRARY) -# @$(AR) $(ARFLAGS) $(LAPACK_LIBRARY) $(DOBJ) $(IOBJ) -# @$(RANLIB) $(LAPACK_LIBRARY) -# -## Miscellaneous -#tidy: -# @$(RM) $(RMFLAGS) Makefile.bak *~ #*# core go -# -#clean: tidy -# @$(RM) $(RMFLAGS) $(OBJS) *.o test go -# -#spotless: clean -# -#wipe: spotless -# DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/OTHER/SuperLU_5.1.1/CMakeLists.txt b/OTHER/SuperLU_5.1.1/CMakeLists.txt index 6539e04d1..dffd6b162 100644 --- a/OTHER/SuperLU_5.1.1/CMakeLists.txt +++ b/OTHER/SuperLU_5.1.1/CMakeLists.txt @@ -1,14 +1,21 @@ -# sparse supernodal LU, implemented in ANSI C - -####################################################################### -# This is the makefile to create a library for SuperLU. +#============================================================================== +# +# 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) +# +#------------------------------------------------------------------------------ +##-Extracted from accompanying Makefile-############################### # The files are organized as follows: # -# ALLAUX -- Auxiliary routines called from all precisions of SuperLU -# SLUSRC -- Single precision real SuperLU routines -# DLUSRC -- Double precision real SuperLU routines -# CLUSRC -- Single precision complex SuperLU routines -# ZLUSRC -- Double precision complex SuperLU routines +# ALLAUX -- Auxiliary routines called from all precisions of SuperLU +# SLUSRC -- Single precision real SuperLU routines +# DLUSRC -- Double precision real 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 # of the four precisions. To create or add to the library, enter make @@ -27,15 +34,13 @@ # make clean # ####################################################################### +# Claudio Perez project(SUPERLU C) set(SUPERLU_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/SRC") add_library(SUPERLU) -### return machine parameters -#SCAUX = smach.o - add_library(DZLAUX OBJECT ${SUPERLU_SRC_DIR}/dmach.c ) @@ -242,42 +247,3 @@ 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) -# -#double: $(DLUSRC) $(ALLAUX) $(DZLAUX) -# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(DLUSRC) $(ALLAUX) $(DZLAUX) -# $(RANLIB) $(SUPERLULIB) -# -#complex: $(CLUSRC) $(ALLAUX) $(SCAUX) -# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(CLUSRC) $(ALLAUX) $(SCAUX) -# $(RANLIB) $(SUPERLULIB) -# -#complex16: $(ZLUSRC) $(ALLAUX) $(DZLAUX) -# $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) $(ZLUSRC) $(ALLAUX) $(DZLAUX) -# $(RANLIB) $(SUPERLULIB) -# -# -################################### -## Do not optimize these routines # -################################### -#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) -# -#.f.o: -# $(FORTRAN) $(FFLAGS) -c $< -# -#clean: -# rm -f *.o $(SUPERLULIB) - From 00ca972f6492b070aeb4ba9a782656facd48b373 Mon Sep 17 00:00:00 2001 From: Claudio Perez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 16 Jul 2021 07:05:40 -0700 Subject: [PATCH 15/16] cmp - implement extension processing --- CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3db39241d..e41f37c6d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ set(OPS_EXTERNALS_DIR ${PROJECT_SOURCE_DIR}/OTHER/) 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 @@ -416,6 +417,17 @@ if(FMK) ) endif() +#---------------------------- +# Extensions +#---------------------------- +message("OPS >>> Configuring OpenSees extensions") +foreach(extension IN LISTS OPS_Element_List OPS_Extension_List) + string(TOUPPER "${extension}" ext_flag) + set(ext_flag "_${ext_flag}") + message(" Adding definition '${ext_flag}'") + add_compile_definitions(${ext_flag}) +endforeach() + #---------------------------- # Renderer #---------------------------- From 53a67d0d93703a41dea7ded4bbe90375a2356944 Mon Sep 17 00:00:00 2001 From: Claudio Perez <50180406+claudioperez@users.noreply.github.com> Date: Fri, 16 Jul 2021 07:06:29 -0700 Subject: [PATCH 16/16] cmp - cleaning Conf file --- Conf.cmake | 35 ++++++++++++++++++++++++++--------- ETC/scripts/make_cmake.sh | 23 ++++++++++++++--------- 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/Conf.cmake b/Conf.cmake index fb4bb6c10..d70c426e3 100644 --- a/Conf.cmake +++ b/Conf.cmake @@ -7,8 +7,6 @@ # All Rights Reserved # (Copyright and Disclaimer @ http://www.berkeley.edu/OpenSees/copyright.html) # -#------------------------------------------------------------------------------ - #============================================================================== # Select Executable # @@ -23,12 +21,14 @@ set(OPS_FINAL_TARGET "OpenSeesTcl" option(FMK "Special FMK Code" OFF) -option(OPS_THREADSAFE - "Only build thread safe components" ON) +# G3 Options +#-------------------------------------- +option(G3_Api_OPS_Global + "Compile G3 library with bindings \ + to the global OpenSees API" ON) # Component Libraries #-------------------------------------- - option(OPS_Use_Reliability "Include reliability" OFF) @@ -68,17 +68,34 @@ define_property(TARGET FULL_DOCS "..." ) - #============================================================================== -# Select Element Libraries +# Select Auxiliary Libraries # -# Each element in this list ows and associated macro definition +# Each element in this list owns an associated macro definition that is the +# name of the lib converted to uppercase, and prepended with an underscore +# (e.g. using OPS_Element_truss defines the macro _OPS_ELEMENT_TRUSS) #============================================================================== +set(OPS_Extension_List + + OPS_Reliability # TODO: replace existing tests on '_RELIABILITY' + + OPS_NumLib_PETSC + OPS_NumLib_METIS + OPS_NumLib_UMFPACK + + OPS_ExtLib_PFEM + + OPS_Graphics + OPS_Renderer + OPS_Renderer_GLX # TODO: replace existing tests on '_GLX' + OPS_Renderer_X11 +) + set(OPS_Element_List OPS_Element_truss - OPS_Element_beam3d #OPS_Element_beam2d + OPS_Element_beam3d OPS_Element_dispBeamColumnInt OPS_Element_forceBeamColumn OPS_Element_mixedBeamColumn diff --git a/ETC/scripts/make_cmake.sh b/ETC/scripts/make_cmake.sh index 6f24fb5f0..2eb185988 100755 --- a/ETC/scripts/make_cmake.sh +++ b/ETC/scripts/make_cmake.sh @@ -7,27 +7,32 @@ for i in */ do # remove trailing slash i=${i%*/} - name=`echo $i | sed 's|-|_|g'`; + #name=`echo $i | sed 's|-|_|g' | sed -r 's/\<./\U&/g'`; + name="Renderer"; if [ -f $i/CMakeLists.txt ]; then : #echo $i; #cat $i/CMakeLists.txt; else - echo "OPS_Element_$name" + #echo "OPS_$name" { - echo "add_library(OPS_Element_$name OBJECT)"; + echo "add_library(OPS_$name OBJECT)"; echo ""; cd "$i"; - echo "target_sources(OPS_Element_$name"; + echo "target_sources(OPS_$name"; echo " PRIVATE"; - ls -1 *.[cfF]* | sed 's|^\([A-z]\)| \1|g'; + ls -1 *.[cfF]* | sed 's|^\([A-z]\)| \1|g' | grep -v Tcl; echo " PUBLIC"; - ls -1 *.h | sed 's|^\([A-z]\)| \1|g'; - cd ../; + ls -1 *.h | sed 's|^\([A-z]\)| \1|g' | grep -v Tcl; echo ")"; - echo "target_include_directories(OPS_Element_$name PUBLIC \$(CMAKE_CURRENT_LIST_DIR))"; + echo "target_include_directories(OPS_$name PUBLIC \$(CMAKE_CURRENT_LIST_DIR))"; echo ""; - } > $i/CMakeLists.txt 2>&1 + for d in ./*/ + do + echo "add_subdirectory($d)" | grep -v '/\*/'; + done + cd ../; + } 2>&1 #> $i/CMakeLists.txt fi; done