From ee1998134cbae0f2e7d8404d6e9b806a1a2bebca Mon Sep 17 00:00:00 2001 From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de> Date: Tue, 19 Apr 2016 11:34:23 +0200 Subject: [PATCH] Some changes to make the thing compile (but not yet run) --- python/dune/perftool/generation/cpp.py | 7 ++++--- python/dune/perftool/loopy/transformer.py | 10 +++++----- python/dune/perftool/pdelab/driver.py | 19 ++++++++++--------- python/dune/perftool/pdelab/localoperator.py | 8 ++++---- test/CMakeLists.txt | 2 +- test/laplace.mini | 6 ++++++ 6 files changed, 30 insertions(+), 22 deletions(-) diff --git a/python/dune/perftool/generation/cpp.py b/python/dune/perftool/generation/cpp.py index 38b2450a..6a73a9b2 100644 --- a/python/dune/perftool/generation/cpp.py +++ b/python/dune/perftool/generation/cpp.py @@ -19,8 +19,8 @@ def include_file(include, filetag=None): def initializer_list(obj, params, classtag=None): assert classtag - gen = generator_factory(item_tags=(classtag, "initializer"), counted=True, cache_key_generator=lambda *a: a[0]) - return "{}({})".format(obj, ", ".join(params)) + gen = generator_factory(item_tags=(classtag, "initializer"), counted=True, no_deco=True, cache_key_generator=lambda *a: a[0]) + return gen("{}({})".format(obj, ", ".join(params))) def base_class(baseclass, classtag=None, access=AccessModifier.PUBLIC, construction=[]): @@ -48,5 +48,6 @@ def constructor_parameter(_type, name, classtag=None, constructortag=None): assert constructortag from cgen import Value - gen = generator_factory(item_tags=(classtag, constructortag, "constructor", "parameter"), counted=True, no_deco=True) + + gen = generator_factory(item_tags=(classtag, constructortag, "constructor_param"), counted=True, no_deco=True) return gen(Value(_type, name)) diff --git a/python/dune/perftool/loopy/transformer.py b/python/dune/perftool/loopy/transformer.py index 2f290ac9..3bf90701 100644 --- a/python/dune/perftool/loopy/transformer.py +++ b/python/dune/perftool/loopy/transformer.py @@ -154,11 +154,11 @@ def transform_accumulation_term(term): from dune.perftool.pdelab.quadrature import name_factor factor = name_factor() - instruction(code="{}.accumulate({}, {}*{})".format(residual, - ", ".join(accumargs), - expr_tv_name, - factor, - ), + instruction(code="{}.accumulate({}, {}*{});".format(residual, + ", ".join(accumargs), + expr_tv_name, + factor, + ), assignees=frozenset({residual}), read_variables=frozenset({residual, factor, expr_tv_name}), forced_iname_deps=acc_inames, diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py index a43b48c0..228e4f50 100644 --- a/python/dune/perftool/pdelab/driver.py +++ b/python/dune/perftool/pdelab/driver.py @@ -251,8 +251,8 @@ def name_fem(expr): @preamble def typedef_vectorbackend(name): - include_file("dune/pdelab/backend/istlvectorbackend.hh", filetag="driver") - return "typedef Dune::PDELab::ISTLVectorBackend<Dune::PDELab::ISTLParameters::no_blocking, 1> {};".format(name) + include_file("dune/pdelab/backend/istl.hh", filetag="driver") + return "typedef Dune::PDELab::istl::VectorBackend<Dune::PDELab::istl::Blocking::none, 1> {};".format(name) @symbol @@ -376,7 +376,7 @@ def define_dofestimate(name): gfs = name_gfs(_form.coefficients()[0].element()) ini = name_initree() return ["int generic_dof_estimate = {} * {}.maxLocalSize();".format(geo_factor, gfs), - "int dof_estimate = {}.get<int>(\"istl.number_of_nnz\", generic_dof_estimate);".format(ini)] + "int {} = {}.get<int>(\"istl.number_of_nnz\", generic_dof_estimate);".format(name, ini)] @symbol @@ -387,7 +387,7 @@ def name_dofestimate(): @preamble def typedef_matrixbackend(name): - include_file("dune/pdelab/backend/istl/bcrsmatrixbackend.hh", filetag="driver") + include_file("dune/pdelab/backend/istl.hh", filetag="driver") return "typedef Dune::PDELab::istl::BCRSMatrixBackend<> {};".format(name) @@ -453,8 +453,9 @@ def type_localoperator(): def define_localoperator(name): loptype = type_localoperator() ini = name_initree() - params = name_parameters() - return "{} {}({}, {});".format(loptype, name, ini, params) +# params = name_parameters() +# return "{} {}({}, {});".format(loptype, name, ini, params) + return "{} {}({});".format(loptype, name, ini) @symbol @@ -528,7 +529,7 @@ def name_vector(): @preamble def typedef_linearsolver(name): - include_file("dune/pdelab/backend/istlsolverbackend.hh", filetag="driver") + include_file("dune/pdelab/backend/istl.hh", filetag="driver") return "typedef Dune::PDELab::ISTLBackend_SEQ_UMFPack {};".format(name) @@ -562,13 +563,13 @@ def name_reduction(): return "reduction" -@symbol +@preamble def typedef_stationarylinearproblemsolver(name): include_file("dune/pdelab/stationary/linearproblem.hh", filetag="driver") gotype = type_gridoperator() lstype = type_linearsolver() xtype = type_vector() - return "typedef Dune::PDELab::StationaryLinearProblemSolver<{}, {}, {}> {}".format(gotype, lstype, xtype, name) + return "typedef Dune::PDELab::StationaryLinearProblemSolver<{}, {}, {}> {};".format(gotype, lstype, xtype, name) @symbol diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py index b7225e7e..3dc64c1a 100644 --- a/python/dune/perftool/pdelab/localoperator.py +++ b/python/dune/perftool/pdelab/localoperator.py @@ -50,10 +50,10 @@ def measure_specific_details(measure): base_class('Dune::PDELab::FullVolumePattern', classtag="operator") numerical_jacobian("Volume") - ret["residual_signature"] = ['template<typename EG, typename LFSV0, typename X, typename LFSV1, typename R>', - 'void alpha_volume(const EG& eg, const LFSV0& lfsv0, const X& x, const LFSV1& lfsv1, R& r) const'] - ret["jacobian_signature"] = ['template<typename EG, typename LFSV0, typename X, typename LFSV1, typename J>', - 'void jacobian_volume(const EG& eg, const LFSV0& lfsv0, const X& x, const LFSV1& lfsv1, J& jac) const'] + ret["residual_signature"] = ['template<typename EG, typename LFSU, typename X, typename LFSV, typename R>', + 'void alpha_volume(const EG& eg, const LFSU& lfsu, const X& x, const LFSV& lfsv, R& r) const'] + ret["jacobian_signature"] = ['template<typename EG, typename LFSU, typename X, typename LFSV, typename J>', + 'void jacobian_volume(const EG& eg, const LFSU& lfsu, const X& x, const LFSV& lfsv, J& jac) const'] if measure == "exterior_facet": base_class('Dune::PDELab::FullBoundaryPattern', classtag="operator") diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 408a12f2..7c7839cc 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,6 +1,6 @@ add_generated_executable(UFLFILE ../examples/laplace.ufl TARGET laplace -# FORM_COMPILER_ARGS --numerical-jacobian + FORM_COMPILER_ARGS --numerical-jacobian ) dune_add_system_test(TARGET laplace diff --git a/test/laplace.mini b/test/laplace.mini index e69de29b..0ad21042 100644 --- a/test/laplace.mini +++ b/test/laplace.mini @@ -0,0 +1,6 @@ +__name = laplace + +lowerleft = 0.0 0.0 +upperright = 1.0 1.0 +elements = 4 4 +elementType = simplical -- GitLab