{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"meanas","text":"<p><code>meanas</code> is a Python package for finite-difference electromagnetic simulation. It combines:</p> <ul> <li><code>meanas.fdfd</code> for frequency-domain operators, sources, waveguide modes, and SCPML</li> <li><code>meanas.fdtd</code> for Yee-grid timestepping, CPML, energy/flux accounting, and phasor extraction</li> <li><code>meanas.fdmath</code> for the shared discrete operators and derivations underneath both solvers</li> </ul> <p>This documentation is built directly from the package docstrings. The API pages are the source of truth for the mathematical derivations and calling conventions.</p>"},{"location":"#examples-and-api-map","title":"Examples and API Map","text":"<p>For most users, the tracked examples under <code>examples/</code> are the right entry point. They show the intended combinations of tools for solving complete problems.</p> <p>The API pages are better read as a toolbox map and derivation reference:</p> <ul> <li>Use the FDTD API for time-domain stepping, CPML, and phasor extraction.</li> <li>Use the FDFD API for driven frequency-domain solves and sparse operator algebra.</li> <li>Use the Waveguide API for mode solving, port sources, and overlap windows.</li> <li>Use the fdmath API for the lower-level finite-difference operators and the shared discrete derivations underneath both solvers.</li> </ul>"},{"location":"#build-outputs","title":"Build outputs","text":"<p>The docs build generates two HTML views from the same source:</p> <ul> <li>a normal multi-page site</li> <li>a print-oriented combined page under <code>site/print_page/</code></li> </ul> <p>If <code>htmlark</code> is installed, <code>./make_docs.sh</code> also writes a fully inlined <code>site/standalone.html</code>.</p>"},{"location":"api/","title":"API Overview","text":"<p>The package is documented directly from its docstrings. The most useful entry points are:</p> <ul> <li>meanas: top-level package overview</li> <li>eigensolvers: generic eigenvalue utilities used by the mode solvers</li> <li>fdfd: frequency-domain operators, sources, PML, solvers, and far-field transforms</li> <li>waveguides: straight, cylindrical, and 3D waveguide mode helpers</li> <li>fdtd: timestepping, CPML, energy/flux helpers, and phasor extraction</li> <li>fdmath: shared discrete operators, vectorization helpers, and derivation background</li> </ul> <p>The waveguide and FDTD pages are the best places to start if you want the mathematical derivations rather than just the callable reference.</p>"},{"location":"api/eigensolvers/","title":"eigensolvers","text":""},{"location":"api/eigensolvers/#meanas.eigensolvers","title":"meanas.eigensolvers","text":"<p>Solvers for eigenvalue / eigenvector problems</p>"},{"location":"api/eigensolvers/#meanas.eigensolvers.power_iteration","title":"power_iteration","text":"<pre><code>power_iteration(\n operator: spmatrix,\n guess_vector: NDArray[complex128] | None = None,\n iterations: int = 20,\n) -> tuple[complex, NDArray[numpy.complex128]]\n</code></pre> <p>Use power iteration to estimate the dominant eigenvector of a matrix.</p> <p>Parameters:</p> Name Type Description Default <code>operator</code> <code>spmatrix</code> <p>Matrix to analyze.</p> required <code>guess_vector</code> <code>NDArray[complex128] | None</code> <p>Starting point for the eigenvector. Default is a randomly chosen vector.</p> <code>None</code> <code>iterations</code> <code>int</code> <p>Number of iterations to perform. Default 20.</p> <code>20</code> <p>Returns:</p> Type Description <code>tuple[complex, NDArray[complex128]]</code> <p>(Largest-magnitude eigenvalue, Corresponding eigenvector estimate)</p>"},{"location":"api/eigensolvers/#meanas.eigensolvers.rayleigh_quotient_iteration","title":"rayleigh_quotient_iteration","text":"<pre><code>rayleigh_quotient_iteration(\noperator:spmatrix|LinearOperator,\nguess_v