Metadata-Version: 2.1
Name: fenics-ffcx
Version: 0.7.0
Summary: The FEniCSx Form Compiler
Home-page: https://github.com/FEniCS/ffcx
Author: FEniCS Project Contributors
Maintainer: FEniCS Project Steering Council
License: LGPL-3.0-or-later
Project-URL: Homepage, https://fenicsproject.org
Project-URL: Documentation, https://docs.fenicsproject.org
Project-URL: Issues, https://github.com/FEniCS/ffcx/issues
Project-URL: Funding, https://numfocus.org/donate
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: COPYING
License-File: COPYING.LESSER
License-File: AUTHORS
Requires-Dist: cffi
Requires-Dist: fenics-basix <0.8.0,>=0.7.0
Requires-Dist: fenics-ufl <2023.3.0,>=2023.2.0
Requires-Dist: numpy
Requires-Dist: setuptools
Provides-Extra: ci
Requires-Dist: coverage ; extra == 'ci'
Requires-Dist: coveralls ; extra == 'ci'
Requires-Dist: fenics-ffcx[docs] ; extra == 'ci'
Requires-Dist: fenics-ffcx[lint] ; extra == 'ci'
Requires-Dist: fenics-ffcx[optional] ; extra == 'ci'
Requires-Dist: fenics-ffcx[test] ; extra == 'ci'
Requires-Dist: isort ; extra == 'ci'
Requires-Dist: mypy ; extra == 'ci'
Requires-Dist: pytest-cov ; extra == 'ci'
Requires-Dist: pytest-xdist ; extra == 'ci'
Requires-Dist: types-setuptools ; extra == 'ci'
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Provides-Extra: lint
Requires-Dist: flake8 ; extra == 'lint'
Requires-Dist: pydocstyle[toml] ; extra == 'lint'
Provides-Extra: optional
Requires-Dist: pygraphviz ==1.7 ; extra == 'optional'
Provides-Extra: test
Requires-Dist: pytest >=6.0 ; extra == 'test'
Requires-Dist: sympy ; extra == 'test'

# FFCx: The FEniCSx Form Compiler

[![FFCx CI](https://github.com/FEniCS/ffcx/actions/workflows/pythonapp.yml/badge.svg)](https://github.com/FEniCS/ffcx/actions/workflows/pythonapp.yml)
[![Coverage Status](https://coveralls.io/repos/github/FEniCS/ffcx/badge.svg?branch=main)](https://coveralls.io/github/FEniCS/ffcx?branch=main)

FFCx is a new version of the FEniCS Form Compiler. It is being actively
developed and is compatible with DOLFINx.

FFCx is a compiler for finite element variational forms. From a
high-level description of the form in the Unified Form Language (UFL),
it generates efficient low-level C code that can be used to assemble the
corresponding discrete operator (tensor). In particular, a bilinear form
may be assembled into a matrix and a linear form may be assembled into a
vector.  FFCx may be used either from the command line (by invoking the
`ffcx` command) or as a Python module (`import ffcx`).

FFCx is part of the FEniCS Project. For more information, visit
https://www.fenicsproject.org


## Installation

To install FFCx from PyPI:
```
$ pip install fenics-ffcx
```

To install FFCx from the source directory:
```
$ pip install .
```

## Documentation

Documentation can be viewed at https://docs.fenicsproject.org/ffcx/main


## Interface file installation only

FFCx provides the `ufcx.h` interface header for finite element kernels,
used by DOLFINx. `ufcx.h` is installed by FFCx within the Python site
packages, but it is sometimes helpful to install only the header file.
This can be done using `cmake`:
```
$ cmake -B build-dir -S cmake/
$ cmake --build build-dir
$ cmake --install build-dir
```

## License

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU Lesser General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  GNU Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public License
  along with this program. If not, see <https://www.gnu.org/licenses/>.
