diff --git a/README.md b/README.md index e365c4b..d4acaba 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # opencl_fdfd **opencl_fdfd** is a 3D Finite Difference Frequency Domain (FDFD) -solver implemented in Python and OpenCL. +electromagnetic solver implemented in Python and OpenCL. **Capabilities** * Arbitrary distributions of the following: - * Dielectric constant (epsilon) - * Magnetic permeabilty (mu) - * Perfect electric conductor (PEC) - * Perfect magnetic conductor (PMC) + * Dielectric constant (```epsilon```) + * Magnetic permeabilty (```mu```) + * Perfect electric conductor (```PEC```) + * Perfect magnetic conductor (```PMC```) * Variable-sized rectangular grids * Stretched-coordinate PMLs (complex cell sizes allowed) @@ -16,13 +16,14 @@ Currently, only periodic boundary conditions are included. PEC/PMC boundaries can be implemented by drawing PEC/PMC cells near the edges. Bloch boundary conditions are not included but wouldn't be very hard to add. -The default solver (opencl_fdfd.cg_solver(...)) located in main.py implements -the E-field wave operator directly (ie, as a list of OpenCL instructions -rather than a matrix). Additionally, there is a slower (and slightly more -versatile) solver in csr.py which attempts to solve an arbitrary sparse -matrix in compressed sparse row (CSR) format using the same conjugate gradient -method as the default solver. The CSR solver is significantly slower, but can -be very useful for testing alternative formulations of the FDFD wave equation. +The default solver ```opencl_fdfd.cg_solver(...)``` located in main.py +implements the E-field wave operator directly (ie, as a list of OpenCL +instructions rather than a matrix). Additionally, there is a slower +(and slightly more versatile) solver in ```csr.py``` which attempts to solve +an arbitrary sparse matrix in compressed sparse row (CSR) format using +the same conjugate gradient method as the default solver. The CSR solver +is significantly slower, but can be very useful for testing alternative +formulations of the FDFD electromagnetic wave equation. Currently, this solver only uses a single GPU or other OpenCL accelerator; generalization to multiple GPUs should be pretty straightforward @@ -47,11 +48,12 @@ pip install git+https://mpxd.net/gogs/jan/opencl_fdfd.git@release ## Use -See the documentation for opencl_fdfd.cg_solver(...) -(located in main.py) for details about how to call the solver. +See the documentation for ```opencl_fdfd.cg_solver(...)``` +(located in ```main.py```) for details about how to call the solver. An alternate (slower) FDFD solver and a general gpu-based sparse matrix -solver is available in csr.py . These aren't particularly well-optimized, -and something like [MAGMA](http://icl.cs.utk.edu/magma/index.html) would -probably be a better choice if you absolutely need to solve arbitrary -sparse matrices and can tolerate writing and compiling C/C++ code. +solver is available in ```csr.py```. These aren't particularly +well-optimized, and something like +[MAGMA](http://icl.cs.utk.edu/magma/index.html) would probably be a +better choice if you absolutely need to solve arbitrary sparse matrices +and can tolerate writing and compiling C/C++ code. diff --git a/opencl_fdfd/__init__.py b/opencl_fdfd/__init__.py index 5a16e67..908f567 100644 --- a/opencl_fdfd/__init__.py +++ b/opencl_fdfd/__init__.py @@ -1,9 +1,10 @@ """ opencl_fdfd OpenCL 3D FDFD solver - opencl_fdfd is a 3D Finite Difference Frequency Domain (FDFD) solver implemented in - Python and OpenCL. Its capabilities include: + opencl_fdfd is a 3D Finite Difference Frequency Domain (FDFD) electromagnetic + solver implemented in Python and OpenCL. + Its capabilities include: - Arbitrary distributions of the following: - Dielectric constant (epsilon) - Magnetic permeabilty (mu)