comment fixes

release
jan 8 years ago
parent 9198779974
commit efde4c4787

@ -1,14 +1,14 @@
# opencl_fdfd # opencl_fdfd
**opencl_fdfd** is a 3D Finite Difference Frequency Domain (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** **Capabilities**
* Arbitrary distributions of the following: * Arbitrary distributions of the following:
* Dielectric constant (epsilon) * Dielectric constant (```epsilon```)
* Magnetic permeabilty (mu) * Magnetic permeabilty (```mu```)
* Perfect electric conductor (PEC) * Perfect electric conductor (```PEC```)
* Perfect magnetic conductor (PMC) * Perfect magnetic conductor (```PMC```)
* Variable-sized rectangular grids * Variable-sized rectangular grids
* Stretched-coordinate PMLs (complex cell sizes allowed) * 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. 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. 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 default solver ```opencl_fdfd.cg_solver(...)``` located in main.py
the E-field wave operator directly (ie, as a list of OpenCL instructions implements the E-field wave operator directly (ie, as a list of OpenCL
rather than a matrix). Additionally, there is a slower (and slightly more instructions rather than a matrix). Additionally, there is a slower
versatile) solver in csr.py which attempts to solve an arbitrary sparse (and slightly more versatile) solver in ```csr.py``` which attempts to solve
matrix in compressed sparse row (CSR) format using the same conjugate gradient an arbitrary sparse matrix in compressed sparse row (CSR) format using
method as the default solver. The CSR solver is significantly slower, but can the same conjugate gradient method as the default solver. The CSR solver
be very useful for testing alternative formulations of the FDFD wave equation. 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; Currently, this solver only uses a single GPU or other OpenCL accelerator;
generalization to multiple GPUs should be pretty straightforward 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 ## Use
See the documentation for opencl_fdfd.cg_solver(...) See the documentation for ```opencl_fdfd.cg_solver(...)```
(located in main.py) for details about how to call the 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 An alternate (slower) FDFD solver and a general gpu-based sparse matrix
solver is available in csr.py . These aren't particularly well-optimized, solver is available in ```csr.py```. These aren't particularly
and something like [MAGMA](http://icl.cs.utk.edu/magma/index.html) would well-optimized, and something like
probably be a better choice if you absolutely need to solve arbitrary [MAGMA](http://icl.cs.utk.edu/magma/index.html) would probably be a
sparse matrices and can tolerate writing and compiling C/C++ code. better choice if you absolutely need to solve arbitrary sparse matrices
and can tolerate writing and compiling C/C++ code.

@ -1,9 +1,10 @@
""" """
opencl_fdfd OpenCL 3D FDFD solver opencl_fdfd OpenCL 3D FDFD solver
opencl_fdfd is a 3D Finite Difference Frequency Domain (FDFD) solver implemented in opencl_fdfd is a 3D Finite Difference Frequency Domain (FDFD) electromagnetic
Python and OpenCL. Its capabilities include: solver implemented in Python and OpenCL.
Its capabilities include:
- Arbitrary distributions of the following: - Arbitrary distributions of the following:
- Dielectric constant (epsilon) - Dielectric constant (epsilon)
- Magnetic permeabilty (mu) - Magnetic permeabilty (mu)

Loading…
Cancel
Save