Comments (7)
Oh, I see. The MathFunction
handler assumes there is only one argument.
from firedrake.
Those PRs have landed and I have updated our UFL fork. I believe this is now fixed.
from firedrake.
We've just hit this too, looks like there are a couple of causes:
- The
ufl.utils.formatting.camel2undercase
function still translatesAtan2 -> atan_2
, so the differentation handler isn't set up to a valid function. - TSFC doesn't set up the correct multifunction handler (it's still called
atan_2
over there: https://github.com/firedrakeproject/tsfc/blob/b378c0879fea5a7cc88cabf9eae6c52b9921c34b/tsfc/ufl2gem.py#L81-L82)
This seems to be a sufficient patch to catch the missing changes:
diff --git a/ufl/utils/formatting.py b/ufl/utils/formatting.py
index d35164be..4df63cd9 100644
--- a/ufl/utils/formatting.py
+++ b/ufl/utils/formatting.py
@@ -11,7 +11,7 @@ def camel2underscore(name):
letters = []
lastlower = False
for i in name:
- thislower = i.islower()
+ thislower = i.islower() or i.isdigit()
if not thislower:
# Don't insert _ between multiple upper case letters
if lastlower:
diff --git a/tsfc/ufl2gem.py b/tsfc/ufl2gem.py
index fc1c760..e283fb1 100644
--- a/tsfc/ufl2gem.py
+++ b/tsfc/ufl2gem.py
@@ -78,7 +78,7 @@ class Mixin(object):
def math_function(self, o, expr):
return MathFunction(o._name, expr)
- def atan_2(self, o, y, x):
+ def atan2(self, o, y, x):
return MathFunction("atan2", y, x)
def bessel_i(self, o, nu, arg):
from firedrake.
I think the TSFC thing is a red herring, because atan2
will get caught by the generic MathFunction
handler on line 78. We should probably delete the atan_2
handler.
from firedrake.
Curious, I needed that fix after making the change in UFL. There's a traceback in g-adopt/g-adopt#22 (comment) showing the result with only the UFL fix. It does seem to make more sense to use the generic handler, however.
from firedrake.
from firedrake.
also firedrakeproject/tsfc#299
from firedrake.
Related Issues (20)
- BUG: Greater error than expected in quadrilateral GLL elements HOT 4
- Compute norm of assembled derivative HOT 5
- "Too many indices for sum factorisation!" for calculating radius on extruded CubedSphereMesh. HOT 1
- INSTALL: ImportError when running firedrake-update on Linux HOT 2
- INSTALL: Linux (Ubuntu 22.04.4 LTS) HOT 12
- Tests for `to_petsc_local_numbering`
- BUG: firedrake-install is now failing with --petsc-int-type=int64 HOT 3
- Buckling problem HOT 2
- Flake8 for demos HOT 2
- Zenodo release
- Labelling of Internal Facets in Mesh Generated with Netgen HOT 3
- Zenodo release request
- Error on interpolation using --petsc-int-type int64 HOT 1
- BUG: Adjoint inconsistency with self-assignment via projection HOT 1
- BUG: Many tests fail with 64-bit indices
- Zenodo release please. HOT 1
- BUG: mesh.locate_cell not returning what is expected for points outside the mesh (--petsc-int-type=int64) HOT 2
- Interpolation on two different meshes doesn't work on parallel
- BUG: restricted mode in Lineareigenproblem for mixed problems.
- BUG: Issue with wrapping Firedrake interpolation to vertex-only mesh in PyTorch
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from firedrake.