Skip to content
Snippets Groups Projects
Commit 7349fe59 authored by Dominic Kempf's avatar Dominic Kempf
Browse files

[!274] Feature/use different dof numbers for cg

Merge branch 'feature/use-different-dof-numbers-for-cg' into 'master'

ref:dominic/dune-perftool I'm not 100% sure this gives the right number of
dofs for parallel applications, but at least for serial applications it is
correct.

See merge request [dominic/dune-perftool!274]

  [dominic/dune-perftool!274]: gitlab.dune-project.org/dominic/dune-perftool/merge_requests/274
parents d5b602de b8799ccd
No related branches found
No related tags found
No related merge requests found
......@@ -44,12 +44,29 @@ def dump_dof_numbers(stream):
include_file("dune/pdelab/common/partitionviewentityset.hh", filetag="driver")
gvt = type_leafview()
gv = name_leafview()
return ["Dune::PDELab::NonOverlappingEntitySet<{}> es({});".format(gvt, gv),
"{} << \"{} \" << {} << \" dofs dofs \" << {}.maxLocalSize() * es.size(0) << std::endl;".format(stream,
level,
ident,
name_trial_gfs())
]
from dune.perftool.pdelab.driver import get_trial_element, isDG, _flatten_list
from ufl import MixedElement, TensorProductElement
element = get_trial_element()
def _apply_to_element(element, f):
if isinstance(element, MixedElement) or isinstance(element, TensorProductElement):
return tuple(_apply_to_element(e, f) for e in element.sub_elements())
else:
return f(element)
element_is_dg = all(_flatten_list(_apply_to_element(element, isDG)))
if element_is_dg:
return ["Dune::PDELab::NonOverlappingEntitySet<{}> es({});".format(gvt, gv),
"{} << \"{} \" << {} << \" dofs dofs \" << {}.maxLocalSize() * es.size(0) << std::endl;".format(stream,
level,
ident,
name_trial_gfs())
]
else:
return ["{} << \"{} \" << {} << \" dofs dofs \" << {}.size() << std::endl;".format(stream, level, ident,
name_trial_gfs())
]
@preamble(section="timings")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment