diff --git a/python/dune/perftool/pdelab/driver/instationary.py b/python/dune/perftool/pdelab/driver/instationary.py index 13a47e4dbd68251803c6e279ec612e3722adedbb..62b05366c644b43465a3227465ab844030b57b75 100644 --- a/python/dune/perftool/pdelab/driver/instationary.py +++ b/python/dune/perftool/pdelab/driver/instationary.py @@ -32,7 +32,7 @@ from dune.perftool.pdelab.driver.solve import (print_matrix, ) from dune.perftool.pdelab.driver.vtk import (name_vtk_sequence_writer, visualize_initial_condition, - ) + name_predicate) from dune.perftool.options import (get_form_option, get_option, ) @@ -58,12 +58,12 @@ def time_loop(): vector_type = type_vector(get_form_ident()) vector = name_vector(get_form_ident()) interpolate_dirichlet_data(vector) + gfs = name_trial_gfs() is_dirichlet = preprocess_leaf_data(element, "is_dirichlet") assemble_new_constraints = "" if has_dirichlet_constraints(is_dirichlet): bctype = name_bctype_function(element, is_dirichlet) - gfs = name_trial_gfs() cc = name_constraintscontainer() assemble_new_constraints = (" // Assemble constraints for new time step\n" " {}.setTime({}+dt);\n" @@ -89,6 +89,8 @@ def time_loop(): visualize_initial_condition() vtk_sequence_writer = name_vtk_sequence_writer() + predicate = name_predicate() + return ["", "double T = {}.get<double>(\"instat.T\", 1.0);".format(ini), "double dt = {}.get<double>(\"instat.dt\", 0.1);".format(ini), @@ -107,6 +109,9 @@ def time_loop(): " step_number += 1;", " if (step_number%output_every_nth == 0){", " // Output to VTK File", + " {}.vtkWriter()->clear();".format(vtk_sequence_writer), + " Dune::PDELab::addSolutionToVTKWriter(vtkSequenceWriter, {}, {},".format(gfs, vector), + " Dune::PDELab::vtk::defaultNameScheme(), {});".format(predicate), " {}.write({}, Dune::VTK::appendedraw);".format(vtk_sequence_writer, time), " }", "}",