5211 lines
179 KiB
HTML
5211 lines
179 KiB
HTML
|
|
|
|||
|
|
<!doctype html>
|
|||
|
|
<html lang="en" class="no-js">
|
|||
|
|
<head>
|
|||
|
|
|
|||
|
|
<meta charset="utf-8">
|
|||
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|||
|
|
|
|||
|
|
<meta name="description" content="Electromagnetic simulation tools">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<link rel="canonical" href="https://mpxd.net/docs/meanas/api/fdfd/">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<link rel="prev" href="../eigensolvers/">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<link rel="next" href="../waveguides/">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<link rel="icon" href="../../assets/images/favicon.png">
|
|||
|
|
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<title>fdfd - meanas</title>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<link rel="stylesheet" href="../../assets/stylesheets/main.484c7ddc.min.css">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<link rel="stylesheet" href="../../css/print-site.css">
|
|||
|
|
|
|||
|
|
<link rel="stylesheet" href="../../css/print-site-material.css">
|
|||
|
|
|
|||
|
|
<link rel="stylesheet" href="../../assets/_mkdocstrings.css">
|
|||
|
|
|
|||
|
|
<link rel="stylesheet" href="../../stylesheets/extra.css">
|
|||
|
|
|
|||
|
|
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</head>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<body dir="ltr">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|||
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|||
|
|
<label class="md-overlay" for="__drawer"></label>
|
|||
|
|
<div data-md-component="skip">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#fdfd" class="md-skip">
|
|||
|
|
Skip to content
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
<div data-md-component="announce">
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<header class="md-header md-header--shadow" data-md-component="header">
|
|||
|
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|||
|
|
<a href="../.." title="meanas" class="md-header__button md-logo" aria-label="meanas" data-md-component="logo">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|||
|
|
</label>
|
|||
|
|
<div class="md-header__title" data-md-component="header-title">
|
|||
|
|
<div class="md-header__ellipsis">
|
|||
|
|
<div class="md-header__topic">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
meanas
|
|||
|
|
</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
fdfd
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<label class="md-header__button md-icon" for="__search">
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|||
|
|
</label>
|
|||
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|||
|
|
<label class="md-search__overlay" for="__search"></label>
|
|||
|
|
<div class="md-search__inner" role="search">
|
|||
|
|
<form class="md-search__form" name="search">
|
|||
|
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|||
|
|
<label class="md-search__icon md-icon" for="__search">
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|||
|
|
</label>
|
|||
|
|
<nav class="md-search__options" aria-label="Search">
|
|||
|
|
|
|||
|
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|||
|
|
</button>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</form>
|
|||
|
|
<div class="md-search__output">
|
|||
|
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|||
|
|
<div class="md-search-result" data-md-component="search-result">
|
|||
|
|
<div class="md-search-result__meta">
|
|||
|
|
Initializing search
|
|||
|
|
</div>
|
|||
|
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="md-header__source">
|
|||
|
|
<a href="https://mpxd.net/code/jan/meanas" title="Go to repository" class="md-source" data-md-component="source">
|
|||
|
|
<div class="md-source__icon md-icon">
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
|
|||
|
|
</div>
|
|||
|
|
<div class="md-source__repository">
|
|||
|
|
meanas
|
|||
|
|
</div>
|
|||
|
|
</a>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</header>
|
|||
|
|
|
|||
|
|
<div class="md-container" data-md-component="container">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<main class="md-main" data-md-component="main">
|
|||
|
|
<div class="md-main__inner md-grid">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|||
|
|
<div class="md-sidebar__scrollwrap">
|
|||
|
|
<div class="md-sidebar__inner">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|||
|
|
<label class="md-nav__title" for="__drawer">
|
|||
|
|
<a href="../.." title="meanas" class="md-nav__button md-logo" aria-label="meanas" data-md-component="logo">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
meanas
|
|||
|
|
</label>
|
|||
|
|
|
|||
|
|
<div class="md-nav__source">
|
|||
|
|
<a href="https://mpxd.net/code/jan/meanas" title="Go to repository" class="md-source" data-md-component="source">
|
|||
|
|
<div class="md-source__icon md-icon">
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
|
|||
|
|
</div>
|
|||
|
|
<div class="md-source__repository">
|
|||
|
|
meanas
|
|||
|
|
</div>
|
|||
|
|
</a>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="../.." class="md-nav__link">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
Home
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="md-nav__link md-nav__container">
|
|||
|
|
<a href="../" class="md-nav__link ">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
API
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
|
|||
|
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
</label>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
|
|||
|
|
<label class="md-nav__title" for="__nav_2">
|
|||
|
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
API
|
|||
|
|
|
|||
|
|
|
|||
|
|
</label>
|
|||
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="../meanas/" class="md-nav__link">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
meanas
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="../eigensolvers/" class="md-nav__link">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
eigensolvers
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<li class="md-nav__item md-nav__item--active">
|
|||
|
|
|
|||
|
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
fdfd
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
</label>
|
|||
|
|
|
|||
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
fdfd
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<label class="md-nav__title" for="__toc">
|
|||
|
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
Table of contents
|
|||
|
|
</label>
|
|||
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> fdfd
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#core-operator-layers" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
Core operator layers
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> functional
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" functional">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.e_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.eh_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> eh_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.e2h" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e2h
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.m2j" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> m2j
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.e_tfsf_source" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_tfsf_source
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.poynting_e_cross_h" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> poynting_e_cross_h
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> operators
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" operators">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e_full_preconditioners" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_full_preconditioners
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.h_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> h_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.eh_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> eh_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e2h" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e2h
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.m2j" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> m2j
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.poynting_e_cross" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> poynting_e_cross
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.poynting_h_cross" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> poynting_h_cross
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e_tfsf_source" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_tfsf_source
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e_boundary_source" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_boundary_source
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.solvers" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> solvers
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" solvers">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.solvers.generic" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> generic
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> scpml
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" scpml">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml.s_function_t" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code> s_function_t
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml.prepare_s_function" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> prepare_s_function
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml.uniform_grid_scpml" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> uniform_grid_scpml
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml.stretch_with_scpml" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> stretch_with_scpml
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.farfield" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> farfield
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" farfield">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.farfield.near_to_farfield" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> near_to_farfield
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.farfield.far_to_nearfield" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> far_to_nearfield
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="../waveguides/" class="md-nav__link">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
waveguides
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="../fdtd/" class="md-nav__link">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
fdtd
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="../fdmath/" class="md-nav__link">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
|
|||
|
|
fdmath
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</a>
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|||
|
|
<div class="md-sidebar__scrollwrap">
|
|||
|
|
<div class="md-sidebar__inner">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<label class="md-nav__title" for="__toc">
|
|||
|
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
Table of contents
|
|||
|
|
</label>
|
|||
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> fdfd
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#core-operator-layers" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
Core operator layers
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> functional
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" functional">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.e_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.eh_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> eh_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.e2h" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e2h
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.m2j" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> m2j
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.e_tfsf_source" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_tfsf_source
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.functional.poynting_e_cross_h" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> poynting_e_cross_h
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> operators
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" operators">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e_full_preconditioners" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_full_preconditioners
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.h_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> h_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.eh_full" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> eh_full
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e2h" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e2h
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.m2j" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> m2j
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.poynting_e_cross" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> poynting_e_cross
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.poynting_h_cross" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> poynting_h_cross
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e_tfsf_source" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_tfsf_source
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.operators.e_boundary_source" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> e_boundary_source
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.solvers" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> solvers
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" solvers">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.solvers.generic" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> generic
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> scpml
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" scpml">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml.s_function_t" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code> s_function_t
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml.prepare_s_function" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> prepare_s_function
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml.uniform_grid_scpml" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> uniform_grid_scpml
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.scpml.stretch_with_scpml" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> stretch_with_scpml
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.farfield" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> farfield
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
<nav class="md-nav" aria-label=" farfield">
|
|||
|
|
<ul class="md-nav__list">
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.farfield.near_to_farfield" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> near_to_farfield
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
<li class="md-nav__item">
|
|||
|
|
<a href="#meanas.fdfd.farfield.far_to_nearfield" class="md-nav__link">
|
|||
|
|
<span class="md-ellipsis">
|
|||
|
|
|
|||
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> far_to_nearfield
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
</li>
|
|||
|
|
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
</nav>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="md-content" data-md-component="content">
|
|||
|
|
|
|||
|
|
<article class="md-content__inner md-typeset">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h1 id="fdfd">fdfd<a class="headerlink" href="#fdfd" title="Permanent link">¶</a></h1>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-module">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h2 id="meanas.fdfd" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">meanas.fdfd</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd" class="headerlink" title="Permanent link">¶</a></h2>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents first">
|
|||
|
|
|
|||
|
|
<p>Tools for finite difference frequency-domain (FDFD) simulations and calculations.</p>
|
|||
|
|
<p>These mostly involve picking a single frequency, then setting up and solving a
|
|||
|
|
matrix equation (Ax=b) or eigenvalue problem.</p>
|
|||
|
|
<p>Submodules:</p>
|
|||
|
|
<ul>
|
|||
|
|
<li><code>operators</code>, <code>functional</code>: General FDFD problem setup.</li>
|
|||
|
|
<li><code>solvers</code>: Solver interface and reference implementation.</li>
|
|||
|
|
<li><code>scpml</code>: Stretched-coordinate perfectly matched layer (SCPML) boundary conditions.</li>
|
|||
|
|
<li><code>waveguide_2d</code>: Operators and mode-solver for waveguides with constant cross-section.</li>
|
|||
|
|
<li><code>waveguide_3d</code>: Functions for transforming <code>waveguide_2d</code> results into 3D,
|
|||
|
|
including mode-source and overlap-window construction.</li>
|
|||
|
|
<li><code>farfield</code>, <code>bloch</code>, <code>eme</code>: specialized helper modules for near/far transforms,
|
|||
|
|
Bloch-periodic problems, and eigenmode expansion.</li>
|
|||
|
|
</ul>
|
|||
|
|
<p>================================================================</p>
|
|||
|
|
<p>From the "Frequency domain" section of <code>meanas.fdmath</code>, we have</p>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
\begin{aligned}
|
|||
|
|
\tilde{E}_{l, \vec{r}} &= \tilde{E}_{\vec{r}} e^{-\imath \omega l \Delta_t} \\
|
|||
|
|
\tilde{H}_{l - \frac{1}{2}, \vec{r} + \frac{1}{2}} &= \tilde{H}_{\vec{r} + \frac{1}{2}} e^{-\imath \omega (l - \frac{1}{2}) \Delta_t} \\
|
|||
|
|
\tilde{J}_{l, \vec{r}} &= \tilde{J}_{\vec{r}} e^{-\imath \omega (l - \frac{1}{2}) \Delta_t} \\
|
|||
|
|
\tilde{M}_{l - \frac{1}{2}, \vec{r} + \frac{1}{2}} &= \tilde{M}_{\vec{r} + \frac{1}{2}} e^{-\imath \omega l \Delta_t} \\
|
|||
|
|
\hat{\nabla} \times (\mu^{-1}_{\vec{r} + \frac{1}{2}} \cdot \tilde{\nabla} \times \tilde{E}_{\vec{r}})
|
|||
|
|
-\Omega^2 \epsilon_{\vec{r}} \cdot \tilde{E}_{\vec{r}} &= -\imath \Omega \tilde{J}_{\vec{r}} e^{\imath \omega \Delta_t / 2} \\
|
|||
|
|
\Omega &= 2 \sin(\omega \Delta_t / 2) / \Delta_t
|
|||
|
|
\end{aligned}
|
|||
|
|
\]</div>
|
|||
|
|
<p>resulting in</p>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
\begin{aligned}
|
|||
|
|
\tilde{\partial}_t &\Rightarrow -\imath \Omega e^{-\imath \omega \Delta_t / 2}\\
|
|||
|
|
\hat{\partial}_t &\Rightarrow -\imath \Omega e^{ \imath \omega \Delta_t / 2}\\
|
|||
|
|
\end{aligned}
|
|||
|
|
\]</div>
|
|||
|
|
<p>Maxwell's equations are then</p>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
\begin{aligned}
|
|||
|
|
\tilde{\nabla} \times \tilde{E}_{\vec{r}} &=
|
|||
|
|
\imath \Omega e^{-\imath \omega \Delta_t / 2} \hat{B}_{\vec{r} + \frac{1}{2}}
|
|||
|
|
- \hat{M}_{\vec{r} + \frac{1}{2}} \\
|
|||
|
|
\hat{\nabla} \times \hat{H}_{\vec{r} + \frac{1}{2}} &=
|
|||
|
|
-\imath \Omega e^{ \imath \omega \Delta_t / 2} \tilde{D}_{\vec{r}}
|
|||
|
|
+ \tilde{J}_{\vec{r}} \\
|
|||
|
|
\tilde{\nabla} \cdot \hat{B}_{\vec{r} + \frac{1}{2}} &= 0 \\
|
|||
|
|
\hat{\nabla} \cdot \tilde{D}_{\vec{r}} &= \rho_{\vec{r}}
|
|||
|
|
\end{aligned}
|
|||
|
|
\]</div>
|
|||
|
|
<p>With <span class="arithmatex">\(\Delta_t \to 0\)</span>, this simplifies to</p>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
\begin{aligned}
|
|||
|
|
\tilde{E}_{l, \vec{r}} &\to \tilde{E}_{\vec{r}} \\
|
|||
|
|
\tilde{H}_{l - \frac{1}{2}, \vec{r} + \frac{1}{2}} &\to \tilde{H}_{\vec{r} + \frac{1}{2}} \\
|
|||
|
|
\tilde{J}_{l, \vec{r}} &\to \tilde{J}_{\vec{r}} \\
|
|||
|
|
\tilde{M}_{l - \frac{1}{2}, \vec{r} + \frac{1}{2}} &\to \tilde{M}_{\vec{r} + \frac{1}{2}} \\
|
|||
|
|
\Omega &\to \omega \\
|
|||
|
|
\tilde{\partial}_t &\to -\imath \omega \\
|
|||
|
|
\hat{\partial}_t &\to -\imath \omega \\
|
|||
|
|
\end{aligned}
|
|||
|
|
\]</div>
|
|||
|
|
<p>and then</p>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
\begin{aligned}
|
|||
|
|
\tilde{\nabla} \times \tilde{E}_{\vec{r}} &=
|
|||
|
|
\imath \omega \hat{B}_{\vec{r} + \frac{1}{2}}
|
|||
|
|
- \hat{M}_{\vec{r} + \frac{1}{2}} \\
|
|||
|
|
\hat{\nabla} \times \hat{H}_{\vec{r} + \frac{1}{2}} &=
|
|||
|
|
-\imath \omega \tilde{D}_{\vec{r}}
|
|||
|
|
+ \tilde{J}_{\vec{r}} \\
|
|||
|
|
\end{aligned}
|
|||
|
|
\]</div>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
\hat{\nabla} \times (\mu^{-1}_{\vec{r} + \frac{1}{2}} \cdot \tilde{\nabla} \times \tilde{E}_{\vec{r}})
|
|||
|
|
-\omega^2 \epsilon_{\vec{r}} \cdot \tilde{E}_{\vec{r}} = -\imath \omega \tilde{J}_{\vec{r}} \\
|
|||
|
|
\]</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-children">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div><h2 id="core-operator-layers">Core operator layers<a class="headerlink" href="#core-operator-layers" title="Permanent link">¶</a></h2>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-module">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h2 id="meanas.fdfd.functional" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">meanas.fdfd.functional</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.functional" class="headerlink" title="Permanent link">¶</a></h2>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents first">
|
|||
|
|
|
|||
|
|
<p>Functional versions of many FDFD operators. These can be useful for performing
|
|||
|
|
FDFD calculations without needing to construct large matrices in memory.</p>
|
|||
|
|
<p>The functions generated here expect <code>cfdfield_t</code> inputs with shape (3, X, Y, Z),
|
|||
|
|
e.g. E = [E_x, E_y, E_z] where each (complex) component has shape (X, Y, Z)</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-children">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.functional.e_full" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">e_full</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.functional.e_full" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">e_full</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">fdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">fdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="p">)</span> <span class="o">-></span> <span class="n">cfdfield_updater_t</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Wave operator for use with E-field. See <code>operators.e_full</code> for details.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Dielectric constant</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" cfdfield_updater_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.cfdfield_updater_t)" href="../fdmath/#meanas.fdmath.types.cfdfield_updater_t">cfdfield_updater_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Function <code>f</code> implementing the wave operator</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" cfdfield_updater_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.cfdfield_updater_t)" href="../fdmath/#meanas.fdmath.types.cfdfield_updater_t">cfdfield_updater_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p><code>f(E)</code> -> <code>-i * omega * J</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.functional.eh_full" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">eh_full</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.functional.eh_full" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">eh_full</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">fdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">fdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="p">)</span> <span class="o">-></span> <span class="n">Callable</span><span class="p">[</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="p">[</span><span class="n">cfdfield</span><span class="p">,</span> <span class="n">cfdfield</span><span class="p">],</span> <span class="nb">tuple</span><span class="p">[</span><span class="n">cfdfield_t</span><span class="p">,</span> <span class="n">cfdfield_t</span><span class="p">]</span>
|
|||
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="p">]</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Wave operator for full (both E and H) field representation.
|
|||
|
|
See <code>operators.eh_full</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Dielectric constant</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="collections.abc.Callable">Callable</span>[[<a class="autorefs autorefs-internal" title=" cfdfield (meanas.fdmath.cfdfield)" href="../fdmath/#meanas.fdmath.types.cfdfield">cfdfield</a>, <a class="autorefs autorefs-internal" title=" cfdfield (meanas.fdmath.cfdfield)" href="../fdmath/#meanas.fdmath.types.cfdfield">cfdfield</a>], <span title="tuple">tuple</span>[<span title="meanas.fdmath.cfdfield_t">cfdfield_t</span>, <span title="meanas.fdmath.cfdfield_t">cfdfield_t</span>]]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Function <code>f</code> implementing the wave operator</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="collections.abc.Callable">Callable</span>[[<a class="autorefs autorefs-internal" title=" cfdfield (meanas.fdmath.cfdfield)" href="../fdmath/#meanas.fdmath.types.cfdfield">cfdfield</a>, <a class="autorefs autorefs-internal" title=" cfdfield (meanas.fdmath.cfdfield)" href="../fdmath/#meanas.fdmath.types.cfdfield">cfdfield</a>], <span title="tuple">tuple</span>[<span title="meanas.fdmath.cfdfield_t">cfdfield_t</span>, <span title="meanas.fdmath.cfdfield_t">cfdfield_t</span>]]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p><code>f(E, H)</code> -> <code>(J, -M)</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.functional.e2h" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">e2h</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.functional.e2h" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">e2h</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">fdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="p">)</span> <span class="o">-></span> <span class="n">cfdfield_updater_t</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Utility operator for converting the <code>E</code> field into the <code>H</code> field.
|
|||
|
|
For use with <code>e_full</code> -- assumes that there is no magnetic current <code>M</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" cfdfield_updater_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.cfdfield_updater_t)" href="../fdmath/#meanas.fdmath.types.cfdfield_updater_t">cfdfield_updater_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Function <code>f</code> for converting <code>E</code> to <code>H</code>,</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" cfdfield_updater_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.cfdfield_updater_t)" href="../fdmath/#meanas.fdmath.types.cfdfield_updater_t">cfdfield_updater_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p><code>f(E)</code> -> <code>H</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.functional.m2j" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">m2j</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.functional.m2j" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">m2j</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">fdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="p">)</span> <span class="o">-></span> <span class="n">cfdfield_updater_t</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Utility operator for converting magnetic current <code>M</code> distribution
|
|||
|
|
into equivalent electric current distribution <code>J</code>.
|
|||
|
|
For use with e.g. <code>e_full</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" cfdfield_updater_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.cfdfield_updater_t)" href="../fdmath/#meanas.fdmath.types.cfdfield_updater_t">cfdfield_updater_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Function <code>f</code> for converting <code>M</code> to <code>J</code>,</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" cfdfield_updater_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.cfdfield_updater_t)" href="../fdmath/#meanas.fdmath.types.cfdfield_updater_t">cfdfield_updater_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p><code>f(M)</code> -> <code>J</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.functional.e_tfsf_source" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">e_tfsf_source</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.functional.e_tfsf_source" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">e_tfsf_source</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">TF_region</span><span class="p">:</span> <span class="n">fdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">fdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">fdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="p">)</span> <span class="o">-></span> <span class="n">cfdfield_updater_t</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Operator that turns an E-field distribution into a total-field/scattered-field
|
|||
|
|
(TFSF) source.</p>
|
|||
|
|
<p>If <code>A</code> is the full wave operator from <code>e_full(...)</code> and <code>Q</code> is the diagonal
|
|||
|
|
mask selecting the total-field region, then the TFSF source is the commutator</p>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
\frac{A Q - Q A}{-i \omega} E.
|
|||
|
|
\]</div>
|
|||
|
|
<p>This vanishes in the interior of the total-field and scattered-field regions
|
|||
|
|
and is supported only at their shared boundary, where the mask discontinuity
|
|||
|
|
makes <code>A</code> and <code>Q</code> fail to commute. The returned current is therefore the
|
|||
|
|
distributed source needed to inject the desired total field without also
|
|||
|
|
forcing the scattered-field region.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>TF_region</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>mask which is set to 1 in the total-field region, and 0 elsewhere
|
|||
|
|
(i.e. in the scattered-field region).
|
|||
|
|
Should have the same shape as the simulation grid, e.g. <code>epsilon[0].shape</code>.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Dielectric constant distribution</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" fdfield (meanas.fdmath.fdfield)" href="../fdmath/#meanas.fdmath.types.fdfield">fdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" cfdfield_updater_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.cfdfield_updater_t)" href="../fdmath/#meanas.fdmath.types.cfdfield_updater_t">cfdfield_updater_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Function <code>f</code> which takes an E field and returns a current distribution,</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" cfdfield_updater_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.cfdfield_updater_t)" href="../fdmath/#meanas.fdmath.types.cfdfield_updater_t">cfdfield_updater_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p><code>f(E)</code> -> <code>J</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.functional.poynting_e_cross_h" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">poynting_e_cross_h</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.functional.poynting_e_cross_h" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">poynting_e_cross_h</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="p">)</span> <span class="o">-></span> <span class="n">Callable</span><span class="p">[[</span><span class="n">cfdfield</span><span class="p">,</span> <span class="n">cfdfield</span><span class="p">],</span> <span class="n">cfdfield_t</span><span class="p">]</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Generates a function that takes the single-frequency <code>E</code> and <code>H</code> fields
|
|||
|
|
and calculates the cross product <code>E</code> x <code>H</code> = <span class="arithmatex">\(E \times H\)</span> as required
|
|||
|
|
for the Poynting vector, <span class="arithmatex">\(S = E \times H\)</span>.</p>
|
|||
|
|
<p>On the Yee grid, the electric and magnetic components are not stored at the
|
|||
|
|
same locations. This helper therefore applies the same one-cell electric-field
|
|||
|
|
shifts used by the sparse <code>operators.poynting_e_cross(...)</code> construction so
|
|||
|
|
that the discrete cross product matches the face-centered energy flux used in
|
|||
|
|
<code>meanas.fdtd.energy.poynting(...)</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<details class="note" open>
|
|||
|
|
<summary>Note</summary>
|
|||
|
|
<p>This function also shifts the input <code>E</code> field by one cell as required
|
|||
|
|
for computing the Poynting cross product (see <code>meanas.fdfd</code> module docs).</p>
|
|||
|
|
</details>
|
|||
|
|
|
|||
|
|
<details class="note" open>
|
|||
|
|
<summary>Note</summary>
|
|||
|
|
<p>If <code>E</code> and <code>H</code> are peak amplitudes as assumed elsewhere in this code,
|
|||
|
|
the time-average of the poynting vector is <code><S> = Re(S)/2 = Re(E x H*) / 2</code>.
|
|||
|
|
The factor of <code>1/2</code> can be omitted if root-mean-square quantities are used
|
|||
|
|
instead.</p>
|
|||
|
|
</details>
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="collections.abc.Callable">Callable</span>[[<a class="autorefs autorefs-internal" title=" cfdfield (meanas.fdmath.cfdfield)" href="../fdmath/#meanas.fdmath.types.cfdfield">cfdfield</a>, <a class="autorefs autorefs-internal" title=" cfdfield (meanas.fdmath.cfdfield)" href="../fdmath/#meanas.fdmath.types.cfdfield">cfdfield</a>], <span title="meanas.fdmath.cfdfield_t">cfdfield_t</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Function <code>f</code> that returns the staggered-grid cross product <code>E \times H</code>.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="collections.abc.Callable">Callable</span>[[<a class="autorefs autorefs-internal" title=" cfdfield (meanas.fdmath.cfdfield)" href="../fdmath/#meanas.fdmath.types.cfdfield">cfdfield</a>, <a class="autorefs autorefs-internal" title=" cfdfield (meanas.fdmath.cfdfield)" href="../fdmath/#meanas.fdmath.types.cfdfield">cfdfield</a>], <span title="meanas.fdmath.cfdfield_t">cfdfield_t</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>For time-average power, call it as <code>f(E, H.conj())</code> and take <code>Re(...) / 2</code>.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-module">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h2 id="meanas.fdfd.operators" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">meanas.fdfd.operators</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators" class="headerlink" title="Permanent link">¶</a></h2>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents first">
|
|||
|
|
|
|||
|
|
<p>Sparse matrix operators for use with electromagnetic wave equations.</p>
|
|||
|
|
<p>These functions return sparse-matrix (<code>scipy.sparse.sparray</code>) representations of
|
|||
|
|
a variety of operators, intended for use with E and H fields vectorized using the
|
|||
|
|
<code>meanas.fdmath.vectorization.vec()</code> and <code>meanas.fdmath.vectorization.unvec()</code> functions.</p>
|
|||
|
|
<p>E- and H-field values are defined on a Yee cell; <code>epsilon</code> values should be calculated for
|
|||
|
|
cells centered at each E component (<code>mu</code> at each H component).</p>
|
|||
|
|
<p>Many of these functions require a <code>dxes</code> parameter, of type <code>dx_lists_t</code>; see
|
|||
|
|
the <code>meanas.fdmath.types</code> submodule for details.</p>
|
|||
|
|
<p>The following operators are included:</p>
|
|||
|
|
<ul>
|
|||
|
|
<li>E-only wave operator</li>
|
|||
|
|
<li>H-only wave operator</li>
|
|||
|
|
<li>EH wave operator</li>
|
|||
|
|
<li>Curl for use with E, H fields</li>
|
|||
|
|
<li>E to H conversion</li>
|
|||
|
|
<li>M to J conversion</li>
|
|||
|
|
<li>Poynting cross products</li>
|
|||
|
|
<li>Circular shifts</li>
|
|||
|
|
<li>Discrete derivatives</li>
|
|||
|
|
<li>Averaging operators</li>
|
|||
|
|
<li>Cross product matrices</li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-children">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.e_full" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">e_full</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.e_full" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">e_full</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="n">vcfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">pec</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">pmc</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Wave operator
|
|||
|
|
$$ \nabla \times (\frac{1}{\mu} \nabla \times) - \Omega^2 \epsilon $$</p>
|
|||
|
|
<div class="highlight"><pre><span></span><code>del x (1/mu * del x) - omega**2 * epsilon
|
|||
|
|
</code></pre></div>
|
|||
|
|
<p>for use with the E-field, with wave equation
|
|||
|
|
$$ (\nabla \times (\frac{1}{\mu} \nabla \times) - \Omega^2 \epsilon) E = -\imath \omega J $$</p>
|
|||
|
|
<div class="highlight"><pre><span></span><code>(del x (1/mu * del x) - omega**2 * epsilon) E = -i * omega * J
|
|||
|
|
</code></pre></div>
|
|||
|
|
<p>To make this matrix symmetric, use the preconditioners from <code>e_full_preconditioners()</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | <a class="autorefs autorefs-internal" title=" vcfdfield (meanas.fdmath.vcfdfield)" href="../fdmath/#meanas.fdmath.types.vcfdfield">vcfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized dielectric constant</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized magnetic permeability (default 1 everywhere).</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pec</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized mask specifying PEC cells. Any cells where <code>pec != 0</code> are interpreted
|
|||
|
|
as containing a perfect electrical conductor (PEC).
|
|||
|
|
The PEC is applied per-field-component (i.e. <code>pec.size == epsilon.size</code>)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pmc</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized mask specifying PMC cells. Any cells where <code>pmc != 0</code> are interpreted
|
|||
|
|
as containing a perfect magnetic conductor (PMC).
|
|||
|
|
The PMC is applied per-field-component (i.e. <code>pmc.size == epsilon.size</code>)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix containing the wave operator.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.e_full_preconditioners" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">e_full_preconditioners</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.e_full_preconditioners" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">e_full_preconditioners</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="p">)</span> <span class="o">-></span> <span class="nb">tuple</span><span class="p">[</span><span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span><span class="p">,</span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span><span class="p">]</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Left and right preconditioners <code>(Pl, Pr)</code> for symmetrizing the <code>e_full</code> wave operator.</p>
|
|||
|
|
<p>The preconditioned matrix <code>A_symm = (Pl @ A @ Pr)</code> is complex-symmetric
|
|||
|
|
(non-Hermitian unless there is no loss or PMLs).</p>
|
|||
|
|
<p>The preconditioner matrices are diagonal and complex, with <code>Pr = 1 / Pl</code></p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="tuple">tuple</span>[<span title="scipy.sparse.sparray">sparray</span>, <span title="scipy.sparse.sparray">sparray</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Preconditioner matrices <code>(Pl, Pr)</code>.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.h_full" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">h_full</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.h_full" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">h_full</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">vfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">pec</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">pmc</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Wave operator
|
|||
|
|
$$ \nabla \times (\frac{1}{\epsilon} \nabla \times) - \omega^2 \mu $$</p>
|
|||
|
|
<div class="highlight"><pre><span></span><code>del x (1/epsilon * del x) - omega**2 * mu
|
|||
|
|
</code></pre></div>
|
|||
|
|
<p>for use with the H-field, with wave equation
|
|||
|
|
$$ (\nabla \times (\frac{1}{\epsilon} \nabla \times) - \omega^2 \mu) E = \imath \omega M $$</p>
|
|||
|
|
<div class="highlight"><pre><span></span><code>(del x (1/epsilon * del x) - omega**2 * mu) E = i * omega * M
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized dielectric constant</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pec</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized mask specifying PEC cells. Any cells where <code>pec != 0</code> are interpreted
|
|||
|
|
as containing a perfect electrical conductor (PEC).
|
|||
|
|
The PEC is applied per-field-component (i.e. <code>pec.size == epsilon.size</code>)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pmc</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized mask specifying PMC cells. Any cells where <code>pmc != 0</code> are interpreted
|
|||
|
|
as containing a perfect magnetic conductor (PMC).
|
|||
|
|
The PMC is applied per-field-component (i.e. <code>pmc.size == epsilon.size</code>)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix containing the wave operator.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.eh_full" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">eh_full</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.eh_full" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">eh_full</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">vfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">pec</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">pmc</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Wave operator for <code>[E, H]</code> field representation. This operator implements Maxwell's
|
|||
|
|
equations without cancelling out either E or H. The operator is
|
|||
|
|
$$ \begin{bmatrix}
|
|||
|
|
-\imath \omega \epsilon & \nabla \times \
|
|||
|
|
\nabla \times & \imath \omega \mu
|
|||
|
|
\end{bmatrix} $$</p>
|
|||
|
|
<div class="highlight"><pre><span></span><code>[[-i * omega * epsilon, del x ],
|
|||
|
|
[del x, i * omega * mu]]
|
|||
|
|
</code></pre></div>
|
|||
|
|
<p>for use with a field vector of the form <code>cat(vec(E), vec(H))</code>:
|
|||
|
|
$$ \begin{bmatrix}
|
|||
|
|
-\imath \omega \epsilon & \nabla \times \
|
|||
|
|
\nabla \times & \imath \omega \mu
|
|||
|
|
\end{bmatrix}
|
|||
|
|
\begin{bmatrix} E \
|
|||
|
|
H
|
|||
|
|
\end{bmatrix}
|
|||
|
|
= \begin{bmatrix} J \
|
|||
|
|
-M
|
|||
|
|
\end{bmatrix} $$</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized dielectric constant</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pec</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized mask specifying PEC cells. Any cells where <code>pec != 0</code> are interpreted
|
|||
|
|
as containing a perfect electrical conductor (PEC).
|
|||
|
|
The PEC is applied per-field-component (i.e. <code>pec.size == epsilon.size</code>)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pmc</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized mask specifying PMC cells. Any cells where <code>pmc != 0</code> are interpreted
|
|||
|
|
as containing a perfect magnetic conductor (PMC).
|
|||
|
|
The PMC is applied per-field-component (i.e. <code>pmc.size == epsilon.size</code>)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix containing the wave operator.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.e2h" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">e2h</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.e2h" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">e2h</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">pmc</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Utility operator for converting the E field into the H field.
|
|||
|
|
For use with <code>e_full()</code> -- assumes that there is no magnetic current M.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pmc</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized mask specifying PMC cells. Any cells where <code>pmc != 0</code> are interpreted
|
|||
|
|
as containing a perfect magnetic conductor (PMC).
|
|||
|
|
The PMC is applied per-field-component (i.e. <code>pmc.size == epsilon.size</code>)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix for converting E to H.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.m2j" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">m2j</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.m2j" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">m2j</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Operator for converting a magnetic current M into an electric current J.
|
|||
|
|
For use with eg. <code>e_full()</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized magnetic permeability (default 1 everywhere)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix for converting M to J.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.poynting_e_cross" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">poynting_e_cross</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.poynting_e_cross" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">poynting_e_cross</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">e</span><span class="p">:</span> <span class="n">vcfdfield</span><span class="p">,</span> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Operator for computing the staggered-grid <code>(E \times)</code> part of the Poynting vector.</p>
|
|||
|
|
<p>On the Yee grid the E and H components live on different edges, so the
|
|||
|
|
electric field must be shifted by one cell in the appropriate direction
|
|||
|
|
before forming the discrete cross product. This sparse operator encodes that
|
|||
|
|
shifted cross product directly and is the matrix equivalent of
|
|||
|
|
<code>functional.poynting_e_cross_h(...)</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>e</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vcfdfield (meanas.fdmath.vcfdfield)" href="../fdmath/#meanas.fdmath.types.vcfdfield">vcfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized E-field for the ExH cross product</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix containing the <code>(E \times)</code> part of the staggered Poynting</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>cross product.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.poynting_h_cross" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">poynting_h_cross</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.poynting_h_cross" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">poynting_h_cross</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">h</span><span class="p">:</span> <span class="n">vcfdfield</span><span class="p">,</span> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Operator for computing the staggered-grid <code>(H \times)</code> part of the Poynting vector.</p>
|
|||
|
|
<p>Together with <code>poynting_e_cross(...)</code>, this provides the matrix form of the
|
|||
|
|
Yee-grid cross product used in the flux helpers. The two are related by the
|
|||
|
|
usual antisymmetry of the cross product,</p>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
H \times E = -(E \times H),
|
|||
|
|
\]</div>
|
|||
|
|
<p>once the same staggered field placement is used on both sides.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>h</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vcfdfield (meanas.fdmath.vcfdfield)" href="../fdmath/#meanas.fdmath.types.vcfdfield">vcfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized H-field for the HxE cross product</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix containing the <code>(H \times)</code> part of the staggered Poynting</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>cross product.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.e_tfsf_source" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">e_tfsf_source</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.e_tfsf_source" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">e_tfsf_source</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">TF_region</span><span class="p">:</span> <span class="n">vfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">vfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Operator that turns a desired E-field distribution into a
|
|||
|
|
total-field/scattered-field (TFSF) source.</p>
|
|||
|
|
<p>Let <code>A</code> be the full wave operator from <code>e_full(...)</code>, and let
|
|||
|
|
<code>Q = \mathrm{diag}(TF_region)</code> be the projector onto the total-field region.
|
|||
|
|
Then the TFSF current operator is the commutator</p>
|
|||
|
|
<div class="arithmatex">\[
|
|||
|
|
\frac{A Q - Q A}{-i \omega}.
|
|||
|
|
\]</div>
|
|||
|
|
<p>Inside regions where <code>Q</code> is locally constant, <code>A</code> and <code>Q</code> commute and the
|
|||
|
|
source vanishes. Only cells at the TF/SF boundary contribute nonzero current,
|
|||
|
|
which is exactly the desired distributed source for injecting the chosen
|
|||
|
|
field into the total-field region without directly forcing the
|
|||
|
|
scattered-field region.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>TF_region</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Mask, which is set to 1 inside the total-field region and 0 in the
|
|||
|
|
scattered-field region</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized dielectric constant</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized magnetic permeability (default 1 everywhere).</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix that turns an E-field into a current (J) distribution.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.operators.e_boundary_source" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">e_boundary_source</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.operators.e_boundary_source" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">e_boundary_source</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">mask</span><span class="p">:</span> <span class="n">vfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">vfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">periodic_mask_edges</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="p">)</span> <span class="o">-></span> <span class="n">sparse</span><span class="o">.</span><span class="n">sparray</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Operator that turns an E-field distrubtion into a current (J) distribution
|
|||
|
|
along the edges (external and internal) of the provided mask. This is just an
|
|||
|
|
<code>e_tfsf_source()</code> with an additional masking step.</p>
|
|||
|
|
<p>Equivalently, this helper first constructs the TFSF commutator source for the
|
|||
|
|
full mask and then zeroes out all cells except the mask boundary. The
|
|||
|
|
boundary is defined as the set of cells whose mask value changes under a
|
|||
|
|
one-cell shift in any Cartesian direction. With <code>periodic_mask_edges=False</code>
|
|||
|
|
the shifts mirror at the domain boundary; with <code>True</code> they wrap periodically.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mask</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>The current distribution is generated at the edges of the mask,
|
|||
|
|
i.e. any points where shifting the mask by one cell in any direction
|
|||
|
|
would change its value.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency of the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized dielectric constant</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Vectorized magnetic permeability (default 1 everywhere).</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="scipy.sparse.sparray">sparray</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Sparse matrix that turns an E-field into a current (J) distribution.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-module">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h2 id="meanas.fdfd.solvers" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">meanas.fdfd.solvers</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.solvers" class="headerlink" title="Permanent link">¶</a></h2>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents first">
|
|||
|
|
|
|||
|
|
<p>Solvers and solver interface for FDFD problems.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-children">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.solvers.generic" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">generic</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.solvers.generic" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">generic</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">complex</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">dxes</span><span class="p">:</span> <span class="n">dx_lists_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">J</span><span class="p">:</span> <span class="n">vcfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">epsilon</span><span class="p">:</span> <span class="n">vfdfield</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">mu</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="o">*</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> <span class="n">pec</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> <span class="n">pmc</span><span class="p">:</span> <span class="n">vfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a> <span class="n">adjoint</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a> <span class="n">matrix_solver</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="n">ArrayLike</span><span class="p">]</span> <span class="o">=</span> <span class="n">_scipy_qmr</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a> <span class="n">matrix_solver_opts</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a> <span class="n">E_guess</span><span class="p">:</span> <span class="n">vcfdfield</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a><span class="p">)</span> <span class="o">-></span> <span class="n">vcfdfield_t</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Conjugate gradient FDFD solver using CSR sparse matrices.</p>
|
|||
|
|
<p>All ndarray arguments should be 1D arrays, as returned by <code>meanas.fdmath.vectorization.vec()</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="complex">complex</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Complex frequency to solve at.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" dx_lists_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdmath.dx_lists_t)" href="../fdmath/#meanas.fdmath.types.dx_lists_t">dx_lists_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p><code>[[dx_e, dy_e, dz_e], [dx_h, dy_h, dz_h]]</code> (complex cell sizes) as
|
|||
|
|
discussed in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>J</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vcfdfield (meanas.fdmath.vcfdfield)" href="../fdmath/#meanas.fdmath.types.vcfdfield">vcfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Electric current distribution (at E-field locations)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Dielectric constant distribution (at E-field locations)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>mu</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Magnetic permeability distribution (at H-field locations)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pec</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Perfect electric conductor distribution
|
|||
|
|
(at E-field locations; non-zero value indicates PEC is present)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>pmc</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vfdfield (meanas.fdmath.vfdfield)" href="../fdmath/#meanas.fdmath.types.vfdfield">vfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Perfect magnetic conductor distribution
|
|||
|
|
(at H-field locations; non-zero value indicates PMC is present)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>adjoint</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="bool">bool</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>If true, solves the adjoint problem.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>False</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>matrix_solver</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="collections.abc.Callable">Callable</span>[..., <span title="numpy.typing.ArrayLike">ArrayLike</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Called as <code>matrix_solver(A, b, **matrix_solver_opts) -> x</code>,
|
|||
|
|
where <code>A</code>: <code>scipy.sparse.csr_array</code>;
|
|||
|
|
<code>b</code>: <code>ArrayLike</code>;
|
|||
|
|
<code>x</code>: <code>ArrayLike</code>;
|
|||
|
|
Default is a wrapped version of <code>scipy.sparse.linalg.qmr()</code>
|
|||
|
|
which doesn't return convergence info and logs the residual
|
|||
|
|
every 100 iterations.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="meanas.fdfd.solvers._scipy_qmr">_scipy_qmr</span></code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>matrix_solver_opts</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>] | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Passed as kwargs to <code>matrix_solver(...)</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>E_guess</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" vcfdfield (meanas.fdmath.vcfdfield)" href="../fdmath/#meanas.fdmath.types.vcfdfield">vcfdfield</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Guess at the solution E-field. <code>matrix_solver</code> must accept an
|
|||
|
|
<code>x0</code> argument with the same purpose.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="meanas.fdmath.vcfdfield_t">vcfdfield_t</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>E-field which solves the system.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-module">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h2 id="meanas.fdfd.scpml" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">meanas.fdfd.scpml</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.scpml" class="headerlink" title="Permanent link">¶</a></h2>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents first">
|
|||
|
|
|
|||
|
|
<p>Functions for creating stretched coordinate perfectly matched layer (PML) absorbers.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-children">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-attribute">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.scpml.s_function_t" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">s_function_t</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="doc doc-labels">
|
|||
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.scpml.s_function_t" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="n">s_function_t</span> <span class="o">=</span> <span class="n">Callable</span><span class="p">[</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="p">[</span><span class="n">NDArray</span><span class="p">[</span><span class="n">float64</span><span class="p">]],</span> <span class="n">NDArray</span><span class="p">[</span><span class="n">float64</span><span class="p">]</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="p">]</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Typedef for s-functions, see <code>prepare_s_function()</code></p>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.scpml.prepare_s_function" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">prepare_s_function</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.scpml.prepare_s_function" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">prepare_s_function</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">ln_R</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="o">-</span><span class="mi">16</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">4</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="p">)</span> <span class="o">-></span> <span class="n">s_function_t</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Create an s_function to pass to the SCPML functions. This is used when you would like to
|
|||
|
|
customize the PML parameters.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>ln_R</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Natural logarithm of the desired reflectance</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>-16</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>m</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Polynomial order for the PML (imaginary part increases as distance ** m)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>4</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" s_function_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdfd.scpml.s_function_t)" href="#meanas.fdfd.scpml.s_function_t">s_function_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>An s_function, which takes an ndarray (distances) and returns an ndarray (complex part</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" s_function_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdfd.scpml.s_function_t)" href="#meanas.fdfd.scpml.s_function_t">s_function_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>of the cell width; needs to be divided by <code>sqrt(epilon_effective) * real(omega))</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" s_function_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdfd.scpml.s_function_t)" href="#meanas.fdfd.scpml.s_function_t">s_function_t</a></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>before use.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.scpml.uniform_grid_scpml" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">uniform_grid_scpml</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.scpml.uniform_grid_scpml" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">uniform_grid_scpml</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">shape</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">int</span><span class="p">],</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">thicknesses</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">int</span><span class="p">],</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">epsilon_effective</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">1.0</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">s_function</span><span class="p">:</span> <span class="n">s_function_t</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">[</span><span class="nb">list</span><span class="p">[</span><span class="n">NDArray</span><span class="p">[</span><span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">]]]</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Create dx arrays for a uniform grid with a cell width of 1 and a pml.</p>
|
|||
|
|
<p>If you want something more fine-grained, check out <code>stretch_with_scpml(...)</code>.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>shape</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="collections.abc.Sequence">Sequence</span>[<span title="int">int</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Shape of the grid, including the PMLs (which are 2*thicknesses thick)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>thicknesses</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="collections.abc.Sequence">Sequence</span>[<span title="int">int</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p><code>[th_x, th_y, th_z]</code>
|
|||
|
|
Thickness of the PML in each direction.
|
|||
|
|
Both polarities are added.
|
|||
|
|
Each th_ of pml is applied twice, once on each edge of the grid along the given axis.
|
|||
|
|
<code>th_*</code> may be zero, in which case no pml is added.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency for the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon_effective</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Effective epsilon of the PML. Match this to the material
|
|||
|
|
at the edge of your grid.
|
|||
|
|
Default 1.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>1.0</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>s_function</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" s_function_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdfd.scpml.s_function_t)" href="#meanas.fdfd.scpml.s_function_t">s_function_t</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>created by <code>prepare_s_function(...)</code>, allowing customization of pml parameters.
|
|||
|
|
Default uses <code>prepare_s_function()</code> with no parameters.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="list">list</span>[<span title="list">list</span>[<span title="numpy.typing.NDArray">NDArray</span>[<span title="numpy.float64">float64</span>]]]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Complex cell widths (dx_lists_mut) as discussed in <code>meanas.fdmath.types</code>.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.scpml.stretch_with_scpml" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">stretch_with_scpml</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.scpml.stretch_with_scpml" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">stretch_with_scpml</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">dxes</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">list</span><span class="p">[</span><span class="n">NDArray</span><span class="p">[</span><span class="n">float64</span><span class="p">]]],</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">axis</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">polarity</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">omega</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">epsilon_effective</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">1.0</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">thickness</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">10</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> <span class="n">s_function</span><span class="p">:</span> <span class="n">s_function_t</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">[</span><span class="nb">list</span><span class="p">[</span><span class="n">NDArray</span><span class="p">[</span><span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">]]]</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Stretch dxes to contain a stretched-coordinate PML (SCPML) in one direction along one axis.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dxes</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="list">list</span>[<span title="list">list</span>[<span title="numpy.typing.NDArray">NDArray</span>[<span title="numpy.float64">float64</span>]]]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Grid parameters <code>[dx_e, dx_h]</code> as described in <code>meanas.fdmath.types</code></p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>axis</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="int">int</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>axis to stretch (0=x, 1=y, 2=z)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>polarity</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="int">int</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>direction to stretch (-1 for -ve, +1 for +ve)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>omega</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Angular frequency for the simulation</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>epsilon_effective</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Effective epsilon of the PML. Match this to the material at the
|
|||
|
|
edge of your grid. Default 1.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>1.0</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>thickness</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="int">int</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>number of cells to use for pml (default 10)</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>10</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>s_function</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><a class="autorefs autorefs-internal" title=" s_function_t
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
module-attribute
|
|||
|
|
(meanas.fdfd.scpml.s_function_t)" href="#meanas.fdfd.scpml.s_function_t">s_function_t</a> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Created by <code>prepare_s_function(...)</code>, allowing customization
|
|||
|
|
of pml parameters. Default uses <code>prepare_s_function()</code> with no parameters.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="list">list</span>[<span title="list">list</span>[<span title="numpy.typing.NDArray">NDArray</span>[<span title="numpy.float64">float64</span>]]]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Complex cell widths (dx_lists_mut) as discussed in <code>meanas.fdmath.types</code>.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="list">list</span>[<span title="list">list</span>[<span title="numpy.typing.NDArray">NDArray</span>[<span title="numpy.float64">float64</span>]]]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Multiple calls to this function may be necessary if multiple absorpbing boundaries are needed.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-module">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h2 id="meanas.fdfd.farfield" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">meanas.fdfd.farfield</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.farfield" class="headerlink" title="Permanent link">¶</a></h2>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents first">
|
|||
|
|
|
|||
|
|
<p>Functions for performing near-to-farfield transformation (and the reverse).</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-children">
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.farfield.near_to_farfield" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">near_to_farfield</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.farfield.near_to_farfield" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">near_to_farfield</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">E_near</span><span class="p">:</span> <span class="n">cfdfield_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">H_near</span><span class="p">:</span> <span class="n">cfdfield_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">dx</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">dy</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">padded_size</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">|</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Compute the farfield, i.e. the distribution of the fields after propagation
|
|||
|
|
through several wavelengths of uniform medium.</p>
|
|||
|
|
<p>The input fields should be complex phasors.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>E_near</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="meanas.fdmath.cfdfield_t">cfdfield_t</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>List of 2 ndarrays containing the 2D phasor field slices for the transverse
|
|||
|
|
E fields (e.g. [Ex, Ey] for calculating the farfield toward the z-direction).</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>H_near</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="meanas.fdmath.cfdfield_t">cfdfield_t</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>List of 2 ndarrays containing the 2D phasor field slices for the transverse
|
|||
|
|
H fields (e.g. [Hx, hy] for calculating the farfield towrad the z-direction).</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dx</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Cell size along x-dimension, in units of wavelength.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dy</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Cell size along y-dimension, in units of wavelength.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>padded_size</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="list">list</span>[<span title="int">int</span>] | <span title="int">int</span> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Shape of the output. A single integer <code>n</code> will be expanded to <code>(n, n)</code>.
|
|||
|
|
Powers of 2 are most efficient for FFT computation.
|
|||
|
|
Default is the smallest power of 2 larger than the input, for each axis.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Dict with keys</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>E_far</code>: Normalized E-field farfield; multiply by
|
|||
|
|
(i k exp(-i k r) / (4 pi r)) to get the actual field value.</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>H_far</code>: Normalized H-field farfield; multiply by
|
|||
|
|
(i k exp(-i k r) / (4 pi r)) to get the actual field value.</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>kx</code>, <code>ky</code>: Wavevector values corresponding to the x- and y- axes in E_far and H_far,
|
|||
|
|
normalized to wavelength (dimensionless).</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>dkx</code>, <code>dky</code>: step size for kx and ky, normalized to wavelength.</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>theta</code>: arctan2(ky, kx) corresponding to each (kx, ky).
|
|||
|
|
This is the angle in the x-y plane, counterclockwise from above, starting from +x.</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>phi</code>: arccos(kz / k) corresponding to each (kx, ky).
|
|||
|
|
This is the angle away from +z.</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-object doc-function">
|
|||
|
|
|
|||
|
|
|
|||
|
|
<h3 id="meanas.fdfd.farfield.far_to_nearfield" class="doc doc-heading">
|
|||
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">far_to_nearfield</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="#meanas.fdfd.farfield.far_to_nearfield" class="headerlink" title="Permanent link">¶</a></h3>
|
|||
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">far_to_nearfield</span><span class="p">(</span>
|
|||
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">E_far</span><span class="p">:</span> <span class="n">cfdfield_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">H_far</span><span class="p">:</span> <span class="n">cfdfield_t</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">dkx</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">dky</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">padded_size</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">|</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|||
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span>
|
|||
|
|
</code></pre></div>
|
|||
|
|
|
|||
|
|
<div class="doc doc-contents ">
|
|||
|
|
|
|||
|
|
<p>Compute the farfield, i.e. the distribution of the fields after propagation
|
|||
|
|
through several wavelengths of uniform medium.</p>
|
|||
|
|
<p>The input fields should be complex phasors.</p>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Name</th>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
<th>Default</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>E_far</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="meanas.fdmath.cfdfield_t">cfdfield_t</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>List of 2 ndarrays containing the 2D phasor field slices for the transverse
|
|||
|
|
E fields (e.g. [Ex, Ey] for calculating the nearfield toward the z-direction).
|
|||
|
|
Fields should be normalized so that
|
|||
|
|
E_far = E_far_actual / (i k exp(-i k r) / (4 pi r))</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>H_far</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="meanas.fdmath.cfdfield_t">cfdfield_t</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>List of 2 ndarrays containing the 2D phasor field slices for the transverse
|
|||
|
|
H fields (e.g. [Hx, hy] for calculating the nearfield toward the z-direction).
|
|||
|
|
Fields should be normalized so that
|
|||
|
|
H_far = H_far_actual / (i k exp(-i k r) / (4 pi r))</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dkx</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>kx discretization, in units of wavelength.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>dky</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="float">float</span></code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>ky discretization, in units of wavelength.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<em>required</em>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code>padded_size</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code><span title="list">list</span>[<span title="int">int</span>] | <span title="int">int</span> | None</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Shape of the output. A single integer <code>n</code> will be expanded to <code>(n, n)</code>.
|
|||
|
|
Powers of 2 are most efficient for FFT computation.
|
|||
|
|
Default is the smallest power of 2 larger than the input, for each axis.</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<code>None</code>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|||
|
|
<table>
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th>Type</th>
|
|||
|
|
<th>Description</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<p>Dict with keys</p>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>E</code>: E-field nearfield</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>H</code>: H-field nearfield</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<tr class="doc-section-item">
|
|||
|
|
<td>
|
|||
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|||
|
|
</td>
|
|||
|
|
<td>
|
|||
|
|
<div class="doc-md-description">
|
|||
|
|
<ul>
|
|||
|
|
<li><code>dx</code>, <code>dy</code>: spatial discretization, normalized to wavelength (dimensionless)</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</article>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
|||
|
|
|
|||
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
|
|||
|
|
Back to top
|
|||
|
|
</button>
|
|||
|
|
|
|||
|
|
</main>
|
|||
|
|
|
|||
|
|
<footer class="md-footer">
|
|||
|
|
|
|||
|
|
<div class="md-footer-meta md-typeset">
|
|||
|
|
<div class="md-footer-meta__inner md-grid">
|
|||
|
|
<div class="md-copyright">
|
|||
|
|
|
|||
|
|
|
|||
|
|
Made with
|
|||
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|||
|
|
Material for MkDocs
|
|||
|
|
</a>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</footer>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
<div class="md-dialog" data-md-component="dialog">
|
|||
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.indexes", "navigation.sections", "navigation.top", "content.code.copy", "toc.follow"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<script src="../../assets/javascripts/bundle.79ae519e.min.js"></script>
|
|||
|
|
|
|||
|
|
<script src="../../js/print-site.js"></script>
|
|||
|
|
|
|||
|
|
<script src="../../javascripts/mathjax.js"></script>
|
|||
|
|
|
|||
|
|
<script src="../../assets/vendor/mathjax/startup.js"></script>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</body>
|
|||
|
|
</html>
|