Skip to content

Commit 5d80569

Browse files
committed
added LE docs
1 parent 00b1b73 commit 5d80569

File tree

1 file changed

+368
-0
lines changed

1 file changed

+368
-0
lines changed

doc/html/SWtools_ext_LE.html

Lines changed: 368 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,368 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
6+
<meta name="generator" content="pdoc3 0.11.6">
7+
<title>SWtools_ext_LE API documentation</title>
8+
<meta name="description" content="SWtools_ext_LE_v2.py …">
9+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
10+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
11+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
12+
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source > summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible;min-width:max-content}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
13+
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
14+
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
15+
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
16+
<script>window.addEventListener('DOMContentLoaded', () => {
17+
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
18+
hljs.highlightAll();
19+
/* Collapse source docstrings */
20+
setTimeout(() => {
21+
[...document.querySelectorAll('.hljs.language-python > .hljs-string')]
22+
.filter(el => el.innerHTML.length > 200 && ['"""', "'''"].includes(el.innerHTML.substring(0, 3)))
23+
.forEach(el => {
24+
let d = document.createElement('details');
25+
d.classList.add('hljs-string');
26+
d.innerHTML = '<summary>"""</summary>' + el.innerHTML.substring(3);
27+
el.replaceWith(d);
28+
});
29+
}, 100);
30+
})</script>
31+
</head>
32+
<body>
33+
<main>
34+
<article id="content">
35+
<header>
36+
<h1 class="title">Module <code>SWtools_ext_LE</code></h1>
37+
</header>
38+
<section id="section-intro">
39+
<p>SWtools_ext_LE_v2.py</p>
40+
<p>SWtools extension module implementing functions for the linear stability
41+
analysis of generalized nonlinear Schrödinger equations.
42+
The analysis proceeds
43+
by calculating the linearized eigenspectrum (LE), describing small-amplitude
44+
perturbations atop a solitary wave.</p>
45+
<h2 id="note">Note</h2>
46+
<p>This module implements two methods for solving for the LE of genarlized
47+
nonlinear Schrödinger equations with different restictions:</p>
48+
<p>LE_GNSE: this function is tailored towards a GNSE with with generic nonlinear
49+
functional and linear differential operator of second order in the transverse
50+
coordinate.</p>
51+
<p>LE_HONSE: this function is tailored towards a GNSE with cubic nonlinear
52+
functional and linear differential operator including dispersion of orders two,
53+
three and four.</p>
54+
<div class="admonition codeauthor">
55+
<p class="admonition-title">Codeauthor:&ensp;Oliver Melchert <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#101;&#108;&#99;&#104;&#101;&#114;&#116;&#64;&#105;&#113;&#111;&#46;&#117;&#110;&#105;&#45;&#104;&#97;&#110;&#110;&#111;&#118;&#101;&#114;&#46;&#100;&#101;">&#109;&#101;&#108;&#99;&#104;&#101;&#114;&#116;&#64;&#105;&#113;&#111;&#46;&#117;&#110;&#105;&#45;&#104;&#97;&#110;&#110;&#111;&#118;&#101;&#114;&#46;&#100;&#101;</a></p>
56+
</div>
57+
</section>
58+
<section>
59+
</section>
60+
<section>
61+
</section>
62+
<section>
63+
<h2 class="section-title" id="header-functions">Functions</h2>
64+
<dl>
65+
<dt id="SWtools_ext_LE.LE_GNSE"><code class="name flex">
66+
<span>def <span class="ident">LE_GNSE</span></span>(<span>xi, U, kap, c2, F_fun, F1_fun)</span>
67+
</code></dt>
68+
<dd>
69+
<details class="source">
70+
<summary>
71+
<span>Expand source code</span>
72+
</summary>
73+
<pre><code class="python">def LE_GNSE(xi, U, kap, c2, F_fun, F1_fun):
74+
&#34;&#34;&#34;Linearized eigenspectrum for the GNSE.
75+
76+
Solves the eigenvalue problem for the linear stability matrix of a GNSE
77+
with generic nonlinear functional and linear differential operator of
78+
second order in the transverse coordinate [P1998,K1998].
79+
80+
Note
81+
----
82+
Assumes that the soliton solution is given by an even, positive,
83+
single-humped function U, see [P1998].
84+
85+
References
86+
----------
87+
[P1998] D. E. Pelinovsky, Y. S. Kivshar, V. V. Afanasjev, Internal modes of
88+
envelope solitons, Physica D 116 (1) (1998) 121–142,
89+
https://doi.org/10.1016/S0167-2789(98)80010-9.
90+
91+
[K1998] Y. S. Kivshar, D. E. Pelinovsky, T. Cretegny, M. Peyrard, Internal
92+
modes of solitary waves, Phys. Rev. Lett. 80 (1998) 5032,
93+
https://doi.org/10.1103/PhysRevLett.80.5032.
94+
95+
Parameters
96+
----------
97+
xi : array_like
98+
Disrete transverse coordinates.
99+
U : array_like
100+
Solitary wave solution.
101+
kap : float
102+
Solitary wave wavenumber.
103+
c2 : float
104+
Constant coefficient of the linear differential operator part
105+
F_fun : function
106+
Nonlinear functional.
107+
F1_fun : function
108+
Derivative of the nonlinear functional.
109+
&#34;&#34;&#34;
110+
111+
# -- COMPOSE MATRIX DETERMINING EVP FOR THE PERTURBATION MODES
112+
# ... PREPARE COEFFICIENTS FOR FINITE-DIFFERENCE MATRIX
113+
dxi = xi[1]-xi[0]
114+
dxi2= dxi**2
115+
I = np.abs(U)**2
116+
117+
# ... SET UP DIAGONALS
118+
D0 = -(30/12)*c2/dxi2*np.ones(xi.size)
119+
D1 = (16/12)*c2/dxi2*np.ones(xi.size-1)
120+
D2 = -( 1/12)*c2/dxi2*np.ones(xi.size-2)
121+
122+
# ... SET UP SPARSE FINITE DIFFERENCE MATRICES
123+
Z0 = diags([np.zeros_like(U)], [0]).toarray()
124+
L0 = diags([D0 + kap - F_fun(I), D1, D2, D1, D2], [0,-1,-2,1,2]).toarray()
125+
L1 = diags([D0 + kap - F_fun(I) - 2*I*F1_fun(I), D1, D2, D1, D2], [0,-1,-2,1,2]).toarray()
126+
127+
# ... SET UP AUXILIARY MATRIX
128+
M = np.block([
129+
[ Z0, L0],
130+
[ L1, Z0]
131+
])
132+
133+
# ... SOLVE EIGENVALUE PROBLEM
134+
e_, v_ = eig(M)
135+
136+
# -- FILTER FOR EIGENVALUES WITHIN GAP OF CONTINUOUS SPECTRUM
137+
# ... DETERMINE ONSET OF CONTINUOUS-WAVE BANDS
138+
Lam_max = kap
139+
# ... FILTER EIGENVALUES AND EIGENFUNCTIONS
140+
Lam_ = 1j*e_
141+
Lam = Lam_[ np.abs(np.imag(Lam_))&lt;kap]
142+
v = v_[:, np.abs(np.imag(Lam_))&lt;kap]
143+
# ... SEPARATE THE MODES AND MAKE INDEXING MORE INTUITIVE
144+
f = np.asarray([v[:xi.size,n] for n in range(Lam.size)])
145+
g = np.asarray([v[xi.size:,n] for n in range(Lam.size)])
146+
# ... GET ORDER FOR INCREASING MAGNITUDE OF IMAGINARY PART
147+
idx_srt = np.flip(np.argsort(np.abs(np.imag(Lam))))
148+
149+
return kap, Lam[idx_srt], f[idx_srt], g[idx_srt]</code></pre>
150+
</details>
151+
<div class="desc"><p>Linearized eigenspectrum for the GNSE.</p>
152+
<p>Solves the eigenvalue problem for the linear stability matrix of a GNSE
153+
with generic nonlinear functional and linear differential operator of
154+
second order in the transverse coordinate [P1998,K1998].</p>
155+
<h2 id="note">Note</h2>
156+
<p>Assumes that the soliton solution is given by an even, positive,
157+
single-humped function U, see [P1998].</p>
158+
<h2 id="references">References</h2>
159+
<p>[P1998] D. E. Pelinovsky, Y. S. Kivshar, V. V. Afanasjev, Internal modes of
160+
envelope solitons, Physica D 116 (1) (1998) 121–142,
161+
<a href="https://doi.org/10.1016/S0167-2789(98)80010-9.">https://doi.org/10.1016/S0167-2789(98)80010-9.</a></p>
162+
<p>[K1998] Y. S. Kivshar, D. E. Pelinovsky, T. Cretegny, M. Peyrard, Internal
163+
modes of solitary waves, Phys. Rev. Lett. 80 (1998) 5032,
164+
<a href="https://doi.org/10.1103/PhysRevLett.80.5032.">https://doi.org/10.1103/PhysRevLett.80.5032.</a></p>
165+
<h2 id="parameters">Parameters</h2>
166+
<dl>
167+
<dt><strong><code>xi</code></strong> :&ensp;<code>array_like</code></dt>
168+
<dd>Disrete transverse coordinates.</dd>
169+
<dt><strong><code>U</code></strong> :&ensp;<code>array_like</code></dt>
170+
<dd>Solitary wave solution.</dd>
171+
<dt><strong><code>kap</code></strong> :&ensp;<code>float</code></dt>
172+
<dd>Solitary wave wavenumber.</dd>
173+
<dt><strong><code>c2</code></strong> :&ensp;<code>float</code></dt>
174+
<dd>Constant coefficient of the linear differential operator part</dd>
175+
<dt><strong><code>F_fun</code></strong> :&ensp;<code>function</code></dt>
176+
<dd>Nonlinear functional.</dd>
177+
<dt><strong><code>F1_fun</code></strong> :&ensp;<code>function</code></dt>
178+
<dd>Derivative of the nonlinear functional.</dd>
179+
</dl></div>
180+
</dd>
181+
<dt id="SWtools_ext_LE.LE_HONSE"><code class="name flex">
182+
<span>def <span class="ident">LE_HONSE</span></span>(<span>xi, U, kap, coeffs)</span>
183+
</code></dt>
184+
<dd>
185+
<details class="source">
186+
<summary>
187+
<span>Expand source code</span>
188+
</summary>
189+
<pre><code class="python">def LE_HONSE(xi, U, kap, coeffs):
190+
&#34;&#34;&#34;Linearized eigenspectrum for a HONSE.
191+
192+
Solves the eigenvalue problem for the linear stability matrix of a GNSE
193+
with cubic nonlinear functional and linear differential operator including
194+
dispersion of orders two, three and four [T2020,M2024].
195+
196+
Note
197+
----
198+
The linear stability matrix for this model is generally non-selfadjoint and
199+
does not simply reduce to that of [P1998] (with higher orders of the linear
200+
derivatives included).
201+
202+
References
203+
----------
204+
[T2020] K. K. K. Tam, T. J. Alexander, A. Blanco-Redondo, C. M. de Sterke,
205+
Generalized dispersion Kerr solitons, Phys. Rev. A 101 (2020) 043822,
206+
https://doi.org/10.1103/PhysRevA.101.043822.
207+
208+
[M2024] O. Melchert, A. Demircan,
209+
https://doi.org/10.48550/arXiv.2504.10623.
210+
211+
[P1998] D. E. Pelinovsky, Y. S. Kivshar, V. V. Afanasjev, Internal modes of
212+
envelope solitons, Physica D 116 (1) (1998) 121–142,
213+
https://doi.org/10.1016/S0167-2789(98)80010-9.
214+
215+
Parameters
216+
----------
217+
xi : array_like
218+
Disrete transverse coordinates.
219+
U : array_like
220+
Solitary wave solution.
221+
kap : float
222+
Solitary wave wavenumber.
223+
coeffs : array_like
224+
Scaled dispersion parameters coeffs = [c0,c1,c2,c3,c4] defining the
225+
propagation constant (c_n = beta_n/n!).
226+
&#34;&#34;&#34;
227+
228+
# -- COMPOSE MATRIX DETERMINING EVP FOR THE PERTURBATION MODES
229+
# ... PREPARE COEFFICIENTS FOR FINITE-DIFFERENCE MATRIX
230+
dxi = xi[1]-xi[0]
231+
c2, c3, c4 = coeffs
232+
sc2, sc3, sc4 = c2/dxi**2, c3/dxi**3, c4/dxi**4
233+
I = np.abs(U)**2
234+
235+
# ... SET UP DIAGONALS
236+
D3m = ( 1j*( 1/8)*sc3 - ( 1/6)*sc4)*np.ones(xi.size-3)
237+
D2m = ( ( 1/12)*sc2 - 1j*sc3 + 2*sc4)*np.ones(xi.size-2)
238+
D1m = (-(16/12)*sc2 + 1j*(13/8)*sc3 - (13/2)*sc4)*np.ones(xi.size-1)
239+
D0 = ( (30/12)*sc2 + (28/3)*sc4)*np.ones(xi.size)
240+
D1p = (-(16/12)*sc2 - (13/8)*1j*sc3 - (13/2)*sc4)*np.ones(xi.size-1)
241+
D2p = ( ( 1/12)*sc2 + 1j*sc3 + 2*sc4)*np.ones(xi.size-2)
242+
D3p = ( -1j*( 1/8)*sc3 - ( 1/6)*sc4)*np.ones(xi.size-3)
243+
244+
# ... SET UP CORRESPONDING SPARSE FINITE DIFFERENCE MATRICES
245+
M11 = diags([D0 + (2*np.abs(U)**2-kap), D1p, D2p, D3p, D1m, D2m, D3m], [0,-1,-2,-3,1,2,3]).toarray()
246+
M12 = diags([U*U],[0]).toarray()
247+
248+
# ... SET UP AUXILIARY MATRIX
249+
M = np.block([
250+
[ M11, M12],
251+
[-np.conj(M12), -np.conj(M11)]
252+
])
253+
254+
# ... SOLVE EIGENVALUE PROBLEM
255+
e_, v_ = eig(M)
256+
257+
# -- FILTER FOR EIGENVALUES WITHIN GAP OF CONTINUOUS SPECTRUM
258+
# ... DETERMINE ONSET OF CONTINUOUS-WAVE BANDS
259+
w = FTFREQ(xi.size, d=xi[1]-xi[0])*2*np.pi
260+
bw = c2*w**2 + c3*w**3 + c4*w**4
261+
bw_max = np.max(bw)
262+
Lam_max = kap - bw_max
263+
# ... FILTER EIGENVALUES AND EIGENFUNCTIONS
264+
Lam_ = 1j*e_
265+
Lam = Lam_[ np.abs(np.imag(Lam_))&lt;Lam_max]
266+
v = v_[:, np.abs(np.imag(Lam_))&lt;Lam_max]
267+
# ... SEPARATE THE MODES AND MAKE INDEXING MORE INTUITIVE
268+
f = np.asarray([v[:xi.size,n] for n in range(Lam.size)])
269+
g = np.asarray([v[xi.size:,n] for n in range(Lam.size)])
270+
# ... GET ORDER FOR INCREASING MAGNITUDE OF IMAGINARY PART
271+
idx_srt = np.flip(np.argsort(np.abs(np.imag(Lam))))
272+
273+
return Lam_max, Lam[idx_srt], f[idx_srt], g[idx_srt]</code></pre>
274+
</details>
275+
<div class="desc"><p>Linearized eigenspectrum for a HONSE.</p>
276+
<p>Solves the eigenvalue problem for the linear stability matrix of a GNSE
277+
with cubic nonlinear functional and linear differential operator including
278+
dispersion of orders two, three and four [T2020,M2024].</p>
279+
<h2 id="note">Note</h2>
280+
<p>The linear stability matrix for this model is generally non-selfadjoint and
281+
does not simply reduce to that of [P1998] (with higher orders of the linear
282+
derivatives included).</p>
283+
<h2 id="references">References</h2>
284+
<p>[T2020] K. K. K. Tam, T. J. Alexander, A. Blanco-Redondo, C. M. de Sterke,
285+
Generalized dispersion Kerr solitons, Phys. Rev. A 101 (2020) 043822,
286+
<a href="https://doi.org/10.1103/PhysRevA.101.043822.">https://doi.org/10.1103/PhysRevA.101.043822.</a></p>
287+
<p>[M2024] O. Melchert, A. Demircan,
288+
<a href="https://doi.org/10.48550/arXiv.2504.10623.">https://doi.org/10.48550/arXiv.2504.10623.</a></p>
289+
<p>[P1998] D. E. Pelinovsky, Y. S. Kivshar, V. V. Afanasjev, Internal modes of
290+
envelope solitons, Physica D 116 (1) (1998) 121–142,
291+
<a href="https://doi.org/10.1016/S0167-2789(98)80010-9.">https://doi.org/10.1016/S0167-2789(98)80010-9.</a></p>
292+
<h2 id="parameters">Parameters</h2>
293+
<dl>
294+
<dt><strong><code>xi</code></strong> :&ensp;<code>array_like</code></dt>
295+
<dd>Disrete transverse coordinates.</dd>
296+
<dt><strong><code>U</code></strong> :&ensp;<code>array_like</code></dt>
297+
<dd>Solitary wave solution.</dd>
298+
<dt><strong><code>kap</code></strong> :&ensp;<code>float</code></dt>
299+
<dd>Solitary wave wavenumber.</dd>
300+
<dt><strong><code>coeffs</code></strong> :&ensp;<code>array_like</code></dt>
301+
<dd>Scaled dispersion parameters coeffs = [c0,c1,c2,c3,c4] defining the
302+
propagation constant (c_n = beta_n/n!).</dd>
303+
</dl></div>
304+
</dd>
305+
<dt id="SWtools_ext_LE.LE_dump"><code class="name flex">
306+
<span>def <span class="ident">LE_dump</span></span>(<span>Lam_max, Lam, f, g)</span>
307+
</code></dt>
308+
<dd>
309+
<details class="source">
310+
<summary>
311+
<span>Expand source code</span>
312+
</summary>
313+
<pre><code class="python">def LE_dump(Lam_max, Lam, f, g):
314+
&#34;&#34;&#34;List discrete eigenvalues.
315+
316+
Parameters
317+
----------
318+
Lam_max : float
319+
Continuum edge.
320+
Lam : array_like
321+
Complex-valued eigenvalues.
322+
f, g : array_like
323+
Complex-valued eigenfunctions.
324+
&#34;&#34;&#34;
325+
print(&#34;# -- DISCRETE EIGENSPECTRUM (SORTED)&#34;)
326+
print(&#34;# -- CONTINUUM EDGE:&#34;, Lam_max)
327+
for n in range(Lam.size):
328+
LamR, LamI = np.real(Lam[n]), np.imag(Lam[n])
329+
print(f&#34;n = {n} Re[Lam_n] = {LamR:+6.5F} Im[Lam_n] = {LamI:+6.5F}&#34;)</code></pre>
330+
</details>
331+
<div class="desc"><p>List discrete eigenvalues.</p>
332+
<h2 id="parameters">Parameters</h2>
333+
<dl>
334+
<dt><strong><code>Lam_max</code></strong> :&ensp;<code>float</code></dt>
335+
<dd>Continuum edge.</dd>
336+
<dt><strong><code>Lam</code></strong> :&ensp;<code>array_like</code></dt>
337+
<dd>Complex-valued eigenvalues.</dd>
338+
<dt><strong><code>f</code></strong>, <strong><code>g</code></strong> :&ensp;<code>array_like</code></dt>
339+
<dd>Complex-valued eigenfunctions.</dd>
340+
</dl></div>
341+
</dd>
342+
</dl>
343+
</section>
344+
<section>
345+
</section>
346+
</article>
347+
<nav id="sidebar">
348+
<div class="toc">
349+
<ul>
350+
<li><a href="#note">Note</a></li>
351+
</ul>
352+
</div>
353+
<ul id="index">
354+
<li><h3><a href="#header-functions">Functions</a></h3>
355+
<ul class="">
356+
<li><code><a title="SWtools_ext_LE.LE_GNSE" href="#SWtools_ext_LE.LE_GNSE">LE_GNSE</a></code></li>
357+
<li><code><a title="SWtools_ext_LE.LE_HONSE" href="#SWtools_ext_LE.LE_HONSE">LE_HONSE</a></code></li>
358+
<li><code><a title="SWtools_ext_LE.LE_dump" href="#SWtools_ext_LE.LE_dump">LE_dump</a></code></li>
359+
</ul>
360+
</li>
361+
</ul>
362+
</nav>
363+
</main>
364+
<footer id="footer">
365+
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.6</a>.</p>
366+
</footer>
367+
</body>
368+
</html>

0 commit comments

Comments
 (0)