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.
- 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