WARNING: Still in development, interface may not be final
Installation:
- First install firedrake. If you want to use things like a HelmhotlzKernel, you'll want to install the complex version. Note this is still in development.
- Inside the firedrake virtual environment, install pytential. To do this, make sure you have pyopencl and pybind11. Then, install pytential starting from step 8.
If you aren't a developer, run:
pip install git+https://github.com/benSepanski/fd2mm
For developers, run:
git clone git+https://github.com/benSepanski/fd2mm pip install -e <path-to-cloned-directory>
- Run
make meshes
. This may take some time. - To prevent having to choose a device each time you use pytential, you may want to set
PYOPENCL_CTX=<device number>
- To run tests, type
make test
.
Resources:
- Firedrake Install Instructions.
- Complex Firedrake install instructions `complex version <https://github.com/firedrakeproject/firedrake/projects/4>_.
- pytential install instructions.
- Source code on github
Note:
- Setup files edited from Andreas' Klockner's meshmode library
- Makefile and requirements formated based on firedrake
To get pyopencl, for me it sufficed to install the following packages (I'm running Ubuntu 18.04 on WSL):
- https://packages.ubuntu.com/bionic/pocl-opencl-icd
- https://packages.ubuntu.com/bionic/ocl-icd-libopencl1
- https://packages.ubuntu.com/bionic/opencl-headers
- Then inside the firedrake venv run
pip install pyopencl[pocl]
. For more detailed instructions, see Pyopencl installation docs