readme updates

This commit is contained in:
jan 2020-07-03 13:46:38 -07:00
parent 4b798893bc
commit 2130b015fd

View File

@ -6,10 +6,10 @@ 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)
@ -17,10 +17,10 @@ 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 The default solver `opencl_fdfd.cg_solver(...)` located in main.py
implements the E-field wave operator directly (ie, as a list of OpenCL implements the E-field wave operator directly (ie, as a list of OpenCL
instructions rather than a matrix). Additionally, there is a slower instructions rather than a matrix). Additionally, there is a slower
(and slightly more versatile) solver in ```csr.py``` which attempts to solve (and slightly more versatile) solver in `csr.py` which attempts to solve
an arbitrary sparse matrix in compressed sparse row (CSR) format using an arbitrary sparse matrix in compressed sparse row (CSR) format using
the same conjugate gradient method as the default solver. The CSR solver the same conjugate gradient method as the default solver. The CSR solver
is significantly slower, but can be very useful for testing alternative is significantly slower, but can be very useful for testing alternative
@ -49,14 +49,14 @@ pip install git+https://mpxd.net/code/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.
The FDFD arguments are identical to those in The FDFD arguments are identical to those in
```fdfd_tools.solvers.generic(...)```, and a few solver-specific `meanas.solvers.generic(...)`, and a few solver-specific
arguments are available. arguments are available.
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 solver is available in `csr.py`. These aren't particularly
well-optimized, and something like well-optimized, and something like
[MAGMA](http://icl.cs.utk.edu/magma/index.html) would probably be a [MAGMA](http://icl.cs.utk.edu/magma/index.html) would probably be a
better choice if you absolutely need to solve arbitrary sparse matrices better choice if you absolutely need to solve arbitrary sparse matrices