dolfinx.jit

Just-in-time (JIT) compilation using FFCx

Functions

ffcx_jit(ufl_object[, ...])

Compile UFL object with FFCx and CFFI.

get_options([priority_options])

Return a copy of the merged JIT option values for DOLFINx.

mpi_jit_decorator(local_jit, *args, **kwargs)

A decorator for jit compilation.

dolfinx.jit.ffcx_jit(ufl_object, form_compiler_options={}, jit_options={})[source]

Compile UFL object with FFCx and CFFI.

Parameters
  • ufl_object – Object to compile, e.g. ufl.Form

  • form_compiler_options – Options used in FFCx compilation of this form. Run ffcx –help at the commandline to see all available options. Takes priority over all other option values.

  • jit_options – Options used in CFFI JIT compilation of C code generated by FFCx. See python/dolfinx/jit.py for all available options. Takes priority over all other option values.

Returns

(compiled object, module, (header code, implementation code))

Notes

Priority ordering of options controlling DOLFINx JIT compilation from highest to lowest is:

  • jit_options (API)

  • $PWD/dolfinx_jit_options.json (local options)

  • $XDG_CONFIG_HOME/dolfinx/dolfinx_jit_options.json (user options)

  • DOLFINX_DEFAULT_JIT_OPTIONS in dolfinx.jit

Priority ordering of options controlling FFCx from highest to lowest is:

  • form_compiler_optionss (API)

  • $PWD/ffcx_options.json (local options)

  • $XDG_CONFIG_HOME/ffcx/ffcx_options.json (user options)

  • FFCX_DEFAULT_OPTIONS in ffcx.options

$XDG_CONFIG_HOME is ~/.config/ if the environment variable is not set.

The contents of the dolfinx_options.json files are cached on the first call. Subsequent calls to this function use this cache.

Example dolfinx_jit_options.json file:

{ “cffi_extra_compile_args”: [“-O2”, “-march=native” ], “cffi_verbose”: True }

dolfinx.jit.get_options(priority_options: Optional[dict] = None) dict[source]

Return a copy of the merged JIT option values for DOLFINx.

Parameters

priority_options – take priority over all other option values (see notes)

Returns

merged option values

Return type

dict

Notes

See ffcx_jit for user facing documentation.