diff --git a/CHANGELOG.md b/CHANGELOG.md index a5a86d95765fa610e4e886ffe2b15ce7d32f93a8..7431b7d0fb4d1f93c021fb256f55d2ecfcf5f029 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Master +- Building `dune-gfe` now requires Dune 2.9 or newer. Older configurations + have not gotten CI-tested for quite a while, anyway. + - The `RigidBodyMotion` class has been removed. Please use `ProductManifold<RealTuple,Rotation>` from now on. diff --git a/dune.module b/dune.module index 669495ee9b904b0864cea7f848511eb8cf4aa155..93dba47bebbb8130d5803ac82106dd98245f7e36 100644 --- a/dune.module +++ b/dune.module @@ -7,5 +7,5 @@ Module: dune-gfe Version: svn Maintainer: oliver.sander@tu-dresden.de #depending on -Depends: dune-common(>=2.7) dune-grid(>=2.7) dune-uggrid dune-istl dune-localfunctions dune-geometry (>=2.7) dune-functions (>=2.7) dune-solvers dune-fufem dune-elasticity (>=2.7) dune-gmsh4 +Depends: dune-grid(>=2.9) dune-uggrid dune-istl dune-localfunctions dune-functions (>=2.9) dune-solvers dune-fufem dune-elasticity (>=2.9) dune-gmsh4 Suggests: dune-foamgrid dune-parmg dune-vtk dune-curvedgrid diff --git a/dune/gfe/assemblers/cosseratenergystiffness.hh b/dune/gfe/assemblers/cosseratenergystiffness.hh index d22e4a4bb2d3046320d0e2939fceb8123163e4b1..a7105cbe0f1e19e14eddc77624628d23b2618a68 100644 --- a/dune/gfe/assemblers/cosseratenergystiffness.hh +++ b/dune/gfe/assemblers/cosseratenergystiffness.hh @@ -9,10 +9,6 @@ #include <dune/fufem/boundarypatch.hh> -#if DUNE_VERSION_LT(DUNE_COMMON, 2, 9) -#include <dune/matrix-vector/transpose.hh> -#endif - #include <dune/gfe/assemblers/localenergy.hh> #ifdef PROJECTED_INTERPOLATION #include <dune/gfe/localprojectedfefunction.hh> @@ -269,17 +265,10 @@ public: Dune::FieldMatrix<field_type,3,3> wryness(0); -#if DUNE_VERSION_LT(DUNE_COMMON, 2, 9) - Dune::FieldMatrix<field_type,dim,dim> transposeR; - Dune::MatrixVector::transpose(R,transposeR); - auto axialVectorx1 = SkewMatrix<field_type,3>(transposeR*dRx1).axial(); - auto axialVectorx2 = SkewMatrix<field_type,3>(transposeR*dRx2).axial(); - auto axialVectorx3 = SkewMatrix<field_type,3>(transposeR*dRx3).axial(); -#else auto axialVectorx1 = SkewMatrix<field_type,3>(transpose(R)*dRx1).axial(); auto axialVectorx2 = SkewMatrix<field_type,3>(transpose(R)*dRx2).axial(); auto axialVectorx3 = SkewMatrix<field_type,3>(transpose(R)*dRx3).axial(); -#endif + for (int i=0; i<3; i++) { wryness[i][0] = axialVectorx1[i]; wryness[i][1] = axialVectorx2[i]; diff --git a/dune/gfe/assemblers/cosseratrodenergy.hh b/dune/gfe/assemblers/cosseratrodenergy.hh index 27bc7e6581e01720db259a61682a26b5037da4ec..5545ab41ae0fe2a1e5db300c24d001ade3c78f2a 100644 --- a/dune/gfe/assemblers/cosseratrodenergy.hh +++ b/dune/gfe/assemblers/cosseratrodenergy.hh @@ -5,9 +5,7 @@ #include <dune/common/fmatrix.hh> #include <dune/common/version.hh> -#if DUNE_VERSION_GTE(DUNE_COMMON, 2, 8) #include <dune/common/transpose.hh> -#endif #include <dune/istl/matrix.hh> #include <dune/geometry/quadraturerules.hh> @@ -255,12 +253,7 @@ namespace Dune::GFE { auto value = localInterpolation.evaluate(pos); auto referenceDerivative = localInterpolation.evaluateDerivative(pos); -#if DUNE_VERSION_GTE(DUNE_COMMON, 2, 8) auto derivative = referenceDerivative * transpose(jit); -#else - auto derivative = referenceDerivative; - derivative *= jit[0][0]; -#endif using Number = std::decay_t<decltype(derivative[0][0])>; FieldVector<Number,3> r_s = {derivative[0][0], derivative[1][0], derivative[2][0]}; diff --git a/dune/gfe/assemblers/simofoxenergy.hh b/dune/gfe/assemblers/simofoxenergy.hh index 04c847362347763857ab534aa56f7230e422cda7..af5cad60c7e349a6fe281fae5116e2d814bf2b2f 100644 --- a/dune/gfe/assemblers/simofoxenergy.hh +++ b/dune/gfe/assemblers/simofoxenergy.hh @@ -3,9 +3,7 @@ #include <dune/common/fmatrix.hh> #include <dune/common/parametertree.hh> -#if DUNE_VERSION_GTE(DUNE_COMMON, 2, 8) #include <dune/common/transpose.hh> -#endif #include <dune/common/tuplevector.hh> #include <dune/fufem/boundarypatch.hh> #include <dune/geometry/quadraturerules.hh> diff --git a/dune/gfe/localprojectedfefunction.hh b/dune/gfe/localprojectedfefunction.hh index 5f1a0c49d8ea8493529d82bf6b76fcb6d7045955..577b1d5f7ec7533099ae9fa23ed2c6565d305273 100644 --- a/dune/gfe/localprojectedfefunction.hh +++ b/dune/gfe/localprojectedfefunction.hh @@ -4,7 +4,6 @@ #include <vector> #include <dune/common/fvector.hh> -#include <dune/common/version.hh> #include <dune/geometry/type.hh> @@ -177,11 +176,6 @@ namespace Dune { auto derivativeOfProjection = TargetSpace::derivativeOfProjection(embeddedInterpolation); -#if ! DUNE_VERSION_GTE(DUNE_ISTL, 2, 9) - if constexpr (std::is_same_v<decltype(derivativeOfProjection), ScaledIdentityMatrix<RT,embeddedDim> >) - return derivativeOfProjection.scalar()*derivative; - else -#endif return derivativeOfProjection*derivative; } diff --git a/dune/gfe/riemannianpnsolver.cc b/dune/gfe/riemannianpnsolver.cc index 060f495b8113ab77a657f1b2230730757908279a..e9ba72e0ce8b76e72d5ff0c3e53db31dbce61ba7 100644 --- a/dune/gfe/riemannianpnsolver.cc +++ b/dune/gfe/riemannianpnsolver.cc @@ -11,16 +11,9 @@ #include <dune/fufem/assemblers/localassemblers/massassembler.hh> #include <dune/fufem/assemblers/basisinterpolationmatrixassembler.hh> -#if DUNE_VERSION_GTE(DUNE_SOLVERS, 2, 8) -// Using a cholmod solver as the inner solver, available only since 2.8 -#include <dune/solvers/solvers/cholmodsolver.hh> -#else -// Using a umfpack solver as the inner solver -#include <dune/solvers/solvers/umfpacksolver.hh> -#endif - #include <dune/solvers/norms/twonorm.hh> #include <dune/solvers/norms/h1seminorm.hh> +#include <dune/solvers/solvers/cholmodsolver.hh> // The VectorCommunicator and MatrixCommunicator work only for GRID_DIM == WORLD_DIM == 2 or GRID_DIM == WORLD_DIM == 3 #if HAVE_MPI && (!defined(GRID_DIM)or (defined(GRID_DIM) && GRID_DIM < 3)) && (!defined(WORLD_DIM)or (defined(WORLD_DIM) && WORLD_DIM < 3)) @@ -132,12 +125,8 @@ setup(const GridType& grid, ////////////////////////////////////////////////////////////////// // Create the inner solver using a cholmod solver ////////////////////////////////////////////////////////////////// -#if DUNE_VERSION_GTE(DUNE_SOLVERS, 2, 8) + innerSolver_ = std::make_shared<Dune::Solvers::CholmodSolver<MatrixType,CorrectionType> >(); -#else - std::cout << "using umfpacksolver" << std::endl; - innerSolver_ = std::make_shared<Dune::Solvers::UMFPackSolver<MatrixType,CorrectionType> >(); -#endif innerSolver_->setIgnore(*globalDirichletNodes); // ////////////////////////////////////////////////////////////////////////////////////// diff --git a/dune/gfe/riemannianpnsolver.hh b/dune/gfe/riemannianpnsolver.hh index d5a3a8559c18edda56e1792425559624742b4277..03127e120da75f5167d91bb48ddd564b3edbbbfa 100644 --- a/dune/gfe/riemannianpnsolver.hh +++ b/dune/gfe/riemannianpnsolver.hh @@ -14,11 +14,7 @@ #include <dune/solvers/common/boxconstraint.hh> #include <dune/solvers/norms/h1seminorm.hh> #include <dune/solvers/solvers/iterativesolver.hh> -#if DUNE_VERSION_GTE(DUNE_SOLVERS, 2, 8) #include <dune/solvers/solvers/cholmodsolver.hh> -#else -#include <dune/solvers/solvers/umfpacksolver.hh> -#endif #include "riemanniantrsolver.hh" #include <dune/grid/utility/globalindexset.hh> @@ -144,11 +140,8 @@ protected: const Assembler* assembler_; /** \brief The solver for the quadratic inner problems */ -#if DUNE_VERSION_GTE(DUNE_SOLVERS, 2, 8) std::shared_ptr<typename Dune::Solvers::CholmodSolver<MatrixType,CorrectionType> > innerSolver_; -#else - std::shared_ptr<typename Dune::Solvers::UMFPackSolver<MatrixType,CorrectionType> > innerSolver_; -#endif + /** \brief The Dirichlet nodes */ const Dune::BitSetVector<blocksize>* ignoreNodes_; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ba44aef10080369b9acf10952b3b4bad5d3d1e5a..d52c8b69c9f9cf4049075705aac85aeff9a263e1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,20 +1,16 @@ set(programs compute-disc-error + film-on-substrate-stress-plot gradient-flow harmonicmaps + rod3d simofoxshell) # rodobstacle) -if (${DUNE_COMMON_VERSION} VERSION_GREATER_EQUAL 2.8) - set (programs rod3d ${programs}) -endif() -if (${DUNE_ELASTICITY_VERSION} VERSION_GREATER_EQUAL 2.8) - set(programs film-on-substrate-stress-plot ${programs}) -endif() foreach(_program ${programs}) add_executable(${_program} ${_program}.cc) endforeach() -if (dune-parmg_FOUND AND dune-curvedgeometry_FOUND AND ${DUNE_ELASTICITY_VERSION} VERSION_GREATER_EQUAL 2.8) +if (dune-parmg_FOUND AND dune-curvedgeometry_FOUND) add_executable("film-on-substrate" film-on-substrate.cc) set_property(TARGET "film-on-substrate" APPEND PROPERTY COMPILE_DEFINITIONS "WORLD_DIM=3; LFE_ORDER=2; GFE_ORDER=2") set(programs film-on-substrate ${programs}) @@ -49,10 +45,5 @@ set(programs cosserat-continuum-3d-in-3d-2-1 ${programs}) foreach(_program ${programs}) target_link_dune_default_libraries(${_program}) add_dune_pythonlibs_flags(${_program}) - if (${DUNE_COMMON_VERSION} VERSION_GREATER_EQUAL 2.8) - target_link_libraries(${_program} PUBLIC tinyxml2) - else() - target_link_libraries(${_program} tinyxml2) - endif() -# target_compile_options(${_program} PRIVATE "-fpermissive") + target_link_libraries(${_program} PUBLIC tinyxml2) endforeach() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9141ecd85da90b0e57eaa023a7b69f5d9144b179..d74606376ba3a2e87091d18ee7fd1445555c9433 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -11,6 +11,7 @@ set(TESTS orthogonalmatrixtest polardecompositiontest rotationtest + surfacecosseratstressassemblertest svdtest targetspacetest ) @@ -33,10 +34,6 @@ if (dune-curvedgrid_FOUND) set(TESTS test-cylinder ${TESTS}) endif() -if (${DUNE_COMMON_VERSION} VERSION_GREATER_EQUAL 2.8) - set(TESTS surfacecosseratstressassemblertest ${TESTS}) -endif() - if(dune-foamgrid_FOUND) set(TESTS nonplanarcosseratenergytest ${TESTS}) endif() @@ -47,17 +44,13 @@ foreach(_test ${TESTS}) endforeach() # Run distributed tests -if (${DUNE_COMMON_VERSION} VERSION_GREATER_EQUAL 2.8) dune_add_test(SOURCES harmonicmaptest.cc MPI_RANKS 1 4 TIMEOUT 600 CMAKE_GUARD MPI_FOUND) -endif() -if (${DUNE_COMMON_VERSION} VERSION_GREATER_EQUAL 2.9) - dune_add_test(SOURCES cosseratcontinuumtest.cc +dune_add_test(SOURCES cosseratcontinuumtest.cc TIMEOUT 600) -endif() dune_add_test(SOURCES geodesicfeassemblerwrappertest.cc MPI_RANKS 1 4