-
-
Notifications
You must be signed in to change notification settings - Fork 45
Add numba backend
#801
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add numba backend
#801
Conversation
garth-wells
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Numba should remain an optional dependency. We have consciously not made it a required dependency across FEniCS packages.
Numba can constrain versions of other dependencies heavily, e.g. Numpy, and it often takes a long time to move to new a Python version.
|
@schnellerhase could you post a sample of the generated code? My interest is that Numba code using the UFCx interface is normally poor from a performance point-of-view because Numba doesn't support static memory allocation. Performance can be (very) good by generating a whole assembler, or possibly good with the tricks to capture (and re-use) tables. I like Numba as a prototype for supporting multiple languages, but I'm less keen on backends that we wouldn't recommend for efficient computation. |
|
Generated with Details# This code conforms with the UFC specification version 2018.2.0.dev0
# and was automatically generated by FFCx version 0.11.0.dev0.
#
# This code was generated with the following options:
#
# {'epsilon': 1e-14,
# 'language': 'numba',
# 'output_directory': '.',
# 'part': 'full',
# 'profile': False,
# 'scalar_type': 'float64',
# 'sum_factorization': False,
# 'table_atol': 1e-09,
# 'table_rtol': 1e-06,
# 'ufl_file': ['./PoissonQuad.py'],
# 'verbosity': 30,
# 'visualise': False}
import numba
import numpy as np
import math
# ufcx enums
interval = 10
triangle = 20
quadrilateral = 30
tetrahedron = 40
hexahedron = 50
vertex = 60
prism = 70
pyramid = 80
cell = 0
exterior_facet = 1
interior_facet = 2
ufcx_basix_element = 0
ufcx_mixed_element = 1
ufcx_quadrature_element = 2
ufcx_basix_custom_element = 3
# Code for integral integral_63fb73da9bd363692a1516abb30921c29f18b039_triangle
def tabulate_tensor_integral_63fb73da9bd363692a1516abb30921c29f18b039_triangle(_A, _w, _c, _coordinate_dofs,
_entity_local_index, _quadrature_permutation, custom_data):
A = numba.carray(_A, (36))
w = numba.carray(_w, (0))
c = numba.carray(_c, (0))
coordinate_dofs = numba.carray(_coordinate_dofs, (36))
entity_local_index = numba.carray(_entity_local_index, (2))
quadrature_permutation = numba.carray(_quadrature_permutation, (0))
# Quadrature rules
weights_39d = np.array([0.054975871827661, 0.054975871827661, 0.054975871827661, 0.1116907948390055, 0.1116907948390055, 0.1116907948390055], dtype=np.float64)
# Precomputed values of basis functions and precomputations
# FE* dimensions: [permutation][entities][points][dofs]
FE0_C0_D01_Q39d = np.array([[[[0.6336951459609204, 0.0, -0.6336951459609156, 3.267390291921836, 0.0, -3.2673902919218363],
[0.6336951459609199, 0.0, 2.2673902919218354, 0.36630485403908425, -2.901085437882756, -0.36630485403908397],
[-2.267390291921832, 0.0, -0.6336951459609155, 0.3663048540390838, 2.9010854378827484, -0.3663048540390845],
[-0.7837939636638601, 0.0, 0.78379396366386, 0.43241207267228005, 0.0, -0.43241207267228016],
[-0.7837939636638598, 0.0, -0.5675879273277195, 1.7837939636638596, 1.35138189099158, -1.7837939636638604],
[0.5675879273277201, 0.0, 0.7837939636638599, 1.78379396366386, -1.3513818909915805, -1.7837939636638602]]]], dtype=np.float64)
FE1_C0_D10_Q39d = np.array([[[[0.6336951459609204, 2.267390291921836, 0.0, 0.36630485403908347, -0.36630485403908486, -2.9010854378827564],
[0.63369514596092, -0.6336951459609156, 0.0, 3.2673902919218363, -3.2673902919218363, 0.0],
[-2.2673902919218323, -0.6336951459609159, 0.0, 0.3663048540390847, -0.36630485403908375, 2.9010854378827475],
[-0.78379396366386, -0.5675879273277199, 0.0, 1.7837939636638604, -1.7837939636638602, 1.3513818909915798],
[-0.78379396366386, 0.7837939636638601, 0.0, 0.43241207267227993, -0.43241207267228016, 0.0],
[0.5675879273277202, 0.7837939636638601, 0.0, 1.78379396366386, -1.7837939636638607, -1.3513818909915802]]]], dtype=np.float64)
for iq in range(0, 6):
# ------------------------
# Section: Jacobian
# Inputs: FE0_C0_D01_Q39d, coordinate_dofs, FE1_C0_D10_Q39d
# Outputs: J0_c3, J0_c0, J0_c2, J0_c1
J0_c0 = 0.0
J0_c3 = 0.0
J0_c1 = 0.0
J0_c2 = 0.0
for ic in range(0, 6):
J0_c0 += coordinate_dofs[(ic) * 3] * FE1_C0_D10_Q39d[0, 0, iq, ic]
J0_c3 += coordinate_dofs[(ic) * 3 + 1] * FE0_C0_D01_Q39d[0, 0, iq, ic]
J0_c1 += coordinate_dofs[(ic) * 3] * FE0_C0_D01_Q39d[0, 0, iq, ic]
J0_c2 += coordinate_dofs[(ic) * 3 + 1] * FE1_C0_D10_Q39d[0, 0, iq, ic]
# ------------------------
# ------------------------
# Section: Intermediates
# Inputs: J0_c3, J0_c0, J0_c2, J0_c1
# Outputs: fw0, fw1, fw2
fw0 = 0
fw1 = 0
fw2 = 0
sv_39d_0 = J0_c0 * J0_c3
sv_39d_1 = J0_c1 * J0_c2
sv_39d_2 = -sv_39d_1
sv_39d_3 = sv_39d_0 + sv_39d_2
sv_39d_4 = J0_c0 / sv_39d_3
sv_39d_5 = -J0_c1
sv_39d_6 = sv_39d_5 / sv_39d_3
sv_39d_7 = sv_39d_4 * sv_39d_4
sv_39d_8 = sv_39d_4 * sv_39d_6
sv_39d_9 = sv_39d_6 * sv_39d_6
sv_39d_10 = J0_c3 / sv_39d_3
sv_39d_11 = -J0_c2
sv_39d_12 = sv_39d_11 / sv_39d_3
sv_39d_13 = sv_39d_12 * sv_39d_12
sv_39d_14 = sv_39d_10 * sv_39d_12
sv_39d_15 = sv_39d_10 * sv_39d_10
sv_39d_16 = sv_39d_7 + sv_39d_13
sv_39d_17 = sv_39d_8 + sv_39d_14
sv_39d_18 = sv_39d_15 + sv_39d_9
sv_39d_19 = np.abs(sv_39d_3)
sv_39d_20 = sv_39d_16 * sv_39d_19
sv_39d_21 = sv_39d_17 * sv_39d_19
sv_39d_22 = sv_39d_18 * sv_39d_19
fw0 = sv_39d_22 * weights_39d[iq]
fw1 = sv_39d_21 * weights_39d[iq]
fw2 = sv_39d_20 * weights_39d[iq]
# ------------------------
# ------------------------
# Section: Tensor Computation
# Inputs: fw0, FE1_C0_D10_Q39d, FE0_C0_D01_Q39d, fw1, fw2
# Outputs: A
temp_0 = np.full((6,), 0, dtype=np.float64)
for j in range(0, 6):
temp_0[j] = fw0 * FE1_C0_D10_Q39d[0, 0, iq, j]
temp_1 = np.full((6,), 0, dtype=np.float64)
for j in range(0, 6):
temp_1[j] = fw1 * FE0_C0_D01_Q39d[0, 0, iq, j]
temp_2 = np.full((6,), 0, dtype=np.float64)
for j in range(0, 6):
temp_2[j] = fw1 * FE1_C0_D10_Q39d[0, 0, iq, j]
temp_3 = np.full((6,), 0, dtype=np.float64)
for j in range(0, 6):
temp_3[j] = fw2 * FE0_C0_D01_Q39d[0, 0, iq, j]
for j in range(0, 6):
for i in range(0, 6):
A[6 * (i) + (j)] += FE1_C0_D10_Q39d[0, 0, iq, i] * temp_0[j]
A[6 * (i) + (j)] += FE1_C0_D10_Q39d[0, 0, iq, i] * temp_1[j]
A[6 * (i) + (j)] += FE0_C0_D01_Q39d[0, 0, iq, i] * temp_2[j]
A[6 * (i) + (j)] += FE0_C0_D01_Q39d[0, 0, iq, i] * temp_3[j]
# ------------------------
class integral_63fb73da9bd363692a1516abb30921c29f18b039_triangle(object):
enabled_coefficients = []
tabulate_tensor = tabulate_tensor_integral_63fb73da9bd363692a1516abb30921c29f18b039_triangle
needs_facet_permutations = False
coordinate_element_hash = 16933917890882727401
domain = 2
# End of code for integral integral_63fb73da9bd363692a1516abb30921c29f18b039_triangle
# Code for integral integral_778fc7abc3ea118a6b2ffae9b84390638c355c49_triangle
def tabulate_tensor_integral_778fc7abc3ea118a6b2ffae9b84390638c355c49_triangle(_A, _w, _c, _coordinate_dofs,
_entity_local_index, _quadrature_permutation, custom_data):
A = numba.carray(_A, (6))
w = numba.carray(_w, (6))
c = numba.carray(_c, (0))
coordinate_dofs = numba.carray(_coordinate_dofs, (36))
entity_local_index = numba.carray(_entity_local_index, (2))
quadrature_permutation = numba.carray(_quadrature_permutation, (0))
# Quadrature rules
weights_1ec = np.array([0.0254224531851035, 0.0254224531851035, 0.0254224531851035, 0.0583931378631895, 0.0583931378631895, 0.0583931378631895, 0.041425537809187, 0.041425537809187, 0.041425537809187, 0.041425537809187, 0.041425537809187, 0.041425537809187], dtype=np.float64)
# Precomputed values of basis functions and precomputations
# FE* dimensions: [permutation][entities][points][dofs]
FE0_C0_Q1ec = np.array([[[[-0.05512856699248414, 0.6533077030470595, -0.05512856699248412, 0.2205142679699363, 0.015920894998035756, 0.22051426796993656],
[-0.05512856699248414, -0.05512856699248414, 0.6533077030470594, 0.22051426796993656, 0.22051426796993662, 0.01592089499803573],
[0.6533077030470595, -0.05512856699248414, -0.05512856699248409, 0.015920894998035784, 0.22051426796993656, 0.22051426796993667],
[-0.12499898253509756, 0.00143057951778882, -0.12499898253509749, 0.4999959301403893, 0.24857552527162594, 0.49999593014039123],
[-0.12499898253509756, -0.12499898253509759, 0.00143057951778888, 0.49999593014038934, 0.49999593014039134, 0.2485755252716258],
[0.0014305795177897915, -0.12499898253509756, -0.12499898253509747, 0.24857552527162488, 0.4999959301403904, 0.4999959301403902],
[-0.047496257198800046, 0.17376836365417409, -0.11771516330842909, 0.7901604427658231, 0.06597478591860523, 0.1353078281686268],
[-0.11771516330842921, 0.17376836365417414, -0.04749625719880005, 0.13530782816862683, 0.06597478591860531, 0.7901604427658231],
[-0.04749625719880002, -0.11771516330842915, 0.1737683636541741, 0.7901604427658231, 0.13530782816862685, 0.06597478591860523],
[0.1737683636541741, -0.11771516330842913, -0.04749625719880004, 0.06597478591860526, 0.13530782816862694, 0.7901604427658231],
[-0.11771516330842917, -0.047496257198800095, 0.1737683636541741, 0.13530782816862683, 0.7901604427658232, 0.06597478591860523],
[0.17376836365417406, -0.047496257198800115, -0.11771516330842907, 0.06597478591860526, 0.7901604427658232, 0.1353078281686269]]]], dtype=np.float64)
FE1_C0_D10_Q1ec = np.array([[[[0.7476439420339921, 2.4952878840679835, 0.0, 0.2523560579660072, -0.25235605796600874, -3.2429318261019753],
[0.7476439420339923, -0.7476439420339918, 0.0, 3.4952878840679844, -3.495287884067985, 0.0],
[-2.495287884067984, -0.7476439420339915, 0.0, 0.25235605796600863, -0.2523560579660075, 3.2429318261019753],
[0.0028530193163561757, 1.0057060386327161, 0.0, 0.9971469806836398, -0.9971469806836405, -1.0085590579490724],
[0.00285301931635629, -0.0028530193163599986, 0.0, 2.0057060386327166, -2.005706038632717, 0.0],
[-1.0057060386327201, -0.0028530193163599504, 0.0, 0.9971469806836403, -0.99714698068364, 1.00855905794908],
[0.7874198006207365, 1.546009996485596, 0.0, 1.2414098041351396, -1.2414098041351407, -2.333429797106332],
[-0.2414098041351399, 1.546009996485596, 0.0, 0.2125801993792637, -0.21258019937926445, -1.304600192350456],
[0.7874198006207362, 0.24140980413514018, 0.0, 2.5460099964855964, -2.5460099964855964, -1.0288296047558763],
[-1.5460099964855964, 0.2414098041351399, 0.0, 0.21258019937926426, -0.21258019937926395, 1.304600192350456],
[-0.24140980413513996, -0.7874198006207358, 0.0, 2.5460099964855964, -2.5460099964855964, 1.0288296047558758],
[-1.5460099964855962, -0.7874198006207358, 0.0, 1.2414098041351405, -1.2414098041351398, 2.333429797106332]]]], dtype=np.float64)
FE1_C1_D01_Q1ec = np.array([[[[0.7476439420339924, 0.0, -0.7476439420339914, 3.4952878840679835, 0.0, -3.4952878840679844],
[0.747643942033992, 0.0, 2.4952878840679835, 0.25235605796600824, -3.2429318261019766, -0.2523560579660078],
[-2.495287884067984, 0.0, -0.7476439420339913, 0.252356057966008, 3.2429318261019766, -0.25235605796600863],
[0.0028530193163562824, 0.0, -0.0028530193163599283, 2.0057060386327166, 0.0, -2.0057060386327166],
[0.0028530193163561774, 0.0, 1.0057060386327161, 0.9971469806836402, -1.0085590579490724, -0.99714698068364],
[-1.0057060386327201, 0.0, -0.002853019316359882, 0.99714698068364, 1.0085590579490804, -0.9971469806836404],
[0.7874198006207362, 0.0, 0.24140980413514013, 2.546009996485596, -1.0288296047558765, -2.546009996485596],
[-0.24140980413513968, 0.0, -0.7874198006207356, 2.546009996485596, 1.0288296047558756, -2.5460099964855964],
[0.7874198006207361, 0.0, 1.5460099964855958, 1.2414098041351402, -2.3334297971063327, -1.24140980413514],
[-1.546009996485596, 0.0, -0.7874198006207355, 1.2414098041351398, 2.333429797106332, -1.2414098041351405],
[-0.24140980413514007, 0.0, 1.5460099964855958, 0.2125801993792643, -1.3046001923504562, -0.212580199379264],
[-1.546009996485596, 0.0, 0.2414098041351402, 0.2125801993792641, 1.3046001923504562, -0.21258019937926448]]]], dtype=np.float64)
for iq in range(0, 12):
# ------------------------
# Section: Coefficient
# Inputs: w, FE0_C0_Q1ec
# Outputs: w0
w0 = 0.0
for ic in range(0, 6):
w0 += w[ic] * FE0_C0_Q1ec[0, 0, iq, ic]
# ------------------------
# ------------------------
# Section: Jacobian
# Inputs: coordinate_dofs, FE1_C0_D10_Q1ec, FE1_C1_D01_Q1ec
# Outputs: J0_c3, J0_c0, J0_c2, J0_c1
J0_c0 = 0.0
J0_c3 = 0.0
J0_c1 = 0.0
J0_c2 = 0.0
for ic in range(0, 6):
J0_c0 += coordinate_dofs[(ic) * 3] * FE1_C0_D10_Q1ec[0, 0, iq, ic]
J0_c3 += coordinate_dofs[(ic) * 3 + 1] * FE1_C1_D01_Q1ec[0, 0, iq, ic]
J0_c1 += coordinate_dofs[(ic) * 3] * FE1_C1_D01_Q1ec[0, 0, iq, ic]
J0_c2 += coordinate_dofs[(ic) * 3 + 1] * FE1_C0_D10_Q1ec[0, 0, iq, ic]
# ------------------------
# ------------------------
# Section: Intermediates
# Inputs: w0, J0_c3, J0_c0, J0_c2, J0_c1
# Outputs: fw0
fw0 = 0
sv_1ec_0 = J0_c0 * J0_c3
sv_1ec_1 = J0_c1 * J0_c2
sv_1ec_2 = -sv_1ec_1
sv_1ec_3 = sv_1ec_0 + sv_1ec_2
sv_1ec_4 = np.abs(sv_1ec_3)
sv_1ec_5 = sv_1ec_4 * w0
fw0 = sv_1ec_5 * weights_1ec[iq]
# ------------------------
# ------------------------
# Section: Tensor Computation
# Inputs: fw0, FE0_C0_Q1ec
# Outputs: A
for i in range(0, 6):
A[(i)] += fw0 * FE0_C0_Q1ec[0, 0, iq, i]
# ------------------------
class integral_778fc7abc3ea118a6b2ffae9b84390638c355c49_triangle(object):
enabled_coefficients = [1]
tabulate_tensor = tabulate_tensor_integral_778fc7abc3ea118a6b2ffae9b84390638c355c49_triangle
needs_facet_permutations = False
coordinate_element_hash = 16933917890882727401
domain = 2
# End of code for integral integral_778fc7abc3ea118a6b2ffae9b84390638c355c49_triangle
# Code for form form_d761aec89406377fcbb58a999b7323d30d8bea53
finite_element_hashes_form_d761aec89406377fcbb58a999b7323d30d8bea53 = [16933917890882727401, 16933917890882727401]
form_integral_offsets_form_d761aec89406377fcbb58a999b7323d30d8bea53 = [0, 1, 1, 1, 1, 1]
form_integrals_form_d761aec89406377fcbb58a999b7323d30d8bea53 = [integral_63fb73da9bd363692a1516abb30921c29f18b039_triangle]
form_integral_ids_form_d761aec89406377fcbb58a999b7323d30d8bea53 = [-1]
class form_d761aec89406377fcbb58a999b7323d30d8bea53(object):
signature = "9c0f4f100853821a50937b9c69cae563cfece5fc9f0aa8c5f48523cecd75bb4f64e4b0e0d765e482914e1d38e7da285445d3fb618171d980b731a6dccc39063d"
rank = 2
num_coefficients = 0
original_coefficient_positions = None
coefficient_name_map = None
num_constants = 0
constant_ranks = None
constant_shapes = None
constant_name_map = None
finite_element_hashes = finite_element_hashes_form_d761aec89406377fcbb58a999b7323d30d8bea53
form_integrals = form_integrals_form_d761aec89406377fcbb58a999b7323d30d8bea53
form_integral_ids = form_integral_ids_form_d761aec89406377fcbb58a999b7323d30d8bea53
form_integral_offsets = form_integral_offsets_form_d761aec89406377fcbb58a999b7323d30d8bea53
# Alias name
form_PoissonQuad_a = form_d761aec89406377fcbb58a999b7323d30d8bea53
# End of code for form form_d761aec89406377fcbb58a999b7323d30d8bea53
# Code for form form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672
original_coefficient_position_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672 = [0]
finite_element_hashes_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672 = [16933917890882727401, 16933917890882727401]
form_integral_offsets_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672 = [0, 1, 1, 1, 1, 1]
form_integrals_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672 = [integral_778fc7abc3ea118a6b2ffae9b84390638c355c49_triangle]
form_integral_ids_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672 = [-1]
coefficient_names_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672 = ["f"]
class form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672(object):
signature = "dccbdc7bda573c2c069c489b1644c8ccec0aee82c8241444a95c0be7f953228ee36efc3d489e561dd14558559f08b87b4c345ea95563dd6c91c3fdf07645ce47"
rank = 1
num_coefficients = 1
original_coefficient_positions = original_coefficient_position_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672
coefficient_name_map = coefficient_names_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672
num_constants = 0
constant_ranks = None
constant_shapes = None
constant_name_map = None
finite_element_hashes = finite_element_hashes_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672
form_integrals = form_integrals_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672
form_integral_ids = form_integral_ids_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672
form_integral_offsets = form_integral_offsets_form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672
# Alias name
form_PoissonQuad_L = form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672
# End of code for form form_fb2b1df1128f70fdeeddd69cd46d86aa2a83d672 |
|
What if we rather make this a |
This is our take on this as well. We see the Currently the While working with the |
|
Maybe we can output a message (e.g. a comment in the generated code) or on the console, reminding users that the kernel is not suitable for production use. |
michalhabera
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Happy to have this merged as an exploratory language backend.
commit 59799971d68b507c814cbc087e392b84fbcedbdd Merge: 98058a43 26608849 Author: schnellerhase <[email protected]> Date: Wed Dec 10 17:16:28 2025 +0100 Merge branch 'main' into schnellerhase/copy-chris/languages-3-cpp commit 26608849f3906635f5f6507459252bcf2a5e83fe Author: Paul T. Kühner <[email protected]> Date: Wed Dec 10 15:47:07 2025 +0100 Add `numba` backend (#801) * Updates to 'language' support * Fixes for ruff * Add numba * Add suffix support * updates * Formatting fixes * fixes * Remove wrapper * Fix * [tmp] no mypy * [tmp] no ruff * Start with numba * drop cpp/ * ruff * add __all__ * Test numba standalone * Get CI up * dependency numba * Explicit * install numba module * parallel test execution * Fix complex * Make optional * Skip real only demos * Reactivate ruff * Start on unit testing (almost passing) * Commit ufl, not kernel * Add custom_data input * Fix n_const computation * Add array creation by (full) scalar value * n_coeff computation * Linear form + coefficient kernel * Introduce number_coordinate_dofs to CommonExpressionIR * Fix remaining shape computations * Fix no coordinate element case * Parametrize over scalar type * remove in pwd * Fix expressions template * Add expression tensor size computations * Add expression test * Start fine tuning * modernize cmdline test * Merge with poisson test * Licensing headers * Resolve path * Fix files system mess * Language agnostic formatter name: c_format -> format * Language agnostic formatter name: c_impl -> impl * Language agnostic naming: c/numba_implementation -> implementation * Language agnostic naming: c/numbaFormatter -> Formatter * One more visualise fix * Prepare alignment of expressions to C * Integrals alost completely aligned * Finalise cleanup * checked * Reactivate mypy * Fix mypy * Fix: tensor size * Activate redundant check, drop uneccessary args * Add coordinate_element_hash to expression * Extend keys check and tidy of integrals * Tidy up test_demos and allow for further extensions * Add key checking to form * Try with Path * Add choices * only import basix.ufl * type hints * fixes * no self * derived * more * . * +1 * format * race condition on windows? * No subprocess for FFCx call - should result in accurate coverage reports * ruff * Revert for demos, cwd more important than coverage * Update test/poisson.py Co-authored-by: Michal Habera <[email protected]> * Drop user defined import * Move --language option to options.py * Fix: size of tensor, extend test to tensor valued expression * off by one * int * mypy * Get type info from formatter - use _dtype_to_name logic * mypy * ignore * format * Apply suggestions from code review Co-authored-by: Jørgen Schartum Dokken <[email protected]> * Add docstrings and types to integrals * String/comment formatting * mypy * Raise bessel * Introduce _format_comment_str * docstring * Docstring * We do need bessel :) * Remove API breaking chane with suffixes * Tidy * last one? * Apply suggestions from code review Co-authored-by: Michal Habera <[email protected]> * Consistent factory_name with C * Template of form was unallgined with C, rewrite * NULL -> None * Add warning to file template --------- Co-authored-by: Chris Richardson <[email protected]> Co-authored-by: Michal Habera <[email protected]> Co-authored-by: Jørgen Schartum Dokken <[email protected]> commit 98058a4358f05e8a904392f4904534e8c3efa84b Author: schnellerhase <[email protected]> Date: Sun Dec 7 12:15:39 2025 +0100 Reactivate check commit d7ca09f269e16537e58842fd243def4f659615ce Author: schnellerhase <[email protected]> Date: Sun Dec 7 12:05:43 2025 +0100 Form implementation commit dacae4519bbee8cfb6a475c4d36a30f9b22488a8 Author: schnellerhase <[email protected]> Date: Sun Dec 7 11:19:10 2025 +0100 Move macro definition to file template commit f4bcbbf2de55f857bcaee7a5edd4bde65a6159d4 Author: schnellerhase <[email protected]> Date: Sun Dec 7 11:15:49 2025 +0100 Add cpp option commit 04d36c289113b1ad8d8a9772180bc385bbb87c85 Merge: e1b886a3 880c4485 Author: schnellerhase <[email protected]> Date: Sun Dec 7 11:10:11 2025 +0100 Merge branch 'schnellerhase/copy-chris/languages-3' into schnellerhase/copy-chris/languages-3-cpp commit 880c44855c1e366981c26aa42f246d4ae09ed668 Author: schnellerhase <[email protected]> Date: Sat Dec 6 14:35:49 2025 +0100 Revert for demos, cwd more important than coverage commit c808bfd9444f6cc52382ae2f81ae7a03fa2a97bb Author: schnellerhase <[email protected]> Date: Sat Dec 6 14:29:28 2025 +0100 ruff commit e196d8690902a6d7ab6312adb636b5422ee1a325 Author: schnellerhase <[email protected]> Date: Sat Dec 6 14:27:35 2025 +0100 No subprocess for FFCx call - should result in accurate coverage reports commit e1b886a325f7a8bf060ba71ae7277de4b88523ff Author: schnellerhase <[email protected]> Date: Sat Dec 6 14:17:13 2025 +0100 xdist and I/O seems to be buggy (noted in other occassions as well) commit fea71db4e6427e6593d9947bdf8e5d6ce96ec6cc Author: schnellerhase <[email protected]> Date: Tue Dec 2 21:39:38 2025 +0100 Add __restric__/__restrict commit 32e5f66959e538416b840825c64649f4e2ce5d43 Author: schnellerhase <[email protected]> Date: Mon Dec 1 09:22:39 2025 +0100 race condition on windows? commit 2b2fab44142afeab760ebb4aaa089e7cd3e2f51c Author: schnellerhase <[email protected]> Date: Sun Nov 30 18:24:25 2025 +0100 format commit 43c46d280bb636d8e47c8084e007435793d2d18b Author: schnellerhase <[email protected]> Date: Sun Nov 30 18:19:39 2025 +0100 +1 commit fcb563628653e2e8237c8449e71c7cbe8f26eabc Author: schnellerhase <[email protected]> Date: Sun Nov 30 18:16:25 2025 +0100 . commit 3eeb26d25f08ec2ffd2749710710e60ac2b1a0ad Author: schnellerhase <[email protected]> Date: Sun Nov 30 18:11:46 2025 +0100 more commit ff6498c6cfc927ee83fd75bc5ef16a101187870f Author: schnellerhase <[email protected]> Date: Sun Nov 30 18:03:03 2025 +0100 derived commit fa455317cccccd453088deb03456305245444b80 Author: schnellerhase <[email protected]> Date: Sun Nov 30 17:59:36 2025 +0100 no self commit 4dc78afccda0ed94385fffeb3ddf6b649bdd4a03 Author: schnellerhase <[email protected]> Date: Sun Nov 30 17:56:57 2025 +0100 fixes commit d234b84adfe7b23d72d12dbdc68f7ed9c5349c4b Author: schnellerhase <[email protected]> Date: Sun Nov 30 17:49:21 2025 +0100 type hints commit 85464377169ed745bca65a75aa8d60ee34de1ecc Author: schnellerhase <[email protected]> Date: Sun Nov 30 17:17:50 2025 +0100 only import basix.ufl commit a45b46412b23f951a239362b62b8c310c1637fc5 Author: schnellerhase <[email protected]> Date: Sun Nov 30 17:15:53 2025 +0100 Add choices commit 8b4682f07b71ca998c215882f94496e68955182d Author: schnellerhase <[email protected]> Date: Sun Nov 30 17:09:59 2025 +0100 some more commit 64ca4e6b719999eb3303dca6a92bad571c7a2313 Author: schnellerhase <[email protected]> Date: Sun Nov 30 16:45:54 2025 +0100 std:: fixed width types commit 89c254e0e1c893aa8ae0388c355a03f4d636679f Author: schnellerhase <[email protected]> Date: Sun Nov 30 16:36:50 2025 +0100 passing compiles? commit f4d30b3557fceab6b5440fb465f189d503432382 Author: schnellerhase <[email protected]> Date: Sun Nov 30 16:20:32 2025 +0100 Add compile test (at least to PCH) commit 6b69597bf09bfe1a0c0192c8a4dd70ec83255fa7 Author: schnellerhase <[email protected]> Date: Sun Nov 30 15:58:38 2025 +0100 Add cpp package commit 48a9a1e024eaa7abafa2eb533b5d86a2c743b02f Author: schnellerhase <[email protected]> Date: Sun Nov 30 15:50:33 2025 +0100 Add Cpp demos test (generation only) commit 8bbe720e5ed36d712a05b5d4501a70a97f63384d Author: schnellerhase <[email protected]> Date: Sun Nov 30 15:50:16 2025 +0100 Update to new interface to get demos to pass commit 39c9cc6b5d2c8a693fe03f072bb600fda23927a6 Author: schnellerhase <[email protected]> Date: Sun Nov 30 15:28:08 2025 +0100 [tmp] no mypy commit 85e19a3cbdf028e64941011d45675b2fd8a53b57 Author: schnellerhase <[email protected]> Date: Sun Nov 30 15:25:42 2025 +0100 Copy @chrisrichardson/languages-3 cpp/ files commit ca6a9e865d9852569e640f365abfc88df6d3fec8 Author: schnellerhase <[email protected]> Date: Fri Nov 28 18:22:51 2025 +0100 Try with Path commit 52491240ad4720d5e0447a0588ae2068cdbb1fb1 Author: schnellerhase <[email protected]> Date: Fri Nov 28 15:28:37 2025 +0100 Add key checking to form commit 021a603794e8a6bac296c036580236d425fbf822 Author: schnellerhase <[email protected]> Date: Fri Nov 28 14:51:18 2025 +0100 Tidy up test_demos and allow for further extensions commit 48bd21f846983e301d4404a620dc9f8398608a60 Author: schnellerhase <[email protected]> Date: Fri Nov 28 13:55:42 2025 +0100 Extend keys check and tidy of integrals commit cab8da109f702550908b87fcd49c07a8381e15bc Author: schnellerhase <[email protected]> Date: Fri Nov 28 13:42:01 2025 +0100 Add coordinate_element_hash to expression commit ffdd3c63ef8ff13cec72d6abcfad3aa806b67011 Author: schnellerhase <[email protected]> Date: Fri Nov 28 13:37:43 2025 +0100 Activate redundant check, drop uneccessary args commit 161ad40bc2c4fbf225210218833c7d6956ab7eb1 Author: schnellerhase <[email protected]> Date: Fri Nov 28 13:33:35 2025 +0100 Fix: tensor size commit 664bb1fc091576a93c02af8946a8bc3a98da0563 Author: schnellerhase <[email protected]> Date: Thu Nov 27 20:55:39 2025 +0100 Fix mypy commit f6be02bb8552013d628d937fc1b0fc99852b4cd1 Author: schnellerhase <[email protected]> Date: Thu Nov 27 20:45:29 2025 +0100 Reactivate mypy commit 07a7e141e52996baeee498aff35cdc7fbc57b3c1 Author: schnellerhase <[email protected]> Date: Thu Nov 27 20:42:24 2025 +0100 checked commit 0bff1fc1d3245bce0f2101ca11eb0abf65a16f6c Author: schnellerhase <[email protected]> Date: Thu Nov 27 20:31:40 2025 +0100 Finalise cleanup commit 77ac932c8a4086f64864bce875bd552df1c876f6 Author: schnellerhase <[email protected]> Date: Thu Nov 27 20:19:01 2025 +0100 Integrals alost completely aligned commit 77280a81925e868dfdf0ab8fb6bc3b26b28f7d85 Author: schnellerhase <[email protected]> Date: Thu Nov 27 20:04:05 2025 +0100 Prepare alignment of expressions to C commit ec1f538aa174d6dcb3f3607fe3ab933b60a41030 Author: schnellerhase <[email protected]> Date: Thu Nov 27 19:42:51 2025 +0100 One more visualise fix commit 2774e7c7adfab1c0513e68bc40b9b497c6c8d2dc Author: schnellerhase <[email protected]> Date: Thu Nov 27 19:40:05 2025 +0100 Language agnostic naming: c/numbaFormatter -> Formatter commit 1fc494422923b18f2cea185bad06f9c6f8c0323d Author: schnellerhase <[email protected]> Date: Thu Nov 27 19:37:07 2025 +0100 Language agnostic naming: c/numba_implementation -> implementation commit 098328dc7910312d689e59003469cf19bc19bbb7 Author: schnellerhase <[email protected]> Date: Thu Nov 27 19:34:46 2025 +0100 Language agnostic formatter name: c_impl -> impl commit 4e3b2bdf94a5dacbe3eeaaccbcabde0cd98414ba Author: schnellerhase <[email protected]> Date: Thu Nov 27 19:33:27 2025 +0100 Language agnostic formatter name: c_format -> format commit 70552cffa8506bd2888e5fa73fc60a24e2965577 Author: schnellerhase <[email protected]> Date: Thu Nov 27 19:24:53 2025 +0100 Fix files system mess commit 453d15fab4bb21a77e9a3464b65681063762b41b Author: schnellerhase <[email protected]> Date: Thu Nov 27 19:07:52 2025 +0100 Resolve path commit 1bfe3324f583911233e68d05f5be68010d363bfe Author: schnellerhase <[email protected]> Date: Thu Nov 27 19:01:06 2025 +0100 Licensing headers commit 8730fa54382307d8ca1d48b26be81afc3f63d409 Author: schnellerhase <[email protected]> Date: Thu Nov 27 18:49:09 2025 +0100 Merge with poisson test commit e6333eb9139447c5c514ee7946900b588ca0d138 Author: schnellerhase <[email protected]> Date: Thu Nov 27 18:46:42 2025 +0100 modernize cmdline test commit dd0f0738ab0c0fb8e92d226b88ccdd6c9c8f9499 Author: schnellerhase <[email protected]> Date: Thu Nov 27 18:35:47 2025 +0100 Start fine tuning commit b4f01ded0ca82040b8fe17d90abc37ca86690ddb Merge: d3e1d35d 818267a4 Author: Paul T. Kühner <[email protected]> Date: Thu Nov 27 18:13:56 2025 +0100 Merge branch 'main' into schnellerhase/copy-chris/languages-3 commit d3e1d35da99f88208798ae052cf2cf34b96fd952 Author: schnellerhase <[email protected]> Date: Thu Nov 27 18:13:43 2025 +0100 Add expression test commit 8576e6b2c25eeb08ab988cea0f85a21132362a56 Author: schnellerhase <[email protected]> Date: Thu Nov 27 18:13:30 2025 +0100 Add expression tensor size computations commit b146cfa0b2c912da060412fbdafb96418d733038 Author: schnellerhase <[email protected]> Date: Thu Nov 27 18:11:05 2025 +0100 Fix expressions template commit 0761b7089b46566187456f83fd37751a6e965ed7 Author: schnellerhase <[email protected]> Date: Thu Nov 27 17:25:31 2025 +0100 remove in pwd commit 818267a4f538d0eeab1afb54274b2580d2dbbaa0 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu Nov 27 16:24:12 2025 +0000 Bump actions/checkout from 5 to 6 (#799) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 9ed41a1b3d25c043da054175b3e4ae90d0e3b1d7 Author: schnellerhase <[email protected]> Date: Thu Nov 27 17:12:17 2025 +0100 Parametrize over scalar type commit 2942ce75a4a522de8a8a58d34db63352ffdad576 Author: Paul T. Kühner <[email protected]> Date: Thu Nov 27 16:41:17 2025 +0100 Fix: cmd-line test (#800) * Fix: cmd-line test * Fix: ctest parallel level * mpich? * Not explicitly * 🧙 @michalhabera commit e0fc38518ef5d677d3cc6f91b296d733c80f9c96 Author: schnellerhase <[email protected]> Date: Thu Nov 27 16:00:59 2025 +0100 Fix no coordinate element case commit 67c1522b2030f9691a37bf32a068e89ca2b125a1 Author: schnellerhase <[email protected]> Date: Thu Nov 27 15:55:02 2025 +0100 Fix remaining shape computations commit 6233d19f6556b5d230d33034c4b15f1a99a7a587 Author: schnellerhase <[email protected]> Date: Thu Nov 27 15:52:18 2025 +0100 Introduce number_coordinate_dofs to CommonExpressionIR commit e02c4af654fbb757934a0a98dd0c10852e55e360 Author: schnellerhase <[email protected]> Date: Thu Nov 27 15:08:19 2025 +0100 Linear form + coefficient kernel commit be5f6b54e0d72b9efa99ccf512a68abbcb0332ee Author: schnellerhase <[email protected]> Date: Thu Nov 27 15:08:09 2025 +0100 n_coeff computation commit 5b9253af53c9f73dfe06b7c936a6e7d853b4a0ee Author: schnellerhase <[email protected]> Date: Thu Nov 27 14:22:18 2025 +0100 Add array creation by (full) scalar value commit 09a0576abe31dd656adb1c1c0817f2c8e92d848b Author: schnellerhase <[email protected]> Date: Thu Nov 27 14:03:42 2025 +0100 Fix n_const computation commit f7d308bdb47730247de463f234b969f138759498 Author: schnellerhase <[email protected]> Date: Thu Nov 27 13:53:44 2025 +0100 Add custom_data input commit 655d92dd757b25178e182d0fb79e8ad0e6720b7d Author: schnellerhase <[email protected]> Date: Thu Nov 27 13:49:15 2025 +0100 Commit ufl, not kernel commit f85afdaad30665c53f0f84365f7ae9c875300118 Author: schnellerhase <[email protected]> Date: Thu Nov 27 13:45:10 2025 +0100 Start on unit testing (almost passing) commit bd1d9330f41cb89480973299446b179418c782fe Author: schnellerhase <[email protected]> Date: Wed Nov 26 22:29:09 2025 +0100 Reactivate ruff commit c4aeb22e82063def7f64cc6fb1b9a6c074229538 Author: schnellerhase <[email protected]> Date: Wed Nov 26 22:09:29 2025 +0100 Skip real only demos commit 96eafeee81e9e74da3556da829190cd046753289 Author: schnellerhase <[email protected]> Date: Wed Nov 26 22:01:48 2025 +0100 Make optional commit 1420eb198ccfa0ec7ebaaff8a14a56fbb68d0c3e Author: schnellerhase <[email protected]> Date: Wed Nov 26 21:57:42 2025 +0100 Fix complex commit 1543c5e3ab1172ffe624c17a0cea8ece612ae743 Author: schnellerhase <[email protected]> Date: Wed Nov 26 21:48:21 2025 +0100 parallel test execution commit 4724e1ac5a63f0ec45b11949ef1622948fe1728b Author: schnellerhase <[email protected]> Date: Wed Nov 26 21:43:01 2025 +0100 install numba module commit b98b94514b6b30fd289564b2712b439c13980c9f Author: schnellerhase <[email protected]> Date: Wed Nov 26 21:29:46 2025 +0100 Explicit commit 336332484ca02b36baffb8c752453f7106e33bf9 Author: schnellerhase <[email protected]> Date: Wed Nov 26 21:18:33 2025 +0100 dependency numba commit 5b3c7ad132d843ebdac2f61fcdae780ebc92ece8 Author: schnellerhase <[email protected]> Date: Wed Nov 26 21:04:58 2025 +0100 Get CI up commit d651099a32163a31e94d9d0a969da381fb20f20a Author: schnellerhase <[email protected]> Date: Wed Nov 26 20:45:53 2025 +0100 Test numba standalone commit a2079c37a842b8d544dc4866817aed78f18cb184 Author: schnellerhase <[email protected]> Date: Wed Nov 26 20:41:04 2025 +0100 add __all__ commit 6bacc682e56410155b384042ec2cd26ce477aabb Merge: 1c3e77dc 957c7b41 Author: Paul T. Kühner <[email protected]> Date: Wed Nov 26 20:34:09 2025 +0100 Merge branch 'main' into schnellerhase/copy-chris/languages-3 commit 1c3e77dc959b7dcdcf62756df4f688af52d09968 Author: schnellerhase <[email protected]> Date: Wed Nov 26 20:32:39 2025 +0100 ruff commit 218ce8dfd310b1916ed4392dc0d81917ea0c7dc6 Author: schnellerhase <[email protected]> Date: Wed Nov 26 20:32:28 2025 +0100 drop cpp/ commit 8b73bc3789e1ad8596e38888523df8455b050982 Author: schnellerhase <[email protected]> Date: Wed Nov 26 20:26:07 2025 +0100 Start with numba commit a41f7d7eae0f6c68b0ae5791137982f698911f98 Author: schnellerhase <[email protected]> Date: Wed Nov 26 18:29:04 2025 +0100 [tmp] no ruff commit 2f3c3d5ca99ca84ff5e1d646bc9c8bd0abd835e3 Author: schnellerhase <[email protected]> Date: Wed Nov 26 18:26:21 2025 +0100 [tmp] no mypy commit 9c2ad9d804a6f75dab4cc4fac2114bb3fc32dfa6 Author: schnellerhase <[email protected]> Date: Wed Nov 26 18:03:01 2025 +0100 Fix commit 2134b3640826a80391ee89923dda54e2c508f7ed Merge: aacc715c 250af026 Author: schnellerhase <[email protected]> Date: Wed Nov 26 17:35:05 2025 +0100 Merge branch 'main' into schnellerhase/copy-chris/languages-3 commit 957c7b4154b10c73516e94851c60286c9279cdad Author: Jack S. Hale <[email protected]> Date: Thu Nov 13 16:58:12 2025 +0100 Bump UFCx version and rethink numbering (#798) * Bump UFCx to 0.11.0 * Rethink UFCx version number construction. * Try using #include <stdbool.h> commit 250af0264dabba8414aacde0d1fa73f77d6ed683 Author: Jørgen Schartum Dokken <[email protected]> Date: Mon Nov 10 14:27:29 2025 +0100 Fix regression in integrals with same quadrature (#797) * Add test illustrating issue * Fix overwriting of integral rule for multiple integrands commit f56f9bff35f4d4962f86e8d13c6bf4e480b2d2c2 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Oct 27 22:21:24 2025 +0100 Bump actions/download-artifact from 5 to 6 (#795) Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit e319108d6baf1cb1cc142271ed7ff13d1c2119c1 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Oct 27 22:21:11 2025 +0100 Bump actions/upload-artifact from 4 to 5 (#796) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 54ef0b10aa3869af935fa8d9aa78a0fbcdf45632 Author: Paul T. Kühner <[email protected]> Date: Thu Oct 23 14:21:56 2025 +0200 `AbstractCell` members are now properties (#789) * Adapt to cell members now properties * Change ufl branch * One more * Change UFL branch for dolfinx CI * Adapt demos * Last? * Change ref branch * Apply suggestions from code review commit 930bd1509de4cce8fa36769cc3b7e3c9031021fc Author: Jørgen Schartum Dokken <[email protected]> Date: Tue Oct 21 21:31:44 2025 +0200 Typing fixes (#794) commit 27fcb62394324853f72374fd8581a8e1236f09bd Author: Jørgen Schartum Dokken <[email protected]> Date: Tue Oct 21 20:02:05 2025 +0200 Bump version and reset CI (#793) commit 6ea4f22941dfe278c1308cddefad61aae5fc3b8e Author: Chris Richardson <[email protected]> Date: Mon Oct 13 17:50:52 2025 +0200 Update spack.yml (#791) commit 56e7eaaa8ca0b0c160661dfa2ef96eb13bb35fc7 Author: Jørgen Schartum Dokken <[email protected]> Date: Wed Sep 17 10:29:07 2025 +0200 Diagonal assembly of matrices (#783) * Note quite working for pre-computed factors * Add 'insert_rank` to ensure that we can reset search after one input * Better modifications * Remove indices after getting argument factor * Fix code, only generated code that should really change * Spelling + mypy * Remove visualize * Another visualise * Rename option to part for future extension * Handle linear forms when present in FFCx files when diagonal is passed in * Work in mixed element support * Add mixed element test * Fix mypy * Generalize test a bit * Simplify code for the ufl extract blocks changes * Point to ufl branch * Use zerobaseform instead of 0 * Correct typehint * Ignore type * Switch windows branch * Ruff compliance * Apply suggestions from code review * Revert UFL branches * Last revert commit 3f46df142908f639394d0fe842779154ab1a65cb Author: Jørgen Schartum Dokken <[email protected]> Date: Thu Sep 11 12:23:57 2025 +0200 Ruff formatting (#788) commit 167b834c638ec7a32b6116862d7d468ec9a5a25f Author: Garth N. Wells <[email protected]> Date: Wed Sep 10 07:49:46 2025 +0100 Update Spack CI (#786) commit aead652c6cd3aee703e371d75df213169a697dd4 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Sep 9 03:45:16 2025 +0000 Bump actions/setup-python from 5 to 6 (#784) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 251142443c3ec645aee2ea9d76889bc6460bdffe Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Sep 9 04:44:41 2025 +0100 Bump actions/github-script from 7 to 8 (#785) Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 94261e42adf7e2755a6961ac1349237bc6a9a25b Author: Paul T. Kühner <[email protected]> Date: Thu Sep 4 13:11:42 2025 +0200 Drop Python 3.9 support (#782) * Raise minimal Python to 3.10 * Drop 3.9 from version matrix * Resolve pending 3.9 TODO * Apply safe ruff fixes * Apply unsafe ruff fixes commit f6a7e819f8c9b15ae8175cccef5839e2e381de38 Author: Jørgen Schartum Dokken <[email protected]> Date: Fri Aug 29 10:54:09 2025 +0200 Codim 2 coupling (#731) * Working towards 3D-1D * Add 3D-1D tabulate_tensor_support * Update test * Fix vertex logic * Need to figure out permutation test * Extend to 2D-0D and use updated UFL nomenclature * Revert ridgevectors to edgevectors * MOre ridge->edge * Ridge->edge in docs * Correct docs of ridge jacobian * More reversion * More ridge reversions * And more * More reversions * Various mypy fixes * Revert renaming * Rename _E to _R * Fix docs * Add test * Pass null ptr * Add back lost test * Add docs * Fix various type-hints * Add void ptr to 2D test * Ruff formatting * Add type hinting and standard ridge integral test * Ruff * Fix typo in doc * Fix index name change * Ruff + mypy * Merge with main * Add back newline * Add back newline * Mypy + newline * Add back some type ignores * Split fixme * Minor suggestions --------- Co-authored-by: Joe Dean <[email protected]> Co-authored-by: Garth N. Wells <[email protected]> commit 1a261c061ce9f7babe315110057e2d45be12a8cd Author: Paul T. Kühner <[email protected]> Date: Fri Aug 29 09:11:57 2025 +0200 Fix FFCx swallows all warnings (#781) * Unpin scipy * Adapt to cmake changes * Only serial * Remove suffix * Run pytests with -W error * ufl_domain -> extract_unique_domain * Simplify job * ruff * revert * Expect warning * Custom UFL branch * New license format * Bound setuptools * expect * format * Bound setuptools on all python versions * revert * coverage >= 7.0.0 * Also use branch on windows * Only capture warnings in logger if run standalone * Revert branches --------- Co-authored-by: Jørgen Schartum Dokken <[email protected]> commit c38fec9559dadd514f1cf470664d3306d1471af0 Author: Paul T. Kühner <[email protected]> Date: Fri Aug 29 08:46:11 2025 +0200 Fix warnings triggered from within FFCx (#780) * Unpin scipy * Adapt to cmake changes * Only serial * Remove suffix * Run pytests with -W error * ufl_domain -> extract_unique_domain * Simplify job * ruff * revert * Expect warning * Custom UFL branch * New license format * Bound setuptools * expect * format * Bound setuptools on all python versions * revert * coverage >= 7.0.0 * Also use branch on windows * Revert branches Co-authored-by: Paul T. Kühner <[email protected]> --------- Co-authored-by: Jørgen Schartum Dokken <[email protected]> commit 0a5848704c8dea934a6ce530bd95df338476776a Author: Jørgen Schartum Dokken <[email protected]> Date: Fri Aug 29 08:24:38 2025 +0200 Fix 0D integrals. (#772) * Fix 0D integrals. Reported at: https://fenicsproject.discourse.group/t/block-form-fails-with-1d-mesh-and-hdg-scheme/17866 * Remove breakpoint * Add test * Some ruff formatting * Explaination * Fix test for windows * Remove newline * Ruff --------- Co-authored-by: Garth N. Wells <[email protected]> commit 9dcefc614b4b5f82ced48edc80fcd31f5389a6df Author: Paul T. Kühner <[email protected]> Date: Thu Aug 28 12:42:43 2025 +0200 Unpin scipy (#779) * Unpin scipy * Adapt to cmake changes * Only serial * Remove suffix commit 3e0bae285053abac9e4a2a73c566b3813fabf986 Author: Paul T. Kühner <[email protected]> Date: Fri Aug 22 09:22:10 2025 +0200 Reactivate `mypy`'s `attr-defined` checking (#778) * Remove ignore attr-defined errors * Apply/remove somge ignores commit a19a44fbc6b9c80676fc420edb9834aad51a4cb0 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Aug 20 21:36:17 2025 +0000 Bump actions/download-artifact from 4 to 5 (#775) Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 7e22ce066b741836961e6de963185bb0ad03875e Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Aug 20 22:34:47 2025 +0100 Bump actions/checkout from 4 to 5 (#776) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit a4744c17f7a0d1cb9406cdde1fb5acbeb1552ffd Author: Paul T. Kühner <[email protected]> Date: Wed Aug 20 22:45:34 2025 +0200 Vertex Integrals (#777) * First draft * Tidy test * Parametrize over gdim * Add rank 1 test * Add vertex integral type * Update ffcx/codegeneration/integral_generator.py Co-authored-by: Michal Habera <[email protected]> * Fix tolerances * Combine for all ranks * tuple for geometry * Remove obsolete rank 0 test * Complex tabulation * Skip complex on windows * Apply suggestions from code review Co-authored-by: Jørgen Schartum Dokken <[email protected]> * Simplify numpy type to string * Use vertex count from Basix * Install pyvista * Install networkx * point-source -> vertex-integral * Tidy comment * Ensure discontinous integrands do not compile * Update test/test_jit_forms.py Co-authored-by: Michal Habera <[email protected]> * Update test/test_jit_forms.py Co-authored-by: Michal Habera <[email protected]> * Chnage to atol - rtol not working with allclose(0, eps) situation * Merge tests * Revert * Add merge_group * Add more merge_group events --------- Co-authored-by: Michal Habera <[email protected]> Co-authored-by: Garth N. Wells <[email protected]> Co-authored-by: Jørgen Schartum Dokken <[email protected]> commit 3a7171798e91c014a9973ddfa6b05b169f479288 Author: Jørgen Schartum Dokken <[email protected]> Date: Wed Jul 2 12:38:46 2025 +0200 Fix scipy pinning (#773) commit 4355b270bfb0f0e644791bec85d502c56ac81896 Author: Garth N. Wells <[email protected]> Date: Wed Jul 2 09:39:40 2025 +0100 Pin scioy version due to pyamg issue. (#771) commit 20c64a71a859dced89e8a1de143460079944f448 Author: Paul T. Kühner <[email protected]> Date: Fri Jun 27 12:38:06 2025 +0200 Fix mypy for newly typed ufl (#768) * Disable attr-defined errors * Disable -p * Some fixes * More * Done? * last * Revert * Fix type hints * one more * Update ffcx/naming.py * Revert "Update ffcx/naming.py" This reverts commit 72f374098420aef4d2e09149f720472bd215ab26. commit a5cf441af91206eb175a0725d0b3a197c41000cd Author: Garth N. Wells <[email protected]> Date: Fri Jun 20 21:41:45 2025 +0200 Add rank and shape of constants to UFCx (#767) * Add constant rank and size * mypy update * Add Constant data to ufcx * Updates * Fix for Windows * Undo change * Fix for Windows * Lint * Simplify * Simplification * Fix commit e4fa16cb4349f8b939ab12078224a5cb83b4b08b Author: Michal Habera <[email protected]> Date: Fri Jun 13 12:15:37 2025 +0200 Fix and test for coordinate free expressions (#766) * Add a fix and test for coordinate free expr * Use f-strings, fix mypy commit 2b8a7c6cd0f8414a695ccffac2fa79128d7fe040 Author: Paul T. Kühner <[email protected]> Date: Thu May 1 07:21:19 2025 +0200 Mypy fix (#763) * Fix mypy * ruff commit 712964e45a12b879d6013d2f798f0846522edb59 Author: Jack S. Hale <[email protected]> Date: Wed Apr 30 09:56:29 2025 +0200 Bump version. (#761) commit 1ae63e92630936147dbb2169a088c625faff3cef Author: Paul T. Kühner <[email protected]> Date: Sat Apr 5 10:51:50 2025 +0200 Improve `mypy` checking (#757) * Add py.typed * Add package flag to mypy check * Activate 'warn_unused_ignores' mypy check * Activate 'warn_return_any' mypy check * Activate 'no_implicit_optional' mypy check * Switch to override formulation to allow for partial fixes * Activate 'check_untyped_defs' and 'disallow_untyped_defs' mypy checks on ffcx.* * Adapt to new changes * Extend CI testing to Python 3.13 commit 6cf08829e1bb8ae516a1d0c62e5b7a1e3befc3e7 Author: Jørgen Schartum Dokken <[email protected]> Date: Mon Mar 31 21:16:29 2025 +0200 Start adding some typing and documentation (#751) * Start adding some typing and documentation * Type hints + various improvements and one bugfix * Revert | to typing unions * Fix typing * Add flag * More legacy typesetting * Ruff format * Fixes * Apply suggestions from code review Co-authored-by: Matthew Scroggs <[email protected]> --------- Co-authored-by: Matthew Scroggs <[email protected]> commit bb5bbbf7d26196d7fd993ad7646a6d498a04bce9 Author: Susanne Claus <[email protected]> Date: Tue Mar 18 17:30:45 2025 +0100 fix dolfinx-tests.yml to reference main dolfinx (#758) * fix dolfinx-tests.yml to reference main dolfinx * retrigger checks commit 238a28932685fa707536307a02cbc4acf56dd19d Author: Susanne Claus <[email protected]> Date: Tue Mar 18 15:45:41 2025 +0100 Add void* to tabulate_tensor kernel (#753) * add void* to tabulate_tensor * try to trigger CI * try to trigger CI * run ruff * rename user_data custom_data * add numba functions to obtain empty void* and conversion of numpy array to void* * fix ruff check * add line to remove noqa * expand comment for numba intrinsic function * add test to use a struct in C-function similar to tabulate_tensor using void* * changes to custom data test for CI * specify void* branch for dolfinx test in github actions * trying to set dolfinx refs for ffcx testing for pull request * incorporate review suggestions * add void* argument to test_ds_prisms --------- Co-authored-by: Claus Susanne <[email protected]> Co-authored-by: Matthew Scroggs <[email protected]> commit 27dce3bbca7d19a6b8580296a6a19f724a0080fa Author: Matthew Scroggs <[email protected]> Date: Mon Mar 17 15:09:46 2025 +0000 Make ds integrals on prism/pyramids generate kernels for each facet type (#739) * working on quadrature * working on prism facet integrals * progress towards ds on prisms * store tables by integrand * correct test * update expressions * ruff * mypy * mypy * ufcx_vertex * ruff * ruff * more ruff * don't overwrite cell * remove ufcx_cell_type enum * ruff * use basix cell type throughout rather than converting to/from string * mypy * set() * make demo xfail * handle "vertex" * typing * remove testing ipython embed * fix merge commit 008bd94c9080efb0270df9d96f94fad9651449ef Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Mar 15 15:11:44 2025 +0000 Bump pygraphviz from 1.7 to 1.9 (#752) Bumps [pygraphviz](https://github.com/pygraphviz/pygraphviz) from 1.7 to 1.9. - [Release notes](https://github.com/pygraphviz/pygraphviz/releases) - [Changelog](https://github.com/pygraphviz/pygraphviz/blob/main/RELEASE.rst) - [Commits](https://github.com/pygraphviz/pygraphviz/compare/pygraphviz-1.7...pygraphviz-1.9) --- updated-dependencies: - dependency-name: pygraphviz dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 6aeb62c32c71ee4d0f87e64cb62f848587f6ddce Author: Garth N. Wells <[email protected]> Date: Sat Mar 15 14:56:57 2025 +0000 ruff fixes (#755) commit cbfc0f0ec5d30217e9e9c785f6b960ea53fb00b6 Author: Jørgen Schartum Dokken <[email protected]> Date: Sun Feb 23 21:13:51 2025 +0100 Resolve jacobians from duplicate meshes (#733) * Fix multiple jacobians * add test that currently fails on main * ruff --------- Co-authored-by: Matthew Scroggs <[email protected]> commit c78d7ea9801d5a4a04656ac29601acc71f6f3cf3 Author: Matthew Scroggs <[email protected]> Date: Mon Feb 17 09:03:59 2025 +0000 remove xfail (#748) commit c6aa5cbc8c2360b728c901f1f4e1f04f9ca377b5 Author: Matthew Scroggs <[email protected]> Date: Sat Feb 15 16:40:51 2025 +0000 remove demos with trace elements (#747) commit 985bc5148c47593cb72bcf8c116b21d9ce92418e Author: Garth N. Wells <[email protected]> Date: Fri Feb 14 16:06:38 2025 +0000 Add geometry element hash to `ufcx_expression` (#746) * Work on cmap hash * Add cmap hash for Expression * Remove comments * Clean up * Simplification * Improve readability commit 4d4e10e45d4e2ffd62126a5d45e699f587ceb640 Author: Garth N. Wells <[email protected]> Date: Fri Feb 14 14:12:52 2025 +0000 Add check for coordinate element hash (#745) Co-authored-by: Matthew Scroggs <[email protected]> commit dc608157e86ea4dd9876f3c98ec00ca36c8c9ac4 Author: Matthew Scroggs <[email protected]> Date: Fri Feb 14 13:46:13 2025 +0000 make demo xfail (#744) commit e5f11aa3b4169a08a567180d491c6418cbd33b14 Author: Jørgen Schartum Dokken <[email protected]> Date: Wed Jan 15 13:37:20 2025 +0100 Bump ubuntu and add blas (#741) * Bump ubuntu and add blas * Add lapack * Update ruff formatting * add cron job schedule * Revert matrix strategy commit eb8407b36d22dfbc74a850c786be49c2635633b2 Author: Matthew Scroggs <[email protected]> Date: Fri Dec 20 14:34:53 2024 +0000 get vertex quadrature from basix (#736) * get vertex quadrature from basix * Update ffcx/ir/representation.py correction * Update ffcx/ir/representation.py Co-authored-by: Jørgen Schartum Dokken <[email protected]> * ) * ruff --------- Co-authored-by: Jørgen Schartum Dokken <[email protected]> commit 7164d8cfec00eec4dda0a8752819beeb7c0009dc Author: Jørgen Schartum Dokken <[email protected]> Date: Mon Nov 25 09:37:24 2024 +0100 Fix real return type (#728) commit 712a57d2ed408bdecdbe4dd3ff9c622c6d496eee Author: Jørgen Schartum Dokken <[email protected]> Date: Fri Nov 22 15:41:46 2024 +0100 Add many geometrical quantities to ffcx expression generator. (#725) * Add many geometrical quantities to ffcx expression generator. Fix various errors in the definition of geometry tables * Add some tests and remove expressions that I don't think will be used or is sensible * Rename to match ufl names * Apply suggestions from code review Remove test of facet det J * Ruff formatting * Simplify (#729) --------- Co-authored-by: Michal Habera <[email protected]> commit 3a6eb07ab6936adf496c95985594c2945ca52881 Author: Jørgen Schartum Dokken <[email protected]> Date: Fri Nov 22 15:31:00 2024 +0100 Update windows and mac CI and updates for ruff (#730) * Update pythonapp to check for failing test * Add get-cmake fix * Remove pkg-config installation * Add ruff updates * fix visualize formatting commit 2ad24229c91e2a058ffb9f8bc5f4b9cf81f04ee5 Author: Francesco Ballarin <[email protected]> Date: Sat Nov 2 12:16:47 2024 +0100 Upload to coveralls and docs from CI job running against python 3.12 (#726) commit 0d3b9f818208fb15fec258925119ec3518066dfe Author: Jack S. Hale <[email protected]> Date: Sun Oct 13 07:33:35 2024 +0200 Reenable Windowa test (#724) commit 91ddadb82a19cd182d23cd22e81ee0268330b7ec Author: Jack S. Hale <[email protected]> Date: Sat Oct 12 20:06:45 2024 +0200 Move to pypi trusted publishing (#718) * Move to pypi trusted publishing * Tidy. commit c6428f60edac7a281a794344ab7a12919cbbc974 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Oct 11 15:54:18 2024 +0200 Bump actions/github-script from 6 to 7 (#722) Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit f8bb9a745bc926a417b06918b553caa778c7b93d Author: Jack S. Hale <[email protected]> Date: Fri Oct 11 08:52:16 2024 +0200 Add dependabot config. (#721) commit 6e22c5d0cfdfdcb37e77caf4aabefd98e006715f Author: Jack S. Hale <[email protected]> Date: Thu Oct 10 17:24:20 2024 +0200 Fix dependency versions (#720) * Fix basix dependency version. * And ufl. commit e36cd00f81dd5d160dc91569b90615da83797f64 Author: Jack S. Hale <[email protected]> Date: Thu Oct 10 16:32:34 2024 +0200 Bump version number to 0.10.0 (#719) commit b0f97347d16c0fd54cc8511d814089b808754950 Author: Jørgen Schartum Dokken <[email protected]> Date: Mon Oct 7 12:00:17 2024 +0200 Remove quadrature permutation on element tables of codim-1 (#717) * Do not add quadrature permutations for codim 1 interior facet tables, as the input has a consistent orientation from DOLFINx * Ruff formatting * More ruff commit 8de75ef95f4d3446a2c0248f5d2b2eb2db815e6e Author: Jack S. Hale <[email protected]> Date: Thu Jul 11 16:34:00 2024 +0200 Change to INTERFACE in C17 requirement for ufcx target (#710) commit 3c97c346965813ed2ecb3a80c11ca860dcf5359e Author: Jack S. Hale <[email protected]> Date: Wed Jul 10 20:46:32 2024 +0200 Export required C standard for UFCx header compile. (#708) commit 20f0dbdf1cb97a6a280849536d1b94b959f0e0ca Author: Garth N. Wells <[email protected]> Date: Mon Jun 10 21:21:17 2024 +0100 Update for UFL deprecation (#705) commit 9d1c19bb640b0de4fee65df1b59b3f73107e803f Author: Jack S. Hale <[email protected]> Date: Mon Jun 10 15:51:06 2024 +0200 Disable Windows test. (#704) commit 2a0f480d969cbbeeb9c2b99d0d20a1064a807beb Author: Joe Dean <[email protected]> Date: Thu Jun 6 14:30:52 2024 +0100 Add support for mixed-dimensional kernels (codimension 1) (#675) * Get working without perms * Tidy * Add TODOs * Add TODOs * Check if mixed dim * Permute tables * Ruff * Coeffs * Try with mt * Handle coeffs * Tidy * Ruff * Change to codim * Ruff * Add is_mixed_dim * Tidy * Don't permute facet element * Simplify * Tidy * Use domain * Add comment * Compute reference * Split data * Fix test * Docs * Docs * Remove TODO --------- Co-authored-by: Jørgen Schartum Dokken <[email protected]> commit 95daf8feac968cd46f240fd505d834978011bb27 Author: Garth N. Wells <[email protected]> Date: Wed Jun 5 16:23:05 2024 +0100 Type updates from Basix (#703) * Type fixes * Updates for Basix * Small revert * Small fix commit aacc715c74ee19b36029d58d8b5da6975209229a Author: Chris Richardson <[email protected]> Date: Thu May 30 15:18:38 2024 +0100 Remove wrapper commit 705254185cceba78ab98dfb52a89d21cf005f46c Author: Chris Richardson <[email protected]> Date: Thu May 30 14:55:01 2024 +0100 fixes commit 584d64879b3ecb52a7ee21167c64187c212e0cfe Merge: 018bc9ef d324f380 Author: Chris Richardson <[email protected]> Date: Thu May 30 14:21:28 2024 +0100 Merge branch 'main' into chris/languages-3 commit d324f3808ebb828b71cae4afec76870417b1d0e3 Author: Jørgen Schartum Dokken <[email protected]> Date: Wed May 29 20:56:40 2024 +0200 Remove zero Lexpr check (#701) * Remove zero Lexpr check * Update lnodes.py commit cc703a436a811087ecc6a344782f52cb0765e2ab Author: Jørgen Schartum Dokken <[email protected]> Date: Tue May 28 11:15:49 2024 +0200 Fix access in assert (#700) commit 018bc9efe2560bc5530aa8e8e2536a36cf6861f8 Merge: f3161109 17045ea9 Author: Chris Richardson <[email protected]> Date: Tue May 28 09:38:35 2024 +0100 Merge branch 'main' into chris/languages-3 commit 17045ea9f8c2330bde518976175ceb95b68b7b5d Author: Garth N. Wells <[email protected]> Date: Mon May 27 09:02:22 2024 +0100 Update for DOLFINx CI (#698) commit 86a8cc2db8b4ea1f534f77ec9803d17f5ca50240 Author: Jack S. Hale <[email protected]> Date: Wed May 22 16:51:45 2024 +0200 Add Windows CI (#689) * Whitespace. * Try Windows. * try without graphviz * Refine optional dependencies. * Verbose. * Check pygraphviz exists * Not clear why this fails on Windows. * Update conftest.py * Remove to debug on win32 * Ruff format. * Complex number support is optional part of C11 standard. * Define __restrict for MSVC. * Invert logic * Few notes. * Works, hacky. * Format. * Fix. * Adjust code generation. * Throw NotImplementedError on Windows. * Attempt jit form pass on Windows. * Ruff check fix. * More adjustments to form code gen. * Add proper restrict keyword for MSVC. * Compile in C17 mode. * Make compile args default empty list. * Make sure it enters the cache string. * Don't modify list in place. * Don't link m on windows. * Ruff check fix. * Windows needs type on empty list. * Expected fail on other complex tests. * Throw error later just before compile. * This macro doesn't exist when compiling in C++ mode. * Fix raise. * Fix bug. * Fix test. * Try running demos on Windows. * Try this. * Fixes. * Ruff format. * Use c17. * Ruff format * Disable this error. * Ruff check. * Typo. * Don't see necessity of this. * Tidy. * Make one test use numpy dtypes. * Make sure it works with numpy dtypes. * Try this logic. * Try this logic. * Accepts standard options. * Should work also on Windows. * Not true. * Does support these options, easier to remember. * Also try with clang-cl * Fix. * Update pythonapp.yml * Add replacement for SOABI on Windows. * get_config_vars potentially returns None, typing error. * Use CC environment variable or generic Unix cc symlink. * Type hints for these public facing methods. * Fix mypy errors. * Typo. * Get optional dependencies installed on Linux. * Improve test error messages. * Fix. commit b83e4a87a6ac2816bf324cd5dfc5df086deabc98 Author: Jørgen Schartum Dokken <[email protected]> Date: Tue May 21 13:40:30 2024 +0200 Unify Expression and IntegralIR with a common base (#680) * Unify Expression and IntegralIR with a common base * Add future imports * Update ufc interface * Test with modified dolfinx * Apply suggestions from code review Co-authored-by: Matthew Scroggs <[email protected]> * Remove unused IR * Ruff format * Revert branch --------- Co-authored-by: Matthew Scroggs <[email protected]> commit 27d08965ab8974f4a773ffe49cfe39f65939d686 Author: Garth N. Wells <[email protected]> Date: Sat May 18 16:20:22 2024 +0100 Re-enable mypy checks (#697) commit a0e62567881b3045e21229c7008f378a8d8f8f80 Author: Garth N. Wells <[email protected]> Date: Mon May 13 07:20:17 2024 +0100 Disable Spack self test (#696) Something seems to have changed in Spack. commit f316110903f74fd36438c3554d194a2ca604e80a Author: Chris Richardson <[email protected]> Date: Tue May 7 13:29:56 2024 +0100 Formatting fixes commit 0d4d4b4a9860c65276a19c8a6d0e5ad1391c2e56 Author: Chris Richardson <[email protected]> Date: Tue May 7 13:18:06 2024 +0100 updates commit c29a1f9f11b0b101b265d76b8fc77b7e7e18e6de Merge: 4b3d85cc 210ae0f8 Author: Chris Richardson <[email protected]> Date: Tue May 7 13:06:38 2024 +0100 Merge branch 'main' into chris/languages-3 commit 4b3d85cc70b9b01d3a9bde1a83a0fbbd6b7d6d75 Author: Chris Richardson <[email protected]> Date: Tue May 7 10:00:15 2024 +0100 Add suffix support commit 210ae0f8a73d7c4b41ea64d3ef532b8846597fad Author: Jack S. Hale <[email protected]> Date: Mon May 6 10:11:36 2024 +0200 Break system packages (#695) commit d2b269e1d3e9090d32a2bb8aa38321304af4269c Author: Matthew Scroggs <[email protected]> Date: Fri May 3 12:04:19 2024 +0100 Use UINT64_C(*) instead of *ull (#692) * use UINT64_C * ruff * ruff commit 32320ef1123030431f9a6b9cc013bd161db7a725 Author: Matthew Scroggs <[email protected]> Date: Thu May 2 16:21:09 2024 +0100 Write the Basix hash into generated code (or 0 if the element is not plain C++ Basix element) (#688) * write C++ hash into code, not result of hash() * ruff * remove L * long long? * uint62_t * u * ruff format * add _hash to names * ruff * ULL * ULL -> ull commit 958b5f0a6b6256512a7b574efa93732a68da7f6e Author: Matthew Scroggs <[email protected]> Date: Wed May 1 19:22:22 2024 +0100 Remove ufcx_shape and ufcx_quadrature_rule (#691) * remove ufcx_quadrature_rule * remove ufcx_shape commit 8eb372f3a87bddcbb1c35c5c2100e4691b3b2086 Author: Matthew Scroggs <[email protected]> Date: Wed May 1 15:16:51 2024 +0100 Remove ufcx_function_space (#690) * remove geometry_* from ufcx_function_space * remove now unused info from ir * remove ufcx_function_space (!) * remove ir for function spaces (!) commit f25652a449e2079fca8c53237157d337c402fb5b Author: Jack S. Hale <[email protected]> Date: Tue Apr 30 21:52:37 2024 +0200 Revert "Remove to debug on win32" This reverts commit 5a220bb66894e7cc21291421c6c9b061acd1396f. commit 5a220bb66894e7cc21291421c6c9b061acd1396f Author: Jack S. Hale <[email protected]> Date: Tue Apr 30 21:45:53 2024 +0200 Remove to debug on win32 commit c8ac53a2d90c71aaa4550e5b64d5e09d38b3c51b Author: Chris Richardson <[email protected]> Date: Tue Apr 30 13:56:11 2024 +0100 Add numba commit 620321a4c5545a5389c2091bb9217c096e9144a6 Author: Chris Richardson <[email protected]> Date: Tue Apr 30 12:19:06 2024 +0100 Fixes for ruff commit 77b3f02386cae8c7292f3c673501e650013bdb64 Author: Chris Richardson <[email protected]> Date: Tue Apr 30 12:04:28 2024 +0100 Updates to 'language' support commit 644c09bc61822ffeb723c5a8291c25794092e3ae Author: Matthew Scroggs <[email protected]> Date: Fri Apr 26 17:41:55 2024 +0100 Remove ufcx_dofmap and ufcx_element (#681) * branches * remove element and dofmap * basix main * fstrings * dolfinx main commit b92af3ae08241138536d9dedff5453ed93768dcf Author: Jack S. Hale <[email protected]> Date: Thu Apr 25 17:59:34 2024 +0200 Bump version. (#686) commit 3975ad4dfcec341b3e51149f02530b867180abd4 Author: Jack S. Hale <[email protected]> Date: Thu Apr 25 08:47:47 2024 +0200 Kebab case build-wheels.yml (#685) commit c0fa109566fdf3cfd114c29c95f8fe055f120a5e Author: Matthew Scroggs <[email protected]> Date: Tue Apr 23 08:52:18 2024 +0100 add symmetric to finite element (#684) commit 52598a1bcc28d957c27e86f02daed58abe5b68c4 Author: Jørgen Schartum Dokken <[email protected]> Date: Sun Apr 21 16:21:11 2024 +0200 Merge scoped sessions (#683) commit 0721e0b45b113bcb57a7e16c188a4ed30d63fbc6 Author: Jørgen Schartum Dokken <[email protected]> Date: Tue Apr 16 10:11:39 2024 +0100 Remove unused/unnecessary items from `IntegralIR` (#679) * Remove tons of unused stuff from IR * Format + remove more * More IR clean-up * Move factorization argument closer to where its used commit 708bd53ba69a43fd30d5b8b3750ec350bbaa131d Author: Jørgen Schartum Dokken <[email protected]> Date: Tue Apr 16 07:33:28 2024 +0100 Adding more type hints and remove options when not used (#678) * Adding more type hints * Revert comment indentation * Fix typo and add future import * Modern typing * Simplify quadrature rule extraction * Ruff formatting * Add type hints for lists in analysis * Change quadrature degree=-1 into max estimated polynomial degree * Remove trailing whitespace * Change to actual numpy.dtype for input argument, as dolfinx sends in the numpy type, not a string * remove str formatting * Fix more dtype behavior commit f2d044a358f8ab3c1fa28f47d29e06fc45ff5ccd Author: Jørgen Schartum Dokken <[email protected]> Date: Tue Apr 16 07:30:53 2024 +0100 Add type-hints to naming.py (#677) commit 06957dbc7428256760a52a2a543eaca37a80bebf Author: Jørgen Schartum Dokken <[email protected]> Date: Wed Mar 13 17:51:49 2024 +0100 Fix a bug in Section equality check. (#674) * Fix a bug in Section equality check. Only add definitions of variable if unique. Resolves https://github.com/FEniCS/dolfinx/issues/3102 * Ruff fix * Add test failing on main * Ruff formatting and future annotations * Add back newline * Apply suggestions from code review commit 88871c5642dc3508302896f1bf81f479332145cc Author: Jørgen Schartum Dokken <[email protected]> Date: Fri Mar 1 11:24:58 2024 +0100 Expressions on facets (#672) * Start by handling entity-type of integral based on the dimension of the points sent in * Add in reference normal in geometry tables * Add test for facetnormal expression * Ruf fixes * Add error handling if wrong dimension is sent in for the evaluation points. * General check for facet quantities * Ruff formatting * Update UFCX branch * Update variable name * Point to correct branch * Address comments by Michal * Ruf format * Ruff formatting * Rvert CI branch for DOLFINx prior to merge commit 9b0320a119702eae65ab1a8b9a0997775298a888 Author: Igor Baratta <[email protected]> Date: Tue Feb 20 14:19:05 2024 +0000 Test `numba_ufcx_kernel_signature` (#671) * add numba assembler test * test signatures * minor fix * fix ruff commit 7bc8be738997e7ce68ef0f406eab63c00d467092 Author: Matthew Scroggs <[email protected]> Date: Sat Feb 10 11:24:25 2024 +0000 Remove information about physical cells from elements (#653) * remove information about physical elements from ffc element * branches * update more tests * update demos * reference value shapes * dolfinx branch * Add value shape to function spaces * adding value_shape[dim] to finite element * write value_shape for each gdim into generated code * move value_shape to function spaces * flake * move value shape to functionspace * ruff * fix merge * ruff format * branches commit ef6c390ffef3580788acebd7dde4e3600b873778 Author: Michal Habera <[email protected]> Date: Fri Feb 9 10:33:06 2024 +0100 Add default libm library (#670) Co-authored-by: michalhabera <[email protected]> commit e9abf9e87ce4430eb241350eacb01e7bd9dfa236 Author: Garth N. Wells <[email protected]> Date: Thu Feb 8 09:21:53 2024 +0000 Black formatting and ruff linting (#669) * ruff formatting * Remove config files * Remove flake8 check * Typo fix * Updates * Small updates * Tidy up * Match min required version to min CI version * Remove double brackets * Undo bracket change * Tidy demo
Based on @chrisrichardson's work at
chris/languages-3Introduces an optional
numbabackend forFFCx. In particular the code passes through the sameC-function interface ofufcx.h, and therefore the standard assemblers ofDOLFINxare compatible.Important
This does not introduce a (non-optional) dependency on
numba- code generation is independent of compile.Tested functionally on a simple poisson problem, and generation across all demo files.
Generalises some naming schemes to separate language specific implementation from functional concept.