diff --git a/cmake/modules/DunePerftoolMacros.cmake b/cmake/modules/DunePerftoolMacros.cmake index c9b67421f9b111e76ed82a25044ada1f7e8a82d6..b41785183706378813dbd8e9b58facee7b44d908 100644 --- a/cmake/modules/DunePerftoolMacros.cmake +++ b/cmake/modules/DunePerftoolMacros.cmake @@ -89,8 +89,19 @@ function(add_generated_executable) set(GEN_INIFILE ${CMAKE_CURRENT_SOURCE_DIR}/${GEN_INIFILE}) endif() if(NOT GEN_SOURCE) + # Generate a driver file set(GEN_DRIVER ${GEN_TARGET}_driver.hh) - set(GEN_FORM_COMPILER_ARGS ${GEN_FORM_COMPILER_ARGS} --driver-file ${GEN_DRIVER}) + add_custom_command(OUTPUT ${GEN_DRIVER} + COMMAND ${CMAKE_BINARY_DIR}/run-in-dune-env generate_driver + --uflfile ${GEN_UFLFILE} + --ini-file ${GEN_INIFILE} + --target-name ${GEN_TARGET} + --driver-file ${GEN_DRIVER} + --project-basedir ${CMAKE_BINARY_DIR} + ${GEN_FORM_COMPILER_ARGS} + DEPENDS ${GEN_UFLFILE} ${UFL2PDELAB_SOURCES} ${GEN_DEPENDS} ${DUNE_PERFTOOL_ADDITIONAL_PYTHON_SOURCES} + COMMENT "Generating driver for the target ${GEN_TARGET}" + ) set(GEN_SOURCE ${GEN_TARGET}_main.cc) dune_module_path(MODULE dune-perftool RESULT perftool_path @@ -103,15 +114,15 @@ function(add_generated_executable) OUTPUT_VARIABLE header_deps ) - add_custom_command(OUTPUT ${GEN_DRIVER} ${header_deps} - COMMAND ${CMAKE_BINARY_DIR}/run-in-dune-env ufl2pdelab + add_custom_command(OUTPUT ${header_deps} + COMMAND ${CMAKE_BINARY_DIR}/run-in-dune-env generate_operators --project-basedir ${CMAKE_BINARY_DIR} ${GEN_FORM_COMPILER_ARGS} --uflfile ${GEN_UFLFILE} --ini-file ${GEN_INIFILE} --target-name ${GEN_TARGET} DEPENDS ${GEN_UFLFILE} ${UFL2PDELAB_SOURCES} ${GEN_DEPENDS} ${DUNE_PERFTOOL_ADDITIONAL_PYTHON_SOURCES} - COMMENT "Running ufl2pdelab for the target ${GEN_TARGET}" + COMMENT "Generating operators for the target ${GEN_TARGET}" ) add_executable(${GEN_TARGET} ${GEN_SOURCE} ${GEN_DRIVER} ${header_deps}) diff --git a/cmake/modules/deplist.py b/cmake/modules/deplist.py new file mode 100755 index 0000000000000000000000000000000000000000..d65ad4afecbb60f7b84dccfc098e5eec18a06d5d --- /dev/null +++ b/cmake/modules/deplist.py @@ -0,0 +1,21 @@ +# Return the list of generated files for a given ini file +# This is used by the build system, do not use this yourself! + +from dune.testtools.parser import parse_ini_file + +import sys + +ini = parse_ini_file(sys.argv[1]) +section = ini["formcompiler"] +operators = section.get("operators", "operator") + +result = [] +for operator in [i.strip() for i in operators.split(",")]: + ssection = ini.get("formcompiler.{}".format(operator), {}) + if ssection.get("filename", None): + result.append(ssection["filename"]) + else: + classname = ssection.get("classname", "{}Operator".format(ssection.get("form", operator))) + result.append("{}_{}_file.hh".format(sys.argv[2], classname)) + +sys.stdout.write(" ".join(result)) diff --git a/python/dune/perftool/compile.py b/python/dune/perftool/compile.py index 8886a4d85b1f590f739082244cfcbb55b355654e..3bb356bb98ad832d446de3d98e7f64060780e6fd 100644 --- a/python/dune/perftool/compile.py +++ b/python/dune/perftool/compile.py @@ -103,17 +103,23 @@ def read_ufl(uflfile): return data -# This function is the entrypoint of the ufl2pdelab executable -def compile_form(): +def entry_generate_driver(): + """ This is the entry point for driver generation """ initialize_options() data = read_ufl(get_option("uflfile")) with global_context(data=data): - # Generate driver file - if get_option("driver_file"): - generate_driver() + generate_driver() + +def entry_generate_operators(): + """ This is the entry point for operator generation """ + initialize_options() + data = read_ufl(get_option("uflfile")) + + with global_context(data=data): for operator in get_option("operators").split(","): + operator = operator.strip() with global_context(form_identifier=operator): # Make sure cache is empty delete_cache_items() diff --git a/python/dune/perftool/options.py b/python/dune/perftool/options.py index aeb6baef9fcaf292c48326993ba85006f72f1626..f186a324e869cd4f7ced288f0a24aaab527055f4 100644 --- a/python/dune/perftool/options.py +++ b/python/dune/perftool/options.py @@ -49,7 +49,7 @@ class PerftoolGlobalOptionsArray(ImmutableRecord): yaspgrid_offset = PerftoolOption(default=False, helpstr="Set to true if you want a yasp grid where the lower left corner is not in the origin.") precision_bits = PerftoolOption(default=64, helpstr="The number of bits for the floating point type") overlapping = PerftoolOption(default=False, helpstr="Use an overlapping solver and constraints. You still need to make sure to construct a grid with overlap! The parallel option will be set automatically.") - operators = PerftoolOption(default="operator", helpstr="A comma separated list of operators, each name will be interpreted as a subsection name within the formcompiler section") + operators = PerftoolOption(default="r", helpstr="A comma separated list of operators, each name will be interpreted as a subsection name within the formcompiler section") target_name = PerftoolOption(default=None, helpstr="The target name from CMake") # Arguments that are mainly to be set by logic depending on other options @@ -68,7 +68,7 @@ class PerftoolFormOptionsArray(ImmutableRecord): ImmutableRecord.__init__(self, **opts) # Form specific options - form = PerftoolOption(default="r", helpstr="The name of the UFL object representing the form in the UFL file") + form = PerftoolOption(default=None, helpstr="The name of the UFL object representing the form in the UFL file") filename = PerftoolOption(default=None, helpstr="The filename to use for this LocalOperator") classname = PerftoolOption(default=None, helpstr="The name of the C++ class to generate") numerical_jacobian = PerftoolOption(default=False, helpstr="use numerical jacobians (only makes sense, if uflpdelab for some reason fails to generate analytic jacobians)") @@ -139,7 +139,7 @@ def update_options_from_inifile(opt): opt = opt.copy(**parse_ini("formcompiler")) # Also parse form-specific options - for form in opt.operators.split(","): + for form in [i.strip() for i in opt.operators.split(",")]: _form_options[form] = PerftoolFormOptionsArray(**parse_ini("formcompiler.{}".format(form))) return opt @@ -157,13 +157,16 @@ def process_global_options(opt): @memoize -def process_form_options(opt): +def process_form_options(opt, form): if opt.sumfact: opt = opt.copy(unroll_dimension_loops=True) if opt.numerical_jacobian: opt = opt.copy(generate_jacobians=False) + if opt.form is None: + opt = opt.copy(form=form) + if opt.classname is None: opt = opt.copy(classname="{}Operator".format(opt.form)) @@ -205,8 +208,8 @@ def get_form_option(key, form=None): from dune.perftool.generation import get_global_context_value form = get_global_context_value("form_identifier", 0) if isinstance(form, int): - form = get_option("operators").split(",")[form] - processed_form_opts = process_form_options(_form_options[form]) + form = get_option("operators").split(",")[form].strip() + processed_form_opts = process_form_options(_form_options[form], form) return getattr(processed_form_opts, key) diff --git a/python/dune/perftool/pdelab/driver/__init__.py b/python/dune/perftool/pdelab/driver/__init__.py index f11875d043302a9f94ded59ec06514ba4b61a294..f8ec2059d32fc7dc6b6b37569733b74941fe6895 100644 --- a/python/dune/perftool/pdelab/driver/__init__.py +++ b/python/dune/perftool/pdelab/driver/__init__.py @@ -28,23 +28,17 @@ from dune.perftool.options import (get_form_option, # to quantities that are needed throughout the process of generating the driver! # -def get_form_ident(index=0): - return get_option("operators").split(",")[index] +def get_form_ident(): + idents = [i.strip() for i in get_option("operators").split(",")] + if len(idents) == 2: + idents.remove("mass") + assert(len(idents) == 1) + return idents[0] -def get_form(what=None): - """ Return the ith form specified """ - if what is None: - what = get_global_context_value("form_identifier", 0) - if isinstance(what, int): - what = get_form_ident(what) +def get_form(): data = get_global_context_value("data") - return data.object_by_name[get_form_option("form", what)] - - -def get_preprocessed_form(what=None): - from dune.perftool.ufl.preprocess import preprocess_form - return preprocess_form(get_form(what)).preprocessed_form + return data.object_by_name[get_form_option("form", get_form_ident())] def get_dimension(): @@ -64,10 +58,7 @@ def get_trial_element(): def is_stationary(): - # TODO I am completely unsure how this should work in the future - # This only fixes instationary stuff, it will break Renes adjoint stuff - return len(get_option("operators").split(",")) == 1 -# return 'mass_form' not in _driver_data + return "mass" not in [i.strip() for i in get_option("operators").split(",")] def is_linear(form=None): diff --git a/python/dune/perftool/pdelab/driver/gridoperator.py b/python/dune/perftool/pdelab/driver/gridoperator.py index 64a6177774beecf3b3438f04f247af307d75542c..c1e22873cc2f9c7c200013d7d8b8366ddf373b88 100644 --- a/python/dune/perftool/pdelab/driver/gridoperator.py +++ b/python/dune/perftool/pdelab/driver/gridoperator.py @@ -77,7 +77,7 @@ def name_gridoperator(form_ident): def typedef_localoperator(name, form_ident): ugfs = type_trial_gfs() vgfs = type_test_gfs() - filename = get_form_option("filename") + filename = get_form_option("filename", form_ident) include_file(filename, filetag="driver") lopname = localoperator_basename(form_ident) range_type = type_range() diff --git a/python/dune/perftool/pdelab/driver/instationary.py b/python/dune/perftool/pdelab/driver/instationary.py index 11390040db6a1056bc52a00fbf6a0c8f033b7167..becb79b0d05bc59ee6bdabcf3f4a2a29561c14b0 100644 --- a/python/dune/perftool/pdelab/driver/instationary.py +++ b/python/dune/perftool/pdelab/driver/instationary.py @@ -1,7 +1,8 @@ from dune.perftool.generation import (include_file, preamble, ) -from dune.perftool.pdelab.driver import (get_trial_element, +from dune.perftool.pdelab.driver import (get_form_ident, + get_trial_element, is_linear, name_initree, preprocess_leaf_data, @@ -50,12 +51,11 @@ def solve_instationary(): @preamble def time_loop(): ini = name_initree() - formdata = get_formdata() - params = name_parameters(formdata) + params = name_parameters(get_form_ident()) time = name_time() element = get_trial_element() - vector_type = type_vector(formdata) - vector = name_vector(formdata) + vector_type = type_vector(get_form_ident()) + vector = name_vector(get_form_ident()) interpolate_dirichlet_data(vector) is_dirichlet = preprocess_leaf_data(element, "is_dirichlet") @@ -156,8 +156,8 @@ def name_timesteppingmethod(): @preamble def typedef_instationarygridoperator(name): include_file("dune/pdelab/gridoperator/onestep.hh", filetag="driver") - go_type = type_gridoperator(get_formdata()) - mass_go_type = type_gridoperator(get_mass_formdata()) + go_type = type_gridoperator(get_form_ident()) + mass_go_type = type_gridoperator("mass") explicit = get_option('explicit_time_stepping') if explicit: return "using {} = Dune::PDELab::OneStepGridOperator<{},{},false>;".format(name, go_type, mass_go_type) @@ -173,8 +173,8 @@ def type_instationarygridoperator(): @preamble def define_instationarygridoperator(name): igo_type = type_instationarygridoperator() - go = name_gridoperator(get_formdata()) - mass_go = name_gridoperator(get_mass_formdata()) + go = name_gridoperator(get_form_ident()) + mass_go = name_gridoperator("mass") return "{} {}({}, {});".format(igo_type, name, go, mass_go) @@ -188,7 +188,7 @@ def typedef_onestepmethod(name): r_type = type_range() igo_type = type_instationarygridoperator() snp_type = type_stationarynonlinearproblemssolver(igo_type) - vector_type = type_vector(get_formdata()) + vector_type = type_vector(get_form_ident()) return "using {} = Dune::PDELab::OneStepMethod<{}, {}, {}, {}, {}>;".format(name, r_type, igo_type, snp_type, vector_type, vector_type) @@ -217,7 +217,7 @@ def typedef_explicitonestepmethod(name): r_type = type_range() igo_type = type_instationarygridoperator() ls_type = type_linearsolver() - vector_type = type_vector(get_formdata()) + vector_type = type_vector(get_form_ident()) return "using {} = Dune::PDELab::ExplicitOneStepMethod<{}, {}, {}, {}>;".format(name, r_type, igo_type, ls_type, vector_type) diff --git a/python/dune/perftool/pdelab/driver/interpolate.py b/python/dune/perftool/pdelab/driver/interpolate.py index 73d44a560b16882b024016c1414e38d35cbe1fbc..4985f8c8d44d85081b23a4de6d7394ce499e7198 100644 --- a/python/dune/perftool/pdelab/driver/interpolate.py +++ b/python/dune/perftool/pdelab/driver/interpolate.py @@ -5,6 +5,7 @@ from dune.perftool.generation import (cached, preamble, ) from dune.perftool.pdelab.driver import (FEM_name_mangling, + get_form_ident, get_trial_element, is_stationary, preprocess_leaf_data, @@ -72,7 +73,7 @@ def define_boundary_function(name, dirichlet): lambdaname, ) else: - params = name_parameters(get_formdata()) + params = name_parameters(get_form_ident()) return "auto {} = Dune::PDELab::makeInstationaryGridFunctionFromCallable({}, {}, {});".format(name, gv, lambdaname, diff --git a/python/dune/perftool/pdelab/driver/solve.py b/python/dune/perftool/pdelab/driver/solve.py index 44b4cd7e3f87440231399397a7089f6a8a5d875f..2e9b3ee1a8c64f4401df31b049c806f21c0547de 100644 --- a/python/dune/perftool/pdelab/driver/solve.py +++ b/python/dune/perftool/pdelab/driver/solve.py @@ -178,7 +178,7 @@ def name_stationarylinearproblemsolver(): def typedef_stationarynonlinearproblemsolver(name, go_type): include_file("dune/pdelab/newton/newton.hh", filetag="driver") ls_type = type_linearsolver() - x_type = type_vector(form_ident) + x_type = type_vector(get_form_ident()) return "using {} = Dune::PDELab::Newton<{}, {}, {}>;".format(name, go_type, ls_type, x_type) diff --git a/python/dune/perftool/pdelab/driver/vtk.py b/python/dune/perftool/pdelab/driver/vtk.py index b131040e12b5cb376acce4c1266504351b82f03f..a9096628a70b9dea5c9369d535f71df595a8ce02 100644 --- a/python/dune/perftool/pdelab/driver/vtk.py +++ b/python/dune/perftool/pdelab/driver/vtk.py @@ -131,7 +131,7 @@ def visualize_initial_condition(): vtkwriter = name_vtk_sequence_writer() element = get_trial_element() gfs = name_trial_gfs() - vector = name_vector(get_formdata()) + vector = name_vector(get_form_ident()) predicate = name_predicate() from dune.perftool.pdelab.driver.instationary import name_time time = name_time() diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py index 05c2adc38ae0904e3265d24c2cdba7373af8e9f6..253917ba0b225f62a28d60b0caabec165696dfcb 100644 --- a/python/dune/perftool/pdelab/localoperator.py +++ b/python/dune/perftool/pdelab/localoperator.py @@ -250,7 +250,8 @@ def boundary_predicates(expr, measure, subdomain_id): # Get the original form and inspect the present measures from dune.perftool.generation import get_global_context_value - original_form = get_global_context_value("formdata").original_form + data = get_global_context_value("data") + original_form = data.object_by_name[get_form_option("form")] sd = original_form.subdomain_data() assert len(sd) == 1 @@ -681,10 +682,10 @@ def generate_localoperator_kernels(operator): logger = logging.getLogger(__name__) data = get_global_context_value("data") - form = data.object_by_name[get_form_option("form")] + original_form = data.object_by_name[get_form_option("form")] from dune.perftool.ufl.preprocess import preprocess_form - form = preprocess_form(form).preprocessed_form + form = preprocess_form(original_form).preprocessed_form # Reset the generation cache from dune.perftool.generation import delete_cache_items @@ -768,7 +769,7 @@ def generate_localoperator_kernels(operator): # In the case of matrix free operator evaluation we need jacobian apply methods if get_form_option("matrix_free"): from dune.perftool.pdelab.driver import is_linear - if is_linear(formdata.original_form): + if is_linear(original_form): # Numeical jacobian apply base class base_class("Dune::PDELab::NumericalJacobianApply{}<{}>".format(which, loptype), classtag="operator") @@ -793,7 +794,7 @@ def generate_localoperator_kernels(operator): if not get_form_option("numerical_jacobian"): logger.info("generate_localoperator_kernels: create jacobian methods") from ufl import derivative - jacform = derivative(formdata.original_form, formdata.original_form.coefficients()[0]) + jacform = derivative(original_form, original_form.coefficients()[0]) from dune.perftool.ufl.preprocess import preprocess_form jacform = preprocess_form(jacform).preprocessed_form diff --git a/python/dune/perftool/pdelab/quadrature.py b/python/dune/perftool/pdelab/quadrature.py index bf798fc8392b55a7492a910c1dff586cb43a74d7..d0350d4b33c65156e1dfda3395ea5c08bb83338b 100644 --- a/python/dune/perftool/pdelab/quadrature.py +++ b/python/dune/perftool/pdelab/quadrature.py @@ -179,13 +179,14 @@ def name_quadrature_weights(): return name - def _estimate_quadrature_order(): """Estimate quadrature order using polynomial degree estimation from UFL""" # According to UFL documentation estimate_total_polynomial_degree # should only be called on preprocessed forms. - from dune.perftool.pdelab.driver import get_preprocessed_form - form = get_preprocessed_form() + data = get_global_context_value("data") + form = data.object_by_name[get_form_option("form")] + from dune.perftool.ufl.preprocess import preprocess_form + form = preprocess_form(form).preprocessed_form # Estimate polynomial degree of integrals of current type (eg 'Cell') integral_type = get_global_context_value("integral_type") diff --git a/python/setup.py b/python/setup.py index c7e80ce1b0de4a2a561ee1a1a4d2189ec0df0d0c..f193748a5e814895f23fee033c74c850aaf39573 100644 --- a/python/setup.py +++ b/python/setup.py @@ -44,7 +44,7 @@ setup(name='dune.perftool', cmdclass={'test': PyTest}, entry_points = { "console_scripts": [ - "ufl2pdelab = dune.perftool.compile:compile_form", - "picklevecstrats = dune.perftool.sumfact.vectorization:pickle_vectorization_strategies", + "generate_operators = dune.perftool.compile:entry_generate_operators", + "generate_driver = dune.perftool.compile:entry_generate_driver", ] }) diff --git a/test/heatequation/heatequation.mini b/test/heatequation/heatequation.mini index 6059854ec5b6c09a97d06712b928d1e7044ef3af..24a699673927de379260c45e50ea6b707dde95be 100644 --- a/test/heatequation/heatequation.mini +++ b/test/heatequation/heatequation.mini @@ -14,6 +14,7 @@ extension = vtu [formcompiler] explicit_time_stepping = 0, 1 | expand scheme compare_l2errorsquared = 1e-7 +operators = mass, poisson # Disable explicit tests for now {__exec_suffix} == explicit | exclude diff --git a/test/heatequation/heatequation.ufl b/test/heatequation/heatequation.ufl index 726b84a310871ba49ba02d9079b63fd46f8a0c32..8a4ef977b3bd956c86df1f2aff8acb43d7ebd45b 100644 --- a/test/heatequation/heatequation.ufl +++ b/test/heatequation/heatequation.ufl @@ -13,7 +13,6 @@ v = TestFunction(V) mass = (u*v)*dx poisson = (inner(grad(u), grad(v)) - f*v)*dx -forms = [mass, poisson] interpolate_expression = g is_dirichlet = 1 exact_solution = g \ No newline at end of file diff --git a/test/heatequation/heatequation_dg.mini b/test/heatequation/heatequation_dg.mini index 3c21abe6c6a6f4ef80563db46ff49d83fdfdc17f..169be57b4a3d485505cc47ff132aa3cabecee212 100644 --- a/test/heatequation/heatequation_dg.mini +++ b/test/heatequation/heatequation_dg.mini @@ -14,6 +14,7 @@ extension = vtu [formcompiler] explicit_time_stepping = 0, 1 | expand scheme compare_l2errorsquared = 1e-7 +operators = mass, poisson # Disable explicit tests for now {__exec_suffix} == explicit | exclude diff --git a/test/heatequation/heatequation_dg.ufl b/test/heatequation/heatequation_dg.ufl index 288d1e675578c72e8c5b2c150d6677f663cc42f7..4f5c2da5f393ab31c8084405fe0d74daca9f2394 100644 --- a/test/heatequation/heatequation_dg.ufl +++ b/test/heatequation/heatequation_dg.ufl @@ -32,7 +32,6 @@ poisson = inner(grad(u), grad(v))*dx \ mass = (u*v)*dx -forms = [mass, poisson] interpolate_expression = g is_dirichlet = 1 exact_solution = g \ No newline at end of file diff --git a/test/heatequation/heatequation_time_dependent_bc.mini b/test/heatequation/heatequation_time_dependent_bc.mini index 191cc52f1c9ff806496affb5eb6a7d8ebbdb25d9..762951ac66010cdc35f7c37c59873d22a72c7eaa 100644 --- a/test/heatequation/heatequation_time_dependent_bc.mini +++ b/test/heatequation/heatequation_time_dependent_bc.mini @@ -14,6 +14,7 @@ extension = vtu [formcompiler] explicit_time_stepping = 0, 1 | expand scheme compare_l2errorsquared = 2e-4 +operators = mass, poisson [instat] T = 1.0 diff --git a/test/heatequation/heatequation_time_dependent_bc.ufl b/test/heatequation/heatequation_time_dependent_bc.ufl index 8bf2a2d853c27a5a2724f2813f52ae0814983096..6b8443c5712df1463c84576ba23702cb42c5c45b 100644 --- a/test/heatequation/heatequation_time_dependent_bc.ufl +++ b/test/heatequation/heatequation_time_dependent_bc.ufl @@ -16,7 +16,6 @@ v = TestFunction(V) mass = (u*v)*dx poisson = (inner(grad(u), grad(v)) - f*v)*dx -forms = [mass, poisson] interpolate_expression = g is_dirichlet = 1 exact_solution = g diff --git a/test/hyperbolic/linearacoustics.mini b/test/hyperbolic/linearacoustics.mini index 5ccd60388b75b190883de796ce1bd9f4ea2394e4..ad1cc95b405ebd4a7624ef8057b99834fb52ccbc 100644 --- a/test/hyperbolic/linearacoustics.mini +++ b/test/hyperbolic/linearacoustics.mini @@ -13,5 +13,11 @@ name = {__name} extension = vtu [formcompiler] +explicit_time_stepping = 1 +operators = mass, r + +[formcompiler.mass] +numerical_jacobian = 1 + +[formcompiler.r] numerical_jacobian = 1 -explicit_time_stepping = 1 \ No newline at end of file diff --git a/test/hyperbolic/linearacoustics.ufl b/test/hyperbolic/linearacoustics.ufl index d72476ccbf99ae6cae34114b19300064820ded14..844a3078bc6fb4994f9379a85aa8fa879c27df07 100644 --- a/test/hyperbolic/linearacoustics.ufl +++ b/test/hyperbolic/linearacoustics.ufl @@ -28,5 +28,4 @@ r = -1. * inner(flux, grad(v))*dx \ - inner(numerical_flux, jump(v))*dS \ + inner(u, v)*ds -forms = [mass, r] interpolate_expression = f, 0.0, 0.0 diff --git a/test/hyperbolic/lineartransport.mini b/test/hyperbolic/lineartransport.mini index 1ca4dedeb11ae71cc2d9f3f99e55306ebd9580ed..60a465d670b1acc664c514afe6371a3c7038b51b 100644 --- a/test/hyperbolic/lineartransport.mini +++ b/test/hyperbolic/lineartransport.mini @@ -18,6 +18,12 @@ name = {__name} extension = vtu [formcompiler] -numerical_jacobian = 1, 0 | expand diff explicit_time_stepping = 0, 1 | expand scheme -compare_l2errorsquared = 1e-10 \ No newline at end of file +compare_l2errorsquared = 1e-10 +operators = mass, r + +[formcompiler.mass] +numerical_jacobian = 1, 0 | expand diff + +[formcompiler.r] +numerical_jacobian = 1, 0 | expand diff diff --git a/test/hyperbolic/lineartransport.ufl b/test/hyperbolic/lineartransport.ufl index 20ad8bf5a4bf7f2a59ff58e0088ec01b66eaac91..04497a40d8d85b24ec44d31d86a1328add3d2623 100644 --- a/test/hyperbolic/lineartransport.ufl +++ b/test/hyperbolic/lineartransport.ufl @@ -25,7 +25,6 @@ r = -1.*u*inner(beta, grad(v))*dx \ + inner(beta, n)*u*v*dso \ + numerical_flux(n, 0.0, u('-'))*v*dsd -forms = [mass, r] is_dirichlet = dirichlet interpolate_expression = initial exact_solution = 0 \ No newline at end of file diff --git a/test/hyperbolic/shallowwater.mini b/test/hyperbolic/shallowwater.mini index f72b422b2fb19fa39969fc0febae5cb39d647c88..39408b491829daadb409652db25a4c41e8606c31 100644 --- a/test/hyperbolic/shallowwater.mini +++ b/test/hyperbolic/shallowwater.mini @@ -14,5 +14,11 @@ name = {__name} extension = vtu [formcompiler] -numerical_jacobian = 1 +operators = mass, r explicit_time_stepping = 1 + +[formcompiler.mass] +numerical_jacobian = 1 + +[formcompiler.r] +numerical_jacobian = 1 diff --git a/test/hyperbolic/shallowwater.ufl b/test/hyperbolic/shallowwater.ufl index eee5ea804c3c28d54f1e79365b3437e548f46bac..56267c99a725c7357bc923c2bdd844e81d141af9 100644 --- a/test/hyperbolic/shallowwater.ufl +++ b/test/hyperbolic/shallowwater.ufl @@ -32,5 +32,4 @@ r = -1. * inner(flux, grad(v))*dx \ - inner(numerical_flux, jump(v))*dS \ + inner(boundary_flux, v)*ds -forms = [mass, r] interpolate_expression = f, 0.0 diff --git a/test/laplace/laplace.mini b/test/laplace/laplace.mini index 4926306f0716c84a6bbfe1b5a02c0ad4acc6fe51..cdc9b9dc62f935f7200f3ac224363659b451b208 100644 --- a/test/laplace/laplace.mini +++ b/test/laplace/laplace.mini @@ -7,5 +7,5 @@ elements = 4 4 elementType = simplical printmatrix = true -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0, 1 | expand num diff --git a/test/laplace/laplace_dg.mini b/test/laplace/laplace_dg.mini index 7485e186eb827cd25b60e5fff65202c7d024147d..f689d8e53cebd12ebbd6f776c7dea4e2c1a7fa70 100644 --- a/test/laplace/laplace_dg.mini +++ b/test/laplace/laplace_dg.mini @@ -7,5 +7,5 @@ elements = 2 2 elementType = simplical printmatrix = true -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/navier-stokes/navierstokes_2d_dg_quadrilateral.mini b/test/navier-stokes/navierstokes_2d_dg_quadrilateral.mini index 5056825841ebf1441852ec9b59095228a780362e..5700107d03d62655e87b50b129aabc5b534134d2 100644 --- a/test/navier-stokes/navierstokes_2d_dg_quadrilateral.mini +++ b/test/navier-stokes/navierstokes_2d_dg_quadrilateral.mini @@ -16,7 +16,7 @@ name = {__name} extension = vtu [formcompiler] -numerical_jacobian = 0, 1 | expand num +operators = mass, r compare_l2errorsquared = 5e-5 # Only calculate error for the velocity part l2error_tree_path = 1, 1, 0 @@ -24,6 +24,12 @@ explicit_time_stepping = 0 yaspgrid_offset = 1 overlapping = 1 +[formcompiler.mass] +numerical_jacobian = 0, 1 | expand num + +[formcompiler.r] +numerical_jacobian = 0, 1 | expand num + [instat] T = 1e-2 dt = 1e-3 diff --git a/test/navier-stokes/navierstokes_2d_dg_quadrilateral.ufl b/test/navier-stokes/navierstokes_2d_dg_quadrilateral.ufl index fc8a150570cc80f648f985b154dac8efc7a3f68b..c1aaf70a3a0def29377613974547b8df88f57d3d 100644 --- a/test/navier-stokes/navierstokes_2d_dg_quadrilateral.ufl +++ b/test/navier-stokes/navierstokes_2d_dg_quadrilateral.ufl @@ -43,6 +43,5 @@ r = mu * inner(grad(u), grad(v))*dx \ - avg(p)*inner(jump(v), n)*dS \ - avg(q)*inner(jump(u), n)*dS \ -forms = [mass,r] interpolate_expression = g_v, g_p exact_solution = g_v, g_p diff --git a/test/navier-stokes/navierstokes_3d_dg_quadrilateral.mini b/test/navier-stokes/navierstokes_3d_dg_quadrilateral.mini index 29ba4c0db5f0c5f9b39333ac7bcdc49ddfb10eba..1da79ba9b25bbefa71e0459bde51ad82b303c8f2 100644 --- a/test/navier-stokes/navierstokes_3d_dg_quadrilateral.mini +++ b/test/navier-stokes/navierstokes_3d_dg_quadrilateral.mini @@ -12,13 +12,18 @@ name = {__name} extension = vtu [formcompiler] -numerical_jacobian = 0, 1 | expand num explicit_time_stepping = 0 yaspgrid_offset = 1 compare_l2errorsquared = 5e-4 # Only calculate error for the velocity part l2error_tree_path = 1, 1, 1, 0 +[formcompiler.mass] +numerical_jacobian = 0, 1 | expand num + +[formcompiler.r] +numerical_jacobian = 0, 1 | expand num + [instat] T = 1e-1 dt = 5e-2 diff --git a/test/navier-stokes/navierstokes_3d_dg_quadrilateral.ufl b/test/navier-stokes/navierstokes_3d_dg_quadrilateral.ufl index 876821975e53f660c7abd81766b2a7f0080d97da..f6e8752f841256413fdd9dc5c7604e3543d3023c 100644 --- a/test/navier-stokes/navierstokes_3d_dg_quadrilateral.ufl +++ b/test/navier-stokes/navierstokes_3d_dg_quadrilateral.ufl @@ -73,6 +73,5 @@ r = mu * inner(grad(u), grad(v))*dx \ # + p*inner(v, n)*ds \ # + q*inner(u-g_v, n)*ds -forms = [mass,r] interpolate_expression = g_v, g_p exact_solution = g_v, g_p \ No newline at end of file diff --git a/test/nonlinear/diffusivewave.mini b/test/nonlinear/diffusivewave.mini index 2f877983394b41d54bb1592276d71d052776ca7e..c82f8ed23330982d6caf40f21d71dbb5d96f0588 100644 --- a/test/nonlinear/diffusivewave.mini +++ b/test/nonlinear/diffusivewave.mini @@ -14,5 +14,12 @@ dt = 0.001 T = 0.01 [formcompiler] +operators = mass, poisson + +[formcompiler.mass] +sumfact = 0, 1 | expand sf +fastdg = 0, 0 | expand sf + +[formcompiler.operator] sumfact = 0, 1 | expand sf -fastdg = 0, 0 | expand sf \ No newline at end of file +fastdg = 0, 0 | expand sf diff --git a/test/nonlinear/nonlinear_dg_matrix_free.mini b/test/nonlinear/nonlinear_dg_matrix_free.mini index 7b53a3a4be6d383f2950d242bf38ded4497939fa..dfd4035d77c067a4678a4c834759fe63ef750f1f 100644 --- a/test/nonlinear/nonlinear_dg_matrix_free.mini +++ b/test/nonlinear/nonlinear_dg_matrix_free.mini @@ -13,7 +13,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 5e-3 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num matrix_free = 1 diff --git a/test/nonlinear/nonlinear_matrix_free.mini b/test/nonlinear/nonlinear_matrix_free.mini index fdef068b581db4f6d3f786cc5b77e01af7141804..0f28479de167747bebb646b4ad3c4852a417192a 100644 --- a/test/nonlinear/nonlinear_matrix_free.mini +++ b/test/nonlinear/nonlinear_matrix_free.mini @@ -13,6 +13,6 @@ extension = vtu [formcompiler] compare_l2errorsquared = 6e-4 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num matrix_free = 1 diff --git a/test/poisson/poisson.mini b/test/poisson/poisson.mini index a851012e8218b44aef8699f795f031acf5695350..6fac6a11ae0e1f70024452f5c61eb7850ce55450 100644 --- a/test/poisson/poisson.mini +++ b/test/poisson/poisson.mini @@ -14,5 +14,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-7 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/poisson/poisson_dg.mini b/test/poisson/poisson_dg.mini index 5973973e0ac882c6c70d93cdc39990e1fd9001a2..bb806382e6b6fe110e1149bd58821bba2820a33e 100644 --- a/test/poisson/poisson_dg.mini +++ b/test/poisson/poisson_dg.mini @@ -14,5 +14,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 9e-8 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num \ No newline at end of file diff --git a/test/poisson/poisson_dg_matrix_free.mini b/test/poisson/poisson_dg_matrix_free.mini index ca1f11460caa0bdeedb63e8d74a0b43b3402b860..0d8d4cd6734673b944009f8377847588879d4a37 100644 --- a/test/poisson/poisson_dg_matrix_free.mini +++ b/test/poisson/poisson_dg_matrix_free.mini @@ -14,6 +14,6 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-6 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num matrix_free = 1 \ No newline at end of file diff --git a/test/poisson/poisson_dg_neumann.mini b/test/poisson/poisson_dg_neumann.mini index f02d6c821cc5f0799768c6219d2d1465670579e5..7d930fb92e7813ff37c9c4ea49bdc7c2ae34d80b 100644 --- a/test/poisson/poisson_dg_neumann.mini +++ b/test/poisson/poisson_dg_neumann.mini @@ -14,5 +14,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 9e-8 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/poisson/poisson_dg_quadrilateral.mini b/test/poisson/poisson_dg_quadrilateral.mini index 2a3cef7057e47d3a6c917bacffbf9a21c458362d..dde2e495ab819ed22be6b848518ed71d41cfe30f 100644 --- a/test/poisson/poisson_dg_quadrilateral.mini +++ b/test/poisson/poisson_dg_quadrilateral.mini @@ -12,5 +12,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 7e-7 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/poisson/poisson_dg_tensor.mini b/test/poisson/poisson_dg_tensor.mini index 9db75ec7f7c519e2f315cb234f9099ef94c5d465..d696cebc5196bd711ef4e8e2e1371a977be3a31f 100644 --- a/test/poisson/poisson_dg_tensor.mini +++ b/test/poisson/poisson_dg_tensor.mini @@ -14,5 +14,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 4e-6 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num \ No newline at end of file diff --git a/test/poisson/poisson_matrix_free.mini b/test/poisson/poisson_matrix_free.mini index 8d0e9d1d7b318f83c1498ec358a9ac35cae227b7..3372c8ac453f91d001c3178110e1d6caacec6b48 100644 --- a/test/poisson/poisson_matrix_free.mini +++ b/test/poisson/poisson_matrix_free.mini @@ -13,5 +13,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-7 -[formcompiler.operator] +[formcompiler.r] matrix_free = 1 \ No newline at end of file diff --git a/test/poisson/poisson_neumann.mini b/test/poisson/poisson_neumann.mini index bf836b6fe1cc1a358418e22b6b50524553f9c50e..76a1fa9e12af16426692c197b80a14599aaee74b 100644 --- a/test/poisson/poisson_neumann.mini +++ b/test/poisson/poisson_neumann.mini @@ -14,5 +14,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 8e-8 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/poisson/poisson_tensor.mini b/test/poisson/poisson_tensor.mini index 11fe49af49ba71a41d2328feb8d92f923485c793..ec4d2c310bf6ba32e9d17aca53aeba00f6cbc4ee 100644 --- a/test/poisson/poisson_tensor.mini +++ b/test/poisson/poisson_tensor.mini @@ -14,5 +14,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-7 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num \ No newline at end of file diff --git a/test/stokes/stokes.mini b/test/stokes/stokes.mini index 61f68cf98fe3ac9e3dd6fdcadaeb00de79d795b6..b281b6bbe7755097c091007d1c9ed0b6840afad2 100644 --- a/test/stokes/stokes.mini +++ b/test/stokes/stokes.mini @@ -15,5 +15,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-11 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0, 1 | expand num diff --git a/test/stokes/stokes_3d_dg_quadrilateral.mini b/test/stokes/stokes_3d_dg_quadrilateral.mini index a66a10cd617232e3bb4ac8e3fbbba52570dea53a..59396277ede15f6a563d04fb448c4d3b5a445b3b 100644 --- a/test/stokes/stokes_3d_dg_quadrilateral.mini +++ b/test/stokes/stokes_3d_dg_quadrilateral.mini @@ -12,5 +12,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 6e-8 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0, 1 | expand num diff --git a/test/stokes/stokes_3d_quadrilateral.mini b/test/stokes/stokes_3d_quadrilateral.mini index fb12e781dfa2138ffa0c1a758c7bfe872cbeaf6c..17f3d9f510054ff9014830e258edd7840180248e 100644 --- a/test/stokes/stokes_3d_quadrilateral.mini +++ b/test/stokes/stokes_3d_quadrilateral.mini @@ -13,5 +13,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-10 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/stokes/stokes_dg.mini b/test/stokes/stokes_dg.mini index e09fdb1ce0afa8b381f3e2b76bcc2c360b07d11f..2fa0e00a83866ef7d1e3fa5036181e91973a92fa 100644 --- a/test/stokes/stokes_dg.mini +++ b/test/stokes/stokes_dg.mini @@ -17,5 +17,5 @@ zeroThreshold.data_1 = 1e-6 [formcompiler] compare_l2errorsquared = 1e-9 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0, 1 | expand num diff --git a/test/stokes/stokes_dg_quadrilateral.mini b/test/stokes/stokes_dg_quadrilateral.mini index c89a5d3db4596801a454aac2479ff1f4d02fb35c..78954b12873569589c2874d15858c6121a242eb5 100644 --- a/test/stokes/stokes_dg_quadrilateral.mini +++ b/test/stokes/stokes_dg_quadrilateral.mini @@ -12,5 +12,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-8 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0, 1 | expand num diff --git a/test/stokes/stokes_quadrilateral.mini b/test/stokes/stokes_quadrilateral.mini index bad65475c66d6994474d79d011dde5ce32e90f33..6ee36e8220463cbb75764a91b0ae1d2970f28eb3 100644 --- a/test/stokes/stokes_quadrilateral.mini +++ b/test/stokes/stokes_quadrilateral.mini @@ -13,5 +13,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-10 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/stokes/stokes_stress.mini b/test/stokes/stokes_stress.mini index 1ac9b06b62e64db652d757673b1f1082978c3490..9663f5f1f9d329c02e568a169aeacb66ef4c2e63 100644 --- a/test/stokes/stokes_stress.mini +++ b/test/stokes/stokes_stress.mini @@ -17,5 +17,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-11 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1 diff --git a/test/stokes/stokes_stress_sym.mini b/test/stokes/stokes_stress_sym.mini index ec5f2a0d9a45768b87e9157dafff1bed2c9c2e5a..9646ec0840f422c924e53ef289a87a6cebc6c3cb 100644 --- a/test/stokes/stokes_stress_sym.mini +++ b/test/stokes/stokes_stress_sym.mini @@ -15,5 +15,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-6 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1 diff --git a/test/stokes/stokes_sym.mini b/test/stokes/stokes_sym.mini index 5755676adb0997f4ee61c5f98a282dfa4284fb13..89dcee74944f7445b78176aafc61a7105d4c5f99 100644 --- a/test/stokes/stokes_sym.mini +++ b/test/stokes/stokes_sym.mini @@ -15,5 +15,5 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-10 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0, 1 | expand num diff --git a/test/sumfact/mass/mass.mini b/test/sumfact/mass/mass.mini index 8cb8cb8c83a52ecd42fb8cfa19cee5471b26624e..6b0e9db8144fe18f7cf5e89f016d228d74ae9173 100644 --- a/test/sumfact/mass/mass.mini +++ b/test/sumfact/mass/mass.mini @@ -12,7 +12,7 @@ printmatrix = 1 name = {__name} extension = vtu -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num vectorization_quadloop = 1, 0 | expand vec sumfact = 1 diff --git a/test/sumfact/mass/mass_3d.mini b/test/sumfact/mass/mass_3d.mini index 1bde4e8cb0c981de2cdc89446f82df0a8e0c3d27..fff87d11bb272dc5d5bd57e8f12569581ddc2485 100644 --- a/test/sumfact/mass/mass_3d.mini +++ b/test/sumfact/mass/mass_3d.mini @@ -13,7 +13,7 @@ printmatrix = true name = {__name} extension = vtu -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num vectorization_quadloop = 1, 0 | expand vec sumfact = 1 diff --git a/test/sumfact/mass/sliced.mini b/test/sumfact/mass/sliced.mini index 542548d72ae2bcc2286340f4aeef71f2cbcfb648..17d331901a999c5d2d90a0453dfc524183f6e132 100644 --- a/test/sumfact/mass/sliced.mini +++ b/test/sumfact/mass/sliced.mini @@ -9,7 +9,7 @@ printmatrix = true name = {__name} extension = vtu -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1 vectorization_strategy = explicit vectorization_horizontal = 1 diff --git a/test/sumfact/poisson/diagonal.mini b/test/sumfact/poisson/diagonal.mini index 58abb8c603838a31668a8cc8332bb59f743cbeb8..298fadba9554771a7bdf4810b15ad7e925861cbf 100644 --- a/test/sumfact/poisson/diagonal.mini +++ b/test/sumfact/poisson/diagonal.mini @@ -10,7 +10,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-5 -[formcompiler.operator] +[formcompiler.r] sumfact = 1 vectorization_quadloop = 1 vectorization_strategy = explicit diff --git a/test/sumfact/poisson/opcount_poisson_2d_order2.mini b/test/sumfact/poisson/opcount_poisson_2d_order2.mini index cc5de56f45a320ca43397be3078622aadd6f9c16..538189b2e5c14bd745c748fc43e3161c4013cc77 100644 --- a/test/sumfact/poisson/opcount_poisson_2d_order2.mini +++ b/test/sumfact/poisson/opcount_poisson_2d_order2.mini @@ -16,7 +16,7 @@ compare_l2errorsquared = 1e-8 opcounter = 1 instrumentation_level = 4 -[formcompiler.operator] +[formcompiler.r] sumfact = 1 [formcompiler.ufl_variants] diff --git a/test/sumfact/poisson/opcount_sumfact_poisson_dg_2d_vec.mini b/test/sumfact/poisson/opcount_sumfact_poisson_dg_2d_vec.mini index 02039a9fbbc9ff213c9d09073f07ba0004ffbde5..b657c1a2c731e0606093ab3c0e00044afaadd3ae 100644 --- a/test/sumfact/poisson/opcount_sumfact_poisson_dg_2d_vec.mini +++ b/test/sumfact/poisson/opcount_sumfact_poisson_dg_2d_vec.mini @@ -13,7 +13,7 @@ extension = vtu opcounter = 1 instrumentation_level = 4 -[formcompiler.operator] +[formcompiler.r] sumfact = 1 [formcompiler.ufl_variants] diff --git a/test/sumfact/poisson/poisson_2d.mini b/test/sumfact/poisson/poisson_2d.mini index a079932bb92ad4812091e29be68acde9cacf1c3e..d9ce1773e575fab9ec9e05057207093c8ea8b747 100644 --- a/test/sumfact/poisson/poisson_2d.mini +++ b/test/sumfact/poisson/poisson_2d.mini @@ -16,7 +16,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 4e-5, 4e-9 | expand deg -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num sumfact = 1 vectorization_strategy = explicit, none | expand grad diff --git a/test/sumfact/poisson/poisson_3d.mini b/test/sumfact/poisson/poisson_3d.mini index 31f556f56fd550c252c369d0ea42b7a24e13fd34..e3e6da7d29475cedd70db44a2b667d6171ae5c80 100644 --- a/test/sumfact/poisson/poisson_3d.mini +++ b/test/sumfact/poisson/poisson_3d.mini @@ -17,7 +17,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-4, 1e-8 | expand deg -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num sumfact = 1 vectorization_quadloop = 1, 0 | expand quad diff --git a/test/sumfact/poisson/poisson_dg_2d.mini b/test/sumfact/poisson/poisson_dg_2d.mini index 3b4fd9a55c33e03417705e3fff0729031913dd30..d6799eac4600300f86303ea63853365698efdf1f 100644 --- a/test/sumfact/poisson/poisson_dg_2d.mini +++ b/test/sumfact/poisson/poisson_dg_2d.mini @@ -16,7 +16,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 5e-5, 5e-7 | expand deg -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num sumfact = 1 vectorization_quadloop = 1, 0 | expand quad diff --git a/test/sumfact/poisson/poisson_dg_3d.mini b/test/sumfact/poisson/poisson_dg_3d.mini index 58410c459b76841d6169edf63fc9cfacc61599b1..f0b4ef26f73509e9dea47a1cca366c83a51bfb93 100644 --- a/test/sumfact/poisson/poisson_dg_3d.mini +++ b/test/sumfact/poisson/poisson_dg_3d.mini @@ -16,7 +16,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-4, 5e-6 | expand deg -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num sumfact = 1 vectorization_quadloop = 1, 0 | expand quad diff --git a/test/sumfact/poisson/poisson_dg_tensor.mini b/test/sumfact/poisson/poisson_dg_tensor.mini index aa485d22e7351e5a2cc95bacbaee9984076ad6d0..f6884f965eac0a47416af97b26aa849a6be688ad 100644 --- a/test/sumfact/poisson/poisson_dg_tensor.mini +++ b/test/sumfact/poisson/poisson_dg_tensor.mini @@ -14,7 +14,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 3e-4 -[formcompiler.operator] +[formcompiler.r] sumfact = 1 vectorization_quadloop = 1, 0 | expand quad vectorization_strategy = explicit, none | expand grad diff --git a/test/sumfact/poisson/poisson_fastdg_2d.mini b/test/sumfact/poisson/poisson_fastdg_2d.mini index abd5b214f983243728cfc98f958278b65b1be5a1..53012e325a57387003dc42f2af4268f48cbdaa98 100644 --- a/test/sumfact/poisson/poisson_fastdg_2d.mini +++ b/test/sumfact/poisson/poisson_fastdg_2d.mini @@ -14,7 +14,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-4 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0 sumfact = 1 vectorization_quadloop = 1, 0 | expand quadvec diff --git a/test/sumfact/poisson/poisson_fastdg_3d.mini b/test/sumfact/poisson/poisson_fastdg_3d.mini index e58d07852e57ddeb2d4ef4f0d5be1b02384030ee..46552ce9e960e8a53715016e3de0bd6e770b5425 100644 --- a/test/sumfact/poisson/poisson_fastdg_3d.mini +++ b/test/sumfact/poisson/poisson_fastdg_3d.mini @@ -14,7 +14,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-4 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0 sumfact = 1 vectorization_quadloop = 1, 0 | expand quadvec diff --git a/test/sumfact/poisson/sliced.mini b/test/sumfact/poisson/sliced.mini index 26652161e2751ea54ed82e326e833f12ae57526d..55b6fcf7df3b0ee33f06bb97da0e8b555104c161 100644 --- a/test/sumfact/poisson/sliced.mini +++ b/test/sumfact/poisson/sliced.mini @@ -10,7 +10,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-5 -[formcompiler.operator] +[formcompiler.r] sumfact = 1 vectorization_quadloop = 1 vectorization_strategy = explicit diff --git a/test/sumfact/stokes/stokes.mini b/test/sumfact/stokes/stokes.mini index 203e89e28eaea013e5a5868c9f576f489d98d09f..cfb89ec57d5504fca215ddc08d862e5e2484fc19 100644 --- a/test/sumfact/stokes/stokes.mini +++ b/test/sumfact/stokes/stokes.mini @@ -14,7 +14,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-12 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 1, 0 | expand num vectorization_quadloop = 1, 0 | expand quad sumfact = 1 diff --git a/test/sumfact/stokes/stokes_dg.mini b/test/sumfact/stokes/stokes_dg.mini index 9b5202a1a39221aee536f20acd2819ec5d93f9e5..f34f23422ae888f7ea5d3085b41b87c2ac929346 100644 --- a/test/sumfact/stokes/stokes_dg.mini +++ b/test/sumfact/stokes/stokes_dg.mini @@ -15,9 +15,9 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-8 -[formcompiler.operator] +[formcompiler.r] numerical_jacobian = 0, 1 | expand num sumfact = 1 fastdg = 1, 0 | expand fastdg -{formcompiler.operator.fastdg} == 1 and {formcompiler.numerical_jacobian} == 1 | exclude \ No newline at end of file +{formcompiler.r.fastdg} == 1 and {formcompiler.r.numerical_jacobian} == 1 | exclude \ No newline at end of file