Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer, es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Ein Anmelden über dieses erzeugt ein neues Konto. Das alte Konto ist über den Reiter "Standard" erreichbar. Die Administratoren

Dear Gitlab user, it is now possible to log in to our service using the ZIH login/LDAP. Logging in via this will create a new account. The old account can be accessed via the "Standard" tab. The administrators

Commit f1ad9fe6 authored by Praetorius, Simon's avatar Praetorius, Simon
Browse files

reduce deprecation and other warnings introduced by recent changes in dune 2.8

parent cc2acd3c
......@@ -250,8 +250,8 @@ namespace AMDiS
if constexpr (std::is_convertible_v<decltype(std::declval<HG>().loadBalance()), bool>)
return hostGrid_->loadBalance();
else {
hostGrid_->loadBalance();
return true;
hostGrid_->loadBalance();
return true;
}
}
......@@ -269,7 +269,7 @@ namespace AMDiS
if constexpr (std::is_convertible_v<decltype(std::declval<HG>().loadBalance(handle)), bool>)
return hostGrid_->loadBalance(handle);
else {
hostGrid_->loadBalance(handle);
hostGrid_->loadBalance(handle);
return true;
}
}
......@@ -374,6 +374,7 @@ namespace Dune
: public GridFactoryInterface<AMDiS::AdaptiveGrid<HostGrid> >
{
using Self = GridFactory;
using Super = GridFactoryInterface<AMDiS::AdaptiveGrid<HostGrid> >;
using GridType = AMDiS::AdaptiveGrid<HostGrid>;
using HostGridFactory = GridFactory<HostGrid>;
......@@ -406,12 +407,22 @@ namespace Dune
hostFactory_.insertElement(type, vertices);
}
#if DUNE_VERSION_LT(DUNE_GRID,2,8)
using ElementParametrizationType = std::shared_ptr<VirtualFunction<FieldVector<ctype,dim>,FieldVector<ctype,dimworld> > >;
/// Insert a parametrized element into the coarse grid
void insertElement(GeometryType const& type,
std::vector<unsigned int> const& vertices,
ElementParametrizationType const& elementParametrization) override
#else
using ElementParametrizationType
= std::function<FieldVector<ctype,dimworld>(FieldVector<ctype,dim>)>;
/// Insert a parametrized element into the coarse grid
void insertElement(GeometryType const& type,
std::vector<unsigned int> const& vertices,
ElementParametrizationType elementParametrization) override
#endif
{
using A0 = GeometryType;
using A1 = std::vector<unsigned int>;
......@@ -421,6 +432,7 @@ namespace Dune
else
AMDiS::error_exit("insertElement() not implemented for HostGrid type.");
}
using Super::insertElement;
template <class F, class... Args>
using HasInsertBoundarySegment = decltype(std::declval<F>().insertBoundarySegment(std::declval<Args>()...));
......
......@@ -186,7 +186,7 @@ namespace AMDiS
std::unique_ptr<GridType> read_gmsh_file(std::string const& filename, Dune::PriorityTag<1>) const
{
Dune::GmshReader<GridType> reader;
return std::unique_ptr<GridType>{reader.read(filename, boundaryIds_, elementIds_)};
return std::unique_ptr<GridType>{reader.read(filename)}; // , boundaryIds_, elementIds_)};
}
// fallback if GmshReader cannot be used
......
......@@ -207,12 +207,11 @@ coords(Node const& tree, std::vector<std::size_t> const& localIndices) const
using DomainType = typename FiniteElement::Traits::LocalBasisType::Traits::DomainType;
using RangeType = typename FiniteElement::Traits::LocalBasisType::Traits::RangeType;
// TODO(FM): Cleanup once interpolation over a non-leaf node is fully supported
std::array<std::vector<typename RangeType::field_type>, Domain::dimension> coeffs;
for (int d = 0; d < Domain::dimension; ++d) {
auto evalCoord = functionFromCallable<RangeType(DomainType)>([&](DomainType const& local)
-> RangeType { return geometry.global(local)[d]; });
localInterpol.interpolate(evalCoord, coeffs[d]);
auto evalCoord = [&](DomainType const& local) -> RangeType { return geometry.global(local)[d]; };
auto evalCoordFct = functionFromCallable<RangeType(DomainType)>(evalCoord);
localInterpol.interpolate(evalCoordFct, coeffs[d]);
}
for (std::size_t j = 0; j < localIndices.size(); ++j) {
......
#pragma once
#include <dune/common/version.hh>
#if DUNE_VERSION_LT(DUNE_LOCALFUNCTIONS,2,8)
#include <dune/common/typeutilities.hh>
#include <dune/functions/common/functionfromcallable.hh>
#endif
namespace AMDiS
{
#if DUNE_VERSION_LT(DUNE_LOCALFUNCTIONS,2,8)
namespace Impl
{
template <class Traits, class F,
......@@ -27,5 +32,9 @@ namespace AMDiS
{
return Impl::functionFromCallableImpl<SigTraits>(f, Dune::PriorityTag<10>{});
}
#else
template <class SigTraits, class F>
F functionFromCallable(F const& f) { return f; }
#endif
} // end namespace AMDiS
......@@ -71,14 +71,15 @@ namespace AMDiS
return;
// extract component of local function result corresponding to node in tree
auto localFj = functionFromCallable<Traits>([&](auto const& local)
auto localFj = [&](auto const& local)
{
const auto& tmp = lf(local);
return nodeToRangeEntry(node, tp, Dune::MatVec::as_vector(tmp));
});
};
thread_local std::vector<RangeField> interpolationCoeff;
fe.localInterpolation().interpolate(localFj, interpolationCoeff);
auto localFjFct = functionFromCallable<Traits>(localFj);
fe.localInterpolation().interpolate(localFjFct, interpolationCoeff);
counter.scatter(localView, node, visit, assign);
vector.scatter(localView, node, interpolationCoeff, visit, assign);
......
#include "config.h"
#include "FileWriterBase.hpp"
#include <amdis/AdaptInfo.hpp>
......
......@@ -4,6 +4,7 @@
#include <string>
#include <type_traits>
#include <dune/common/version.hh>
#include <dune/common/std/apply.hh>
#include <dune/typetree/treepath.hh>
#include <dune/typetree/typetraits.hh>
......@@ -125,11 +126,19 @@ namespace AMDiS
return tp;
}
#if DUNE_VERSION_LT(DUNE_TYPETREE,2,8)
template <std::size_t... I>
auto makeTreePath(Dune::TypeTree::TreePath<I...>)
{
return Dune::TypeTree::hybridTreePath(std::integral_constant<std::size_t, I>{}...);
}
#else
template <std::size_t... I>
auto makeTreePath(Dune::TypeTree::StaticTreePath<I...>)
{
return Dune::TypeTree::hybridTreePath(std::integral_constant<std::size_t, I>{}...);
}
#endif
template <class TP>
auto makeTreePath(TP const&)
......
......@@ -79,14 +79,16 @@ private:
int main(int argc, char** argv)
{
AMDiS::Environment env(argc, argv);
#if AMDIS_HAS_PETSC
MPI_Comm comm = MPI_COMM_WORLD;
#endif
using GI = GlobalIndex;
using LI = Dune::ParallelLocalIndex<Attribute::Type>;
using PIS = Dune::ParallelIndexSet<GI,LI>;
int r = env.mpiRank();
int s = env.mpiSize();
[[maybe_unused]] int s = env.mpiSize();
assert( s == 2 );
int N = 3;
......
......@@ -75,7 +75,7 @@ auto makeProblem(typename BasisCreator::GlobalBasis::GridView::Grid& grid, Fcts
k++;
});
return std::move(prob);
return prob;
}
template <class Problem, class Fcts>
......
......@@ -12,7 +12,7 @@ void test1()
FakeContainer<int,1> vec3(std::move(vec2));
FakeContainer<int,1> vec4 = vec1;
FakeContainer<int,1> vec5 = std::move(vec3);
[[maybe_unused]] FakeContainer<int,1> vec5 = std::move(vec3);
vec1.reserve(7);
vec1.resize(1);
......@@ -54,7 +54,7 @@ void test2()
AMDIS_TEST(!bitSet.empty());
// use bitset element as template parameter
auto iconst = std::integral_constant<bool, bitSet[0]>{};
[[maybe_unused]] auto iconst = std::integral_constant<bool, bitSet[0]>{};
}
......
#include "config.h"
#include <dune/grid/yaspgrid.hh>
#include <dune/functions/functionspacebases/compositebasis.hh>
#include <dune/functions/functionspacebases/lagrangebasis.hh>
#include <dune/functions/functionspacebases/powerbasis.hh>
#include <amdis/Environment.hpp>
#include <amdis/typetree/Traversal.hpp>
#include <amdis/typetree/TreeContainer.hpp>
......@@ -11,8 +13,10 @@
using namespace AMDiS;
int main ()
int main (int argc, char** argv)
{
Environment env(argc, argv);
Dune::YaspGrid<2> grid({1.0,1.0}, {1,1});
auto gridView = grid.leafGridView();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment