Missing bessel functions
- Dominant language
- Python
- Stars
- 192
- Forks
- 45
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 16
Description
We currently do not support `bessel_I` or `bessel_K` functions from ufl.
```python
import ufl
import basix.ufl
c_el = basix.ufl.element("Lagrange", "triangle", 1, shape=(2,))
mesh = ufl.Mesh(c_el)
x = ufl.SpatialCoordinate(mesh)
J = ufl.bessel_K(1, x[0]) * ufl.dx
```
and
```python
import ufl
import basix.ufl
c_el = basix.ufl.element("Lagrange", "triangle", 1, shape=(2,))
mesh = ufl.Mesh(c_el)
x = ufl.SpatialCoordinate(mesh)
J = ufl.bessel_I(1, x[0]) * ufl.dx
```
throws
```bash
root@dokken-XPS-9320:~/shared/adios4dolfinx/tests# python3 -m ffcx dd.py
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/shared/ffcx/ffcx/__main__.py", line 14, in
sys.exit(main())
File "/root/shared/ffcx/ffcx/main.py", line 75, in main
code_h, code_c = compiler.compile_ufl_objects(
File "/root/shared/ffcx/ffcx/compiler.py", line 111, in compile_ufl_objects
code = generate_code(ir, options)
File "/root/shared/ffcx/ffcx/codegeneration/codegeneration.py", line 53, in generate_code
code_integrals = [integral_generator(integral_ir, options) for integral_ir in ir.integrals]
File "/root/shared/ffcx/ffcx/codegeneration/codegeneration.py", line 53, in
code_integrals = [integral_generator(integral_ir, options) for integral_ir in ir.integrals]
File "/root/shared/ffcx/ffcx/codegeneration/C/integrals.py", line 40, in generator
parts = ig.generate()
File "/root/shared/ffcx/ffcx/codegeneration/integral_generator.py", line 164, in generate
all_quadparts += self.generate_quadrature_loop(rule)
File "/root/shared/ffcx/ffcx/codegeneration/integral_generator.py", line 266, in generate_quadrature_loop
definitions, intermediates_0 = self.generate_varying_partition(quadrature_rule)
File "/root/shared/ffcx/ffcx/codegeneration/integral_generator.py", line 309, in generate_varying_partition
return self.generate_partition(arraysymbol, F, "varying", quadrature_rule)
File "/root/shared/ffcx/ffcx/codegeneration/integral_generator.py", line 342, in generate_partition
vexpr = L.ufl_to_lnodes(v, *vops)
File "/root/shared/ffcx/ffcx/codegeneration/lnodes.py", line 1127, in ufl_to_lnodes
raise RuntimeError(f"Missing lookup for expr type {optype}.")
RuntimeError: Missing lookup for expr type .
```
```bash
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/shared/ffcx/ffcx/__main__.py", line 14, in
sys.exit(main())
File "/root/shared/ffcx/ffcx/main.py", line 75, in main
code_h, code_c = compiler.compile_ufl_objects(
File "/root/shared/ffcx/ffcx/compiler.py", line 111, in compile_ufl_objects
code = generate_code(ir, options)
File "/root/shared/ffcx/ffcx/codegeneration/codegeneration.py", line 53, in generate_code
code_integrals = [integral_generator(integral_ir, options) for integral_ir in ir.integrals]
File "/root/shared/ffcx/ffcx/codegeneration/codegeneration.py", line 53, in
code_integrals = [integral_generator(integral_ir, options) for integral_ir in ir.integrals]
File "/root/shared/ffcx/ffcx/codegeneration/C/integrals.py", line 40, in generator
parts = ig.generate()
File "/root/shared/ffcx/ffcx/codegeneration/integral_generator.py", line 164, in generate
all_quadparts += self.generate_quadrature_loop(rule)
File "/root/shared/ffcx/ffcx/codegeneration/integral_generator.py", line 266, in generate_quadrature_loop
definitions, intermediates_0 = self.generate_varying_partition(quadrature_rule)
File "/root/shared/ffcx/ffcx/codegeneration/integral_generator.py", line 309, in generate_varying_partition
return self.generate_partition(arraysymbol, F, "varying", quadrature_rule)
File "/root/shared/ffcx/ffcx/codegeneration/integral_generator.py", line 342, in generate_partition
vexpr = L.ufl_to_lnodes(v, *vops)
File "/root/shared/ffcx/ffcx/codegeneration/lnodes.py", line 1127, in ufl_to_lnodes
raise RuntimeError(f"Missing lookup for expr type {optype}.")
RuntimeError: Missing lookup for expr type
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.