Skip to content
Snippets Groups Projects
Commit c412ba7f authored by René Heß's avatar René Heß
Browse files

Make quadrature_preamble a backend function

parent 6ccba85c
No related branches found
No related tags found
No related merge requests found
......@@ -204,14 +204,14 @@ def name_in_cell_geometry(restriction):
# TODO is it always necessary to add quadrature inames?
def apply_in_cell_transformation(name, local, restriction):
geo = name_in_cell_geometry(restriction)
return quadrature_preamble("{} = {}.global({});".format(name,
geo,
str(local),
),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(local)}),
depends_on=frozenset({Writes(get_pymbolic_basename(local))}),
)
return get_backend("quadrature_preamble")("{} = {}.global({});".format(name,
geo,
str(local),
),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(local)}),
depends_on=frozenset({Writes(get_pymbolic_basename(local))}),
)
def pymbolic_in_cell_coordinates(local, restriction):
......@@ -339,14 +339,15 @@ def define_jacobian_inverse_transposed(name, restriction):
temporary_variable(name, decl_method=define_jacobian_inverse_transposed_temporary(restriction), shape=(dim, dim))
geo = name_cell_geometry(restriction)
pos = get_backend("qp_in_cell", selector=option_switch(("blockstructured", "sumfact")))(restriction)
return quadrature_preamble("{} = {}.jacobianInverseTransposed({});".format(name,
geo,
str(pos),
),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(pos)}),
depends_on=frozenset({Writes(get_pymbolic_basename(pos))}),
)
return get_backend("quadrature_preamble")("{} = {}.jacobianInverseTransposed({});".format(name,
geo,
str(pos),
),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(pos)}),
depends_on=frozenset({Writes(get_pymbolic_basename(pos))}),
)
@backend(interface="name_jit", name="default")
......@@ -390,16 +391,17 @@ def define_constant_jacobian_determinant(name):
def define_jacobian_determinant(name):
temporary_variable(name, shape=())
geo = name_geometry()
pos = get_backend("quad_pos", selector=option_switch("blockstructured"))()
pos = get_backend("quad_pos", selector=option_switch(("blockstructured", "sumfact")))()
code = "{} = {}.integrationElement({});".format(name,
geo,
str(pos),
)
return quadrature_preamble(code,
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(pos)}),
depends_on=frozenset({Writes(get_pymbolic_basename(pos))}),
)
return get_backend("quadrature_preamble")(code,
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(pos)}),
depends_on=frozenset({Writes(get_pymbolic_basename(pos))}),
)
@backend(interface="fdetjac", name="constant_transformation_matrix")
......
......@@ -61,6 +61,7 @@ def quadrature_inames():
return (quadrature_iname(),)
@backend(interface="quadrature_preamble")
def quadrature_preamble(code, **kw):
kw['tags'] = kw.get('tags', frozenset({})).union(frozenset({"quad"}))
return instruction(inames=get_backend(interface="quad_inames")(), code=code, **kw)
......
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