diff --git a/python/dune/perftool/pdelab/driver/gridoperator.py b/python/dune/perftool/pdelab/driver/gridoperator.py index 500d8bc71254018d5e2315073e2eed3c212f74be..9b8880ad9e162f32bfbd56edc264728e06bd6321 100644 --- a/python/dune/perftool/pdelab/driver/gridoperator.py +++ b/python/dune/perftool/pdelab/driver/gridoperator.py @@ -120,7 +120,8 @@ def define_dofestimate(name): gfs = name_trial_gfs() ini = name_initree() - return ["int generic_dof_estimate = {} * {}.maxLocalSize();".format(geo_factor, gfs), + return ["{}.update();".format(gfs), + "int generic_dof_estimate = {} * {}.maxLocalSize();".format(geo_factor, gfs), "int {} = {}.get<int>(\"istl.number_of_nnz\", generic_dof_estimate);".format(name, ini)] diff --git a/python/dune/perftool/pdelab/driver/timings.py b/python/dune/perftool/pdelab/driver/timings.py index 67576153fda54668d2331871c4827e25356d4079..a2d01fd3df783519fa6abd717b6befdde344c040 100644 --- a/python/dune/perftool/pdelab/driver/timings.py +++ b/python/dune/perftool/pdelab/driver/timings.py @@ -3,14 +3,27 @@ from dune.perftool.options import get_option, set_option from dune.perftool.generation import (cached, include_file, + pre_include, post_include, preamble, ) +from dune.perftool.pdelab.driver import (get_formdata, + name_initree, + name_mpihelper, + ) +from dune.perftool.pdelab.driver.gridfunctionspace import (name_trial_gfs, + ) +from dune.perftool.pdelab.driver.gridoperator import (name_gridoperator, + name_localoperator, + type_gridoperator, + ) +from dune.perftool.pdelab.driver.solve import (name_vector, + type_vector, + ) @preamble def define_timing_identifier(name): - from dune.perftool.pdelab.driver import name_initree ini = name_initree() return "auto {} = {}.get<std::string>(\"identifier\", std::string(argv[0]));".format(name, ini) @@ -24,15 +37,12 @@ def name_timing_identifier(): @preamble def dump_dof_numbers(stream): ident = name_timing_identifier() - from dune.perftool.pdelab.driver import get_trial_element, name_gfs return "{} << {} << \" dofs dofs \" << {}.size() << std::endl;".format(stream, ident, - name_gfs(get_trial_element())) + name_trial_gfs()) @preamble def define_timing_stream(name): - from dune.perftool.pdelab.driver import name_mpihelper - include_file('fstream', filetag='driver', system=True) include_file('sstream', filetag='driver', system=True) include_file('sys/types.h', filetag='driver', system=True) @@ -54,9 +64,6 @@ def name_timing_stream(): @cached def setup_timer(): - # Necessary includes and defines - from dune.perftool.generation import pre_include - # TODO check that we are using YASP? if get_option('opcounter'): pre_include("#define ENABLE_COUNTER", filetag="driver") @@ -66,13 +73,6 @@ def setup_timer(): @preamble def evaluate_residual_timer(): - from dune.perftool.pdelab.driver import (get_formdata, - name_gridoperator, - name_localoperator, - name_vector, - type_vector, - ) - formdata = get_formdata() n_go = name_gridoperator(formdata) v = name_vector(formdata) @@ -112,13 +112,6 @@ def apply_jacobian_timer(): # Set the matrix_free option to True! set_option("matrix_free", True) - from dune.perftool.pdelab.driver import (get_formdata, - name_gridoperator, - name_localoperator, - name_vector, - type_vector, - ) - formdata = get_formdata() n_go = name_gridoperator(formdata) v = name_vector(formdata) @@ -155,13 +148,6 @@ def apply_jacobian_timer(): @preamble def assemble_matrix_timer(): - from dune.perftool.pdelab.driver import (get_formdata, - name_gridoperator, - name_localoperator, - name_vector, - type_vector, - ) - formdata = get_formdata() t_go = type_gridoperator(formdata) n_go = name_gridoperator(formdata) diff --git a/test/poisson/opcount_poisson_dg.ufl b/test/poisson/opcount_poisson_dg.ufl index d731f77c3a9c180a630af3a161e0deaa896bacf5..1748e05796f0a0c82073c5b7fb24db9631891c71 100644 --- a/test/poisson/opcount_poisson_dg.ufl +++ b/test/poisson/opcount_poisson_dg.ufl @@ -1,6 +1,7 @@ degree = 1 cell = "quadrilateral" +dim = 2 x = SpatialCoordinate(cell) f = -4.