Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@ jobs:
- name: Upload coverage to Codecov
id: codecov_upload
uses: codecov/codecov-action@v4
continue-on-error: true
if: matrix.python-version == '3.13'
with:
files: ./coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

- name: Generate local coverage badge
if: matrix.python-version == '3.13' && steps.codecov_upload.outcome == 'success'
Expand All @@ -77,7 +77,7 @@ jobs:
name: Update coverage badge
needs: test-portable
runs-on: ubuntu-latest
if: github.event_name == 'push'
if: github.event_name == 'push' && needs.test-portable.result == 'success'
permissions:
contents: write

Expand All @@ -86,11 +86,13 @@ jobs:

- name: Download local coverage badge
uses: actions/download-artifact@v4
continue-on-error: true
with:
name: coverage-badge
path: tmp/coverage-badge

- name: Commit local coverage badge
if: hashFiles('tmp/coverage-badge/coverage.svg') != ''
run: |
cp tmp/coverage-badge/coverage.svg docs/assets/coverage.svg
if ! git diff --quiet -- docs/assets/coverage.svg; then
Expand Down
25 changes: 3 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,34 +60,15 @@ data.to_hdf5("modes.h5")

## Physics

MicroMode solves the source-free frequency-domain Maxwell equations on a
rasterized Yee mode plane,

$$
\nabla\times\mathbf{E}=-i\omega\mu\mathbf{H},
\qquad
\nabla\times\mathbf{H}=i\omega\epsilon\mathbf{E},
$$

with modal fields $\mathbf{E},\mathbf{H}\propto e^{i k_0 n_\mathrm{eff} z}.$
MicroMode solves the source-free frequency-domain Maxwell equations on a rasterized Yee mode plane, $\nabla\times\mathbf{E}=-i\omega\mu\mathbf{H}, \; \nabla\times\mathbf{H}=i\omega\epsilon\mathbf{E},$ with modal fields $\mathbf{E},\mathbf{H}\propto e^{i k_0 n_\mathrm{eff} z}.$

On diagonal material grids this becomes a transverse eigenproblem,

$$
A_\mathrm{diag}
\begin{bmatrix}E_x\\E_y\end{bmatrix}
=
-n_\mathrm{eff}^2
\begin{bmatrix}E_x\\E_y\end{bmatrix}
$$

while full tensor or transformed grids use a first-order tensorial form. The
detailed derivation is in [docs/physics-model.md](docs/physics-model.md), and
the public solver controls are summarized in
[docs/mode-solver-methods.md](docs/mode-solver-methods.md).
the public solver controls are summarized in [docs/mode-solver-methods.md](docs/mode-solver-methods.md).


## Performance
## Solver

MicroMode is designed to make high-performance mode solving available without
requiring users to install external solver stacks. The production backend is a
Expand Down
Loading