simudo.fem.compat package

Submodules

simudo.fem.compat.ffc_includes module

simudo.fem.compat.ffc_jit_lock module

class simudo.fem.compat.ffc_jit_lock.LockFile(filename)[source]

Bases: object

acquire()[source]
release()[source]
simudo.fem.compat.ffc_jit_lock.new_jit(ufl_object, parameters=None, indirect=False)[source]

simudo.fem.compat.ufl_classes_update module

UFL has a bad design which prevents other modules from defining their own operators/expressions after UFL has finished importing. This is stupid and unnecessary. In particular,

https://github.com/FEniCS/ufl/blob/8cf81755da7f4a4e2ebf4ac8fa4c4f7898a9041e/ufl/algorithms/transformer.py#L42-L61

So yeah we have to recompute the sets of UFL classes, then clear out the cache in ufl.algorithms.transformer.Transformer.

The code also happens to assume that sets will always be iterated in the same order. Is that always true? I don’t know.

simudo.fem.compat.ufl_classes_update.update_ufl_expr_classes()[source]

Module contents