diff --git a/python/dune/perftool/generation/cpp.py b/python/dune/perftool/generation/cpp.py index 38b2450ad0b6947504514b22795cf6fb204275eb..6a73a9b25b6a307ca052caca1edc6ac757f446d0 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 2f290ac9e2190a4dda9c21ba7fef9f93c5848565..3bf90701472525ffc935405977d94445d6808b15 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 a43b48c0e97d07e69f8f7b434dde2c224fe3799f..228e4f5079c75c4d9004a61db1be3bd69a6f1d93 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 b7225e7e30fa185f738d6b4fe593189963721b1c..3dc64c1a9802ef23d431f63e14e8dd4362de8543 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 408a12f2e111dbce02071cffdd4c9d54f0d0d93e..7c7839cc3cf6acdfa31f5175f483281be56bcee9 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0ad21042a7901908fcb660d99948154b200ed1f0 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