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.