diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 091edaef2..3455e99b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,9 +13,18 @@ build-and-test: stage: test image: ubuntu:24.04 timeout: 4 hours + parallel: + matrix: + - UG_BUILD_ID: build-gcc-13 + UG_C_COMPILER: "gcc" + UG_CXX_COMPILER: "g++" + - UG_BUILD_ID: build-clang-15 + UG_C_COMPILER: "clang-15" + UG_CXX_COMPILER: "clang++-15" + #tags: + # - ${PROVIDER}-${STACK} + #environment: $PROVIDER/$STACK variables: - CMAKE_C_COMPILER: "gcc" - CMAKE_CXX_COMPILER: "g++" UGHUB_DIR: "$CI_PROJECT_DIR/ughub" UG4_OLD_DIR: "$CI_PROJECT_DIR/ug4-old" UG4_NEW_DIR: "$CI_PROJECT_DIR/ug4-new" @@ -23,7 +32,7 @@ build-and-test: - echo "Setting up base ug4 enviroment." - mkdir -p $UG4_NEW_DIR/ugcore - mv * $UG4_NEW_DIR/ugcore || true - - apt-get update >/dev/null && apt-get install -y python3 git cmake build-essential >/dev/null + - apt-get update >/dev/null && apt-get install -y python3 git cmake build-essential clang-15 >/dev/null - cd $CI_PROJECT_DIR && git clone https://gitlab.com/ug4-project/ughub.git - export PATH="$PATH:$UGHUB_DIR" - mkdir $UG4_OLD_DIR && cd $UG4_OLD_DIR @@ -36,12 +45,12 @@ build-and-test: - cp --update=none -R $UG4_OLD_DIR/* $UG4_NEW_DIR # build ug4 in release - cd $UG4_NEW_DIR - - mkdir -p build && cd build - - cmake .. -DENABLE_ALL_PLUGINS=ON -DDEBUG=OFF -DCMAKE_BUILD_TYPE=Release + - mkdir -p $UG_BUILD_ID && cd $UG_BUILD_ID + - cmake .. -DENABLE_ALL_PLUGINS=ON -DDEBUG=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=$UG_CXX_COMPILER -DCMAKE_C_COMPILER=$UG_C_COMPILER - make -j 4 # build testsuite - cd $UG4_NEW_DIR/apps/unit_tests - - mkdir -p build && cd build + - mkdir -p $UG_BUILD_ID && cd $UG_BUILD_ID - cmake .. -DUSE_JSON=OFF -DINTERNAL_BOOST=ON -DDEBUG=OFF -DCMAKE_BUILD_TYPE=Release - make -j 4 - cd $UG4_NEW_DIR @@ -54,10 +63,11 @@ build-and-test: paths: - $UG4_NEW_DIR/report.xml - $UG4_NEW_DIR/test.log + # - $UG4_NEW_DIR/lib/* - $UG4_NEW_DIR/bin/* - $UG4_NEW_DIR/bin/plugins/* reports: - junit: report.xml + junit: $UG4_NEW_DIR/report.xml # BUILD sources on various platforms and compilers deploy-docker: diff --git a/ugbase/bridge/algebra_bridges/ordering_bridge.cpp b/ugbase/bridge/algebra_bridges/ordering_bridge.cpp index de722c051..8804b086b 100644 --- a/ugbase/bridge/algebra_bridges/ordering_bridge.cpp +++ b/ugbase/bridge/algebra_bridges/ordering_bridge.cpp @@ -44,7 +44,7 @@ #include "lib_algebra/lib_algebra.h" // ordering algorithms -#include "lib_algebra/ordering_strategies/algorithms/ordering_algorithms.cpp" +#include "lib_algebra/ordering_strategies/algorithms/ordering_algorithms.h" using namespace std; diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/IOrderingAlgorithm.h b/ugbase/lib_algebra/ordering_strategies/algorithms/IOrderingAlgorithm.h index 3602fbe87..631e71227 100644 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/IOrderingAlgorithm.h +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/IOrderingAlgorithm.h @@ -30,8 +30,8 @@ * GNU Lesser General Public License for more details. */ -#ifndef __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_IORDERING_ALGORITHM__ -#define __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_IORDERING_ALGORITHM__ +#ifndef UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_IORDERINGALGORITHM_H +#define UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_IORDERINGALGORITHM_H #include "common/util/smart_pointer.h" @@ -76,6 +76,6 @@ class IOrderingAlgorithm{ virtual const char* name() const = 0; }; -} //namespace +} -#endif //guard +#endif diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/SCC_ordering.cpp b/ugbase/lib_algebra/ordering_strategies/algorithms/SCC_ordering.h similarity index 96% rename from ugbase/lib_algebra/ordering_strategies/algorithms/SCC_ordering.cpp rename to ugbase/lib_algebra/ordering_strategies/algorithms/SCC_ordering.h index a60ff00c0..f714c02a6 100644 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/SCC_ordering.cpp +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/SCC_ordering.h @@ -30,8 +30,8 @@ * GNU Lesser General Public License for more details. */ -#ifndef __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_SCC_ORDERING__ -#define __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_SCC_ORDERING__ +#ifndef UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_SCC_ORDERING_H +#define UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_SCC_ORDERING_H #include #include @@ -41,8 +41,8 @@ #include #include "IOrderingAlgorithm.h" -#include "topological_ordering.cpp" -#include "util.cpp" +#include "topological_ordering.h" +#include "util.h" #include "lib_algebra/algebra_common/permutation_util.h" //debug @@ -233,7 +233,7 @@ class SCCOrdering : public IOrderingAlgorithm }; -} //namespace +} -#endif //guard +#endif diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/boost_cuthill_mckee_ordering.cpp b/ugbase/lib_algebra/ordering_strategies/algorithms/boost_cuthill_mckee_ordering.h similarity index 96% rename from ugbase/lib_algebra/ordering_strategies/algorithms/boost_cuthill_mckee_ordering.cpp rename to ugbase/lib_algebra/ordering_strategies/algorithms/boost_cuthill_mckee_ordering.h index 4f56ddea0..47122454a 100644 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/boost_cuthill_mckee_ordering.cpp +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/boost_cuthill_mckee_ordering.h @@ -30,8 +30,8 @@ * GNU Lesser General Public License for more details. */ -#ifndef __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_BOOST_CUTHILL_MCKEE_ORDERING__ -#define __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_BOOST_CUTHILL_MCKEE_ORDERING__ +#ifndef UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_BOOST_CUTHILL_MCKEE_ORDERING_H +#define UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_BOOST_CUTHILL_MCKEE_ORDERING_H #include #include @@ -40,7 +40,7 @@ #include #include "IOrderingAlgorithm.h" -#include "util.cpp" +#include "util.h" //debug #include "common/error.h" @@ -200,6 +200,6 @@ class BoostCuthillMcKeeOrdering : public IOrderingAlgorithm bool m_bReverse; }; -} //namespace +} -#endif //guard +#endif diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/boost_minimum_degree_ordering.cpp b/ugbase/lib_algebra/ordering_strategies/algorithms/boost_minimum_degree_ordering.h similarity index 95% rename from ugbase/lib_algebra/ordering_strategies/algorithms/boost_minimum_degree_ordering.cpp rename to ugbase/lib_algebra/ordering_strategies/algorithms/boost_minimum_degree_ordering.h index fb819ecda..95e2c795d 100644 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/boost_minimum_degree_ordering.cpp +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/boost_minimum_degree_ordering.h @@ -30,8 +30,8 @@ * GNU Lesser General Public License for more details. */ -#ifndef __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_BOOST_MINIMUM_DEGREE_ORDERING__ -#define __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_BOOST_MINIMUM_DEGREE_ORDERING__ +#ifndef UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_BOOST_MINIMUM_DEGREE_ORDERING_H +#define UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_BOOST_MINIMUM_DEGREE_ORDERING_H #include #include @@ -40,7 +40,7 @@ #include #include "IOrderingAlgorithm.h" -#include "util.cpp" +#include "util.h" //debug #include "common/error.h" @@ -170,6 +170,6 @@ class BoostMinimumDegreeOrdering final : public IOrderingAlgorithm +#include namespace ug{ @@ -192,4 +190,3 @@ std::tuple, non_dirichlet_iterator > } //namespace -#endif //guard diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/native_cuthill_mckee.cpp b/ugbase/lib_algebra/ordering_strategies/algorithms/native_cuthill_mckee.cpp index 20ec2df21..afe2adc55 100644 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/native_cuthill_mckee.cpp +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/native_cuthill_mckee.cpp @@ -1,5 +1,3 @@ -#ifndef __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_NATIVE_CUTHILL_MCKEE_ORDERING_CPP__ -#define __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_NATIVE_CUTHILL_MCKEE_ORDERING_CPP__ #include "common/common.h" #include "common/profiler/profiler.h" @@ -294,5 +292,3 @@ void ComputeCuthillMcKeeOrder(std::vector& vNewIndex, } } - -#endif //guard diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/native_cuthill_mckee.h b/ugbase/lib_algebra/ordering_strategies/algorithms/native_cuthill_mckee.h index e6f11f6d0..f0f31fdbc 100644 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/native_cuthill_mckee.h +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/native_cuthill_mckee.h @@ -31,13 +31,13 @@ */ -#ifndef __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_NATIVE_CUTHILL_MCKEE_ORDERING__ -#define __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_NATIVE_CUTHILL_MCKEE_ORDERING__ +#ifndef UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_NATIVE_CUTHILL_MCKEE_H +#define UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_NATIVE_CUTHILL_MCKEE_H #include #include "IOrderingAlgorithm.h" -#include "util.cpp" +#include "util.h" //debug #include "common/error.h" @@ -179,6 +179,6 @@ class NativeCuthillMcKeeOrdering : public IOrderingAlgorithm }; -} // end namespace ug +} #endif diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/ordering_algorithms.cpp b/ugbase/lib_algebra/ordering_strategies/algorithms/ordering_algorithms.cpp deleted file mode 100644 index b5ee041ab..000000000 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/ordering_algorithms.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "boost_cuthill_mckee_ordering.cpp" -#include "boost_minimum_degree_ordering.cpp" -#include "native_cuthill_mckee.h" -#include "topological_ordering.cpp" - -#include "SCC_ordering.cpp" diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/ordering_algorithms.h b/ugbase/lib_algebra/ordering_strategies/algorithms/ordering_algorithms.h new file mode 100644 index 000000000..e0fa3e7d9 --- /dev/null +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/ordering_algorithms.h @@ -0,0 +1,10 @@ +#ifndef UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_ORDERING_ALGORITHMS_H +#define UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_ORDERING_ALGORITHMS_H + +#include "boost_cuthill_mckee_ordering.h" +#include "boost_minimum_degree_ordering.h" +#include "native_cuthill_mckee.h" +#include "topological_ordering.h" +#include "SCC_ordering.h" + +#endif diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/topological_ordering.cpp b/ugbase/lib_algebra/ordering_strategies/algorithms/topological_ordering.h similarity index 97% rename from ugbase/lib_algebra/ordering_strategies/algorithms/topological_ordering.cpp rename to ugbase/lib_algebra/ordering_strategies/algorithms/topological_ordering.h index bb788b5a0..45f95ac29 100644 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/topological_ordering.cpp +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/topological_ordering.h @@ -30,8 +30,8 @@ * GNU Lesser General Public License for more details. */ -#ifndef __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_TOPOLOGICAL_ORDERING__ -#define __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_TOPOLOGICAL_ORDERING__ +#ifndef UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_TOPOLOGICAL_ORDERING_H +#define UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_TOPOLOGICAL_ORDERING_H #include #include @@ -47,7 +47,7 @@ #include #include "IOrderingAlgorithm.h" -#include "util.cpp" +#include "util.h" //debug #include "common/error.h" @@ -288,6 +288,6 @@ class TopologicalOrdering : public IOrderingAlgorithm O_t o; }; -} //namespace +} -#endif //guard +#endif diff --git a/ugbase/lib_algebra/ordering_strategies/algorithms/util.cpp b/ugbase/lib_algebra/ordering_strategies/algorithms/util.h similarity index 85% rename from ugbase/lib_algebra/ordering_strategies/algorithms/util.cpp rename to ugbase/lib_algebra/ordering_strategies/algorithms/util.h index f99c1fd71..166b354d7 100644 --- a/ugbase/lib_algebra/ordering_strategies/algorithms/util.cpp +++ b/ugbase/lib_algebra/ordering_strategies/algorithms/util.h @@ -1,6 +1,6 @@ -#ifndef __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_UTIL__ -#define __UG__LIB_ALGEBRA__ORDERING_STRATEGIES_ALGORITHMS_UTIL__ +#ifndef UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_UTIL_H +#define UG_BASE_LIB_ALGEBRA_ORDERING_STRATEGIES_ALGORITHMS_UTIL_H #include #include @@ -51,6 +51,6 @@ bool is_permutation(O_t &o){ #endif -} //namespace +} -#endif //guard +#endif diff --git a/ugbase/lib_disc/ordering_strategies/algorithms/directional_ordering.cpp b/ugbase/lib_disc/ordering_strategies/algorithms/directional_ordering.cpp index ea748185d..f82d5ef79 100644 --- a/ugbase/lib_disc/ordering_strategies/algorithms/directional_ordering.cpp +++ b/ugbase/lib_disc/ordering_strategies/algorithms/directional_ordering.cpp @@ -48,7 +48,7 @@ #include "lib_disc/spatial_disc/user_data/user_data.h" #include "lib_algebra/ordering_strategies/algorithms/IOrderingAlgorithm.h" -#include "lib_algebra/ordering_strategies/algorithms/util.cpp" +#include "lib_algebra/ordering_strategies/algorithms/util.h" #include #include "common/error.h" diff --git a/ugbase/lib_disc/ordering_strategies/algorithms/lexorder.h b/ugbase/lib_disc/ordering_strategies/algorithms/lexorder.h index 593a82d4f..c3e7ececa 100644 --- a/ugbase/lib_disc/ordering_strategies/algorithms/lexorder.h +++ b/ugbase/lib_disc/ordering_strategies/algorithms/lexorder.h @@ -41,7 +41,7 @@ #include "lib_disc/function_spaces/grid_function.h" #include "lib_algebra/ordering_strategies/algorithms/IOrderingAlgorithm.h" -#include "lib_algebra/ordering_strategies/algorithms/util.cpp" +#include "lib_algebra/ordering_strategies/algorithms/util.h" #include "lib_disc/function_spaces/dof_position_util.h" #include "common/error.h" diff --git a/ugbase/lib_disc/ordering_strategies/algorithms/riverorder.h b/ugbase/lib_disc/ordering_strategies/algorithms/riverorder.h index cafbb9d4a..bec04e28e 100644 --- a/ugbase/lib_disc/ordering_strategies/algorithms/riverorder.h +++ b/ugbase/lib_disc/ordering_strategies/algorithms/riverorder.h @@ -45,7 +45,7 @@ #include "lib_disc/function_spaces/grid_function.h" #include "lib_algebra/ordering_strategies/algorithms/IOrderingAlgorithm.h" -#include "lib_algebra/ordering_strategies/algorithms/util.cpp" +#include "lib_algebra/ordering_strategies/algorithms/util.h" #include "common/error.h"