Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
pykat
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Sean Leavey
pykat
Commits
ac924ed9
Commit
ac924ed9
authored
Aug 1, 2014
by
Daniel Brown
Browse files
Options
Downloads
Patches
Plain Diff
adding riemann caching for fair comparison between romhoom
parent
65dd5cf3
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
bin/test_romhom.py
+9
-11
9 additions, 11 deletions
bin/test_romhom.py
pykat/utilities/knm.py
+131
-29
131 additions, 29 deletions
pykat/utilities/knm.py
pykat/utilities/romhom.py
+8
-9
8 additions, 9 deletions
pykat/utilities/romhom.py
with
148 additions
and
49 deletions
bin/test_romhom.py
+
9
−
11
View file @
ac924ed9
...
@@ -2,28 +2,27 @@ from pykat.utilities.maps import read_map, tiltmap, surfacemap
...
@@ -2,28 +2,27 @@ from pykat.utilities.maps import read_map, tiltmap, surfacemap
from
pykat.utilities.knm
import
*
from
pykat.utilities.knm
import
*
from
pykat.utilities.optics.gaussian_beams
import
beam_param
from
pykat.utilities.optics.gaussian_beams
import
beam_param
import
time
import
time
import
numpy
as
np
couplings
=
np
.
array
([[[
0
,
0
,
0
,
0
],
[
0
,
0
,
1
,
0
],
[
0
,
0
,
0
,
1
]],
couplings
=
makeCouplingMatrix
(
5
)
[[
1
,
0
,
0
,
0
],
[
1
,
0
,
1
,
0
],
[
1
,
0
,
0
,
1
]],
[[
0
,
1
,
0
,
0
],
[
0
,
1
,
1
,
0
],
[
0
,
1
,
0
,
1
]]])
q1
=
beam_param
(
w0
=
3e-2
,
z
=
0
)
q1
=
beam_param
(
w0
=
3e-2
,
z
=
0
)
q2
=
beam_param
(
w0
=
3e-2
,
z
=
0
)
q2
=
beam_param
(
w0
=
3e-2
,
z
=
0
)
size
=
np
.
array
([
200
,
200
])
size
=
np
.
array
([
1
200
,
1
200
])
stepsize
=
0.
2
/
(
size
-
1
)
stepsize
=
0.
3
/
(
size
-
1
)
# This map has points evenly spaced about the axes
# This map has points evenly spaced about the axes
m
=
tiltmap
(
"
tilt
"
,
size
,
stepsize
,
(
1e-6
,
0
))
m
=
tiltmap
(
"
tilt
"
,
size
,
stepsize
,
(
1e-6
,
1e-6
))
# Shifting the central point changes the results slightly
# Shifting the central point changes the results slightly
# but this is about a 1e-7 change, probably due to extra
# but this is about a 1e-7 change, probably due to extra
# clipping
# clipping
m
.
center
+=
2
0
m
.
center
+=
0
print
"
Generating weights...
"
print
"
Generating weights...
"
t0
=
time
.
time
()
t0
=
time
.
time
()
w
,
EI
=
m
.
generateROMWeights
(
isModeMatched
=
True
)
w
,
EI
=
m
.
generateROMWeights
(
isModeMatched
=
True
)
#
w.writeToFile("testWeights.rom")
w
.
writeToFile
(
"
testWeights.rom
"
)
print
"
Completed in
"
,
time
.
time
()
-
t0
print
"
Completed in
"
,
time
.
time
()
-
t0
print
"
computing Riemann knm...
"
print
"
computing Riemann knm...
"
...
@@ -31,15 +30,14 @@ t0 = time.time()
...
@@ -31,15 +30,14 @@ t0 = time.time()
K1
=
knmHG
(
couplings
,
q1
,
q2
,
surface_map
=
m
)
K1
=
knmHG
(
couplings
,
q1
,
q2
,
surface_map
=
m
)
tr
=
time
.
time
()
-
t0
tr
=
time
.
time
()
-
t0
print
"
Completed in
"
,
tr
print
"
Completed in
"
,
tr
print
np
.
abs
(
K1
)
#
print np.abs(K1)
print
"
computing ROMHOM knm...
"
print
"
computing ROMHOM knm...
"
t0
=
time
.
time
()
t0
=
time
.
time
()
K2
=
knmHG
(
couplings
,
q1
,
q2
,
surface_map
=
m
,
method
=
"
romhom
"
)
K2
=
knmHG
(
couplings
,
q1
,
q2
,
surface_map
=
m
,
method
=
"
romhom
"
)
tt
=
time
.
time
()
-
t0
tt
=
time
.
time
()
-
t0
print
"
Completed in
"
,
tt
print
"
Completed in
"
,
tt
print
np
.
abs
(
K2
)
#print np.abs(K2)
print
"
Speed up
"
,
tr
/
tt
print
"
Speed up
"
,
tr
/
tt
...
...
This diff is collapsed.
Click to expand it.
pykat/utilities/knm.py
+
131
−
29
View file @
ac924ed9
...
@@ -8,9 +8,33 @@ import numpy as np
...
@@ -8,9 +8,33 @@ import numpy as np
import
pykat
import
pykat
import
collections
import
collections
import
math
import
math
from
romhom
import
u_star_u
from
romhom
import
u_star_u
from
progressbar
import
ProgressBar
,
ETA
,
Percentage
,
Bar
def
makeCouplingMatrix
(
max_order
):
max_order
=
int
(
max_order
)
c
=
[]
for
n
in
range
(
0
,
max_order
+
1
):
for
m
in
range
(
0
,
max_order
+
1
):
if
n
+
m
<=
max_order
:
c
.
append
([
n
,
m
])
M
=
[]
for
i
in
c
:
row
=
[]
for
j
in
c
:
e
=
list
(
i
)
e
.
extend
(
j
)
row
.
append
(
e
)
def
riemann_HG_knm
(
x
,
y
,
mode_in
,
mode_out
,
q1
,
q2
,
q1y
=
None
,
q2y
=
None
,
Axy
=
None
):
M
.
append
(
row
)
return
np
.
array
(
M
)
def
riemann_HG_knm
(
x
,
y
,
mode_in
,
mode_out
,
q1
,
q2
,
q1y
=
None
,
q2y
=
None
,
Axy
=
None
,
cache
=
None
):
if
Axy
==
None
:
if
Axy
==
None
:
Axy
==
np
.
ones
((
len
(
x
),
len
(
y
)))
Axy
==
np
.
ones
((
len
(
x
),
len
(
y
)))
...
@@ -24,18 +48,61 @@ def riemann_HG_knm(x, y, mode_in, mode_out, q1, q2, q1y=None, q2y=None, Axy=None
...
@@ -24,18 +48,61 @@ def riemann_HG_knm(x, y, mode_in, mode_out, q1, q2, q1y=None, q2y=None, Axy=None
if
len
(
mode_in
)
!=
2
or
len
(
mode_out
)
!=
2
:
if
len
(
mode_in
)
!=
2
or
len
(
mode_out
)
!=
2
:
raise
BasePyKatException
(
"
Both mode in and out should be a container with modes [n m]
"
)
raise
BasePyKatException
(
"
Both mode in and out should be a container with modes [n m]
"
)
Hg_in
=
HG_beam
(
qx
=
q1
,
qy
=
q1y
,
n
=
mode_in
[
0
],
m
=
mode_in
[
1
])
Hg_out
=
HG_beam
(
qx
=
q2
,
qy
=
q2y
,
n
=
mode_out
[
0
],
m
=
mode_out
[
1
])
dx
=
abs
(
x
[
1
]
-
x
[
0
])
dx
=
abs
(
x
[
1
]
-
x
[
0
])
dy
=
abs
(
y
[
1
]
-
y
[
0
])
dy
=
abs
(
y
[
1
]
-
y
[
0
])
if
cache
==
None
:
Hg_in
=
HG_beam
(
qx
=
q1
,
qy
=
q1y
,
n
=
mode_in
[
0
],
m
=
mode_in
[
1
])
Hg_out
=
HG_beam
(
qx
=
q2
,
qy
=
q2y
,
n
=
mode_out
[
0
],
m
=
mode_out
[
1
])
U1
=
Hg_in
.
Unm
(
x
,
y
)
U1
=
Hg_in
.
Unm
(
x
,
y
)
U2
=
Hg_out
.
Unm
(
x
,
y
).
conjugate
()
U2
=
Hg_out
.
Unm
(
x
,
y
).
conjugate
()
return
dx
*
dy
*
np
.
einsum
(
'
ij,ij
'
,
Axy
,
U1
*
U2
)
return
dx
*
dy
*
np
.
einsum
(
'
ij,ij
'
,
Axy
,
U1
*
U2
)
else
:
strx
=
"
u1[%i,%i]
"
%
(
mode_in
[
0
],
mode_out
[
0
])
stry
=
"
u2[%i,%i]
"
%
(
mode_in
[
1
],
mode_out
[
1
])
return
dx
*
dy
*
np
.
einsum
(
'
ij,ij
'
,
Axy
,
np
.
outer
(
cache
[
strx
],
cache
[
stry
]))
def
__gen_riemann_knm_cache
(
x
,
y
,
couplings
,
q1
,
q2
,
q1y
=
None
,
q2y
=
None
):
if
q1y
==
None
:
q1y
=
q1
if
q2y
==
None
:
q2y
=
q2
it
=
np
.
nditer
(
couplings
,
flags
=
[
'
refs_ok
'
,
'
f_index
'
])
cache
=
{}
while
not
it
.
finished
:
try
:
mode_in
=
[
int
(
it
.
next
()),
int
(
it
.
next
())]
mode_out
=
[
int
(
it
.
next
()),
int
(
it
.
next
())]
strx
=
"
u1[%i,%i]
"
%
(
mode_in
[
0
],
mode_out
[
0
])
stry
=
"
u2[%i,%i]
"
%
(
mode_in
[
1
],
mode_out
[
1
])
Hg_in
=
HG_beam
(
qx
=
q1
,
qy
=
q1y
,
n
=
mode_in
[
0
],
m
=
mode_in
[
1
])
Hg_out
=
HG_beam
(
qx
=
q2
,
qy
=
q2y
,
n
=
mode_out
[
0
],
m
=
mode_out
[
1
])
if
strx
not
in
cache
:
cache
[
strx
]
=
Hg_in
.
Un
(
x
)
*
Hg_out
.
Un
(
x
).
conjugate
()
if
stry
not
in
cache
:
cache
[
stry
]
=
Hg_in
.
Um
(
y
)
*
Hg_out
.
Um
(
y
).
conjugate
()
except
StopIteration
:
break
return
cache
def
__gen_ROM_HG_knm_cache
(
weights
,
couplings
,
q1
,
q2
,
q1y
=
None
,
q2y
=
None
):
def
__gen_ROM_HG_knm_cache
(
weights
,
couplings
,
q1
,
q2
,
q1y
=
None
,
q2y
=
None
):
if
q1y
==
None
:
if
q1y
==
None
:
...
@@ -65,14 +132,10 @@ def __gen_ROM_HG_knm_cache(weights, couplings, q1, q2, q1y=None, q2y=None):
...
@@ -65,14 +132,10 @@ def __gen_ROM_HG_knm_cache(weights, couplings, q1, q2, q1y=None, q2y=None):
stry
=
"
y[%i,%i]
"
%
(
mode_in
[
1
],
mode_out
[
1
])
stry
=
"
y[%i,%i]
"
%
(
mode_in
[
1
],
mode_out
[
1
])
if
strx
not
in
cache
:
if
strx
not
in
cache
:
cache
[
strx
]
=
u_star_u
(
q1
.
z
,
q2
.
z
,
q1
.
w0
,
q2
.
w0
,
mode_in
[
0
],
mode_out
[
0
],
weights
.
nodes
)
cache
[
strx
]
=
u_star_u
(
q1
.
z
,
q2
.
z
,
q1
.
w0
,
q2
.
w0
,
mode_in
[
0
],
mode_out
[
0
],
weights
.
EI
[
"
xm
"
].
nodes
)
if
q1
==
q1y
and
q2
==
q2y
:
cache
[
stry
]
=
cache
[
strx
]
elif
stry
not
in
cache
:
cache
[
stry
]
=
u_star_u
(
q1y
.
z
,
q2y
.
z
,
q1y
.
w0
,
q2y
.
w0
,
mode_in
[
1
],
mode_out
[
1
],
weights
.
nodes
)
if
stry
not
in
cache
:
cache
[
stry
]
=
u_star_u
(
q1y
.
z
,
q2y
.
z
,
q1y
.
w0
,
q2y
.
w0
,
mode_in
[
1
],
mode_out
[
1
],
weights
.
EI
[
"
ym
"
].
nodes
)
except
StopIteration
:
except
StopIteration
:
break
break
...
@@ -94,12 +157,14 @@ def ROM_HG_knm(weights, mode_in, mode_out, q1, q2, q1y=None, q2y=None, cache=Non
...
@@ -94,12 +157,14 @@ def ROM_HG_knm(weights, mode_in, mode_out, q1, q2, q1y=None, q2y=None, cache=Non
npr
=
mode_in
[
1
]
npr
=
mode_in
[
1
]
mpr
=
mode_out
[
1
]
mpr
=
mode_out
[
1
]
foundSymmetry
=
np
.
all
(
weights
.
EI
[
"
ym
"
].
nodes
==
-
weights
.
EI
[
"
xm
"
].
nodes
)
and
np
.
all
(
weights
.
EI
[
"
xp
"
].
nodes
==
-
weights
.
EI
[
"
xm
"
].
nodes
)
and
np
.
all
(
weights
.
EI
[
"
yp
"
].
nodes
==
-
weights
.
EI
[
"
ym
"
].
nodes
)
foundSymmetry
=
np
.
all
(
weights
.
EI
[
"
ym
"
].
nodes
==
weights
.
EI
[
"
xm
"
].
nodes
)
and
np
.
all
(
weights
.
EI
[
"
xp
"
].
nodes
==
-
weights
.
EI
[
"
xm
"
].
nodes
)
and
np
.
all
(
weights
.
EI
[
"
yp
"
].
nodes
==
-
weights
.
EI
[
"
ym
"
].
nodes
)
if
foundSymmetry
:
if
foundSymmetry
:
if
cache
==
None
:
if
cache
==
None
:
u_x_nodes
=
u_star_u
(
q1
.
z
,
q2
.
z
,
q1
.
w0
,
q2
.
w0
,
n
,
m
,
weights
.
EI
[
"
xm
"
].
nodes
)
u_x_nodes
=
u_star_u
(
q1
.
z
,
q2
.
z
,
q1
.
w0
,
q2
.
w0
,
n
,
m
,
weights
.
EI
[
"
xm
"
].
nodes
)
u_y_nodes
=
u_star_u
(
q1
.
z
,
q2
.
z
,
q1
.
w0
,
q2
.
w0
,
n
,
m
,
weights
.
EI
[
"
ym
"
].
nodes
)
u_y_nodes
=
u_star_u
(
q1y
.
z
,
q2y
.
z
,
q1y
.
w0
,
q2y
.
w0
,
npr
,
mpr
,
weights
.
EI
[
"
ym
"
].
nodes
)
w_ij_Q1Q3
=
weights
.
w_ij_Q1
+
weights
.
w_ij_Q3
w_ij_Q1Q3
=
weights
.
w_ij_Q1
+
weights
.
w_ij_Q3
w_ij_Q2Q4
=
weights
.
w_ij_Q2
+
weights
.
w_ij_Q4
w_ij_Q2Q4
=
weights
.
w_ij_Q2
+
weights
.
w_ij_Q4
w_ij_Q1Q2
=
weights
.
w_ij_Q1
+
weights
.
w_ij_Q2
w_ij_Q1Q2
=
weights
.
w_ij_Q1
+
weights
.
w_ij_Q2
...
@@ -107,6 +172,7 @@ def ROM_HG_knm(weights, mode_in, mode_out, q1, q2, q1y=None, q2y=None, cache=Non
...
@@ -107,6 +172,7 @@ def ROM_HG_knm(weights, mode_in, mode_out, q1, q2, q1y=None, q2y=None, cache=Non
w_ij_Q2Q3
=
weights
.
w_ij_Q2
+
weights
.
w_ij_Q3
w_ij_Q2Q3
=
weights
.
w_ij_Q2
+
weights
.
w_ij_Q3
w_ij_Q3Q4
=
weights
.
w_ij_Q3
+
weights
.
w_ij_Q4
w_ij_Q3Q4
=
weights
.
w_ij_Q3
+
weights
.
w_ij_Q4
w_ij_Q1Q2Q3Q4
=
weights
.
w_ij_Q1
+
weights
.
w_ij_Q2
+
weights
.
w_ij_Q3
+
weights
.
w_ij_Q4
w_ij_Q1Q2Q3Q4
=
weights
.
w_ij_Q1
+
weights
.
w_ij_Q2
+
weights
.
w_ij_Q3
+
weights
.
w_ij_Q4
else
:
else
:
strx
=
"
x[%i,%i]
"
%
(
mode_in
[
0
],
mode_out
[
0
])
strx
=
"
x[%i,%i]
"
%
(
mode_in
[
0
],
mode_out
[
0
])
stry
=
"
y[%i,%i]
"
%
(
mode_in
[
1
],
mode_out
[
1
])
stry
=
"
y[%i,%i]
"
%
(
mode_in
[
1
],
mode_out
[
1
])
...
@@ -114,6 +180,15 @@ def ROM_HG_knm(weights, mode_in, mode_out, q1, q2, q1y=None, q2y=None, cache=Non
...
@@ -114,6 +180,15 @@ def ROM_HG_knm(weights, mode_in, mode_out, q1, q2, q1y=None, q2y=None, cache=Non
u_x_nodes
=
cache
[
strx
]
u_x_nodes
=
cache
[
strx
]
u_y_nodes
=
cache
[
stry
]
u_y_nodes
=
cache
[
stry
]
w_ij_Q1Q3
=
cache
[
"
w_ij_Q1Q3
"
]
w_ij_Q2Q4
=
cache
[
"
w_ij_Q2Q4
"
]
w_ij_Q1Q2
=
cache
[
"
w_ij_Q1Q2
"
]
w_ij_Q1Q4
=
cache
[
"
w_ij_Q1Q4
"
]
w_ij_Q2Q3
=
cache
[
"
w_ij_Q2Q3
"
]
w_ij_Q3Q4
=
cache
[
"
w_ij_Q3Q4
"
]
w_ij_Q1Q2Q3Q4
=
cache
[
"
w_ij_Q1Q2Q3Q4
"
]
u_xy_nodes
=
np
.
outer
(
u_x_nodes
,
u_y_nodes
)
u_xy_nodes
=
np
.
outer
(
u_x_nodes
,
u_y_nodes
)
n_mod_2
=
n
%
2
n_mod_2
=
n
%
2
...
@@ -157,7 +232,7 @@ def ROM_HG_knm(weights, mode_in, mode_out, q1, q2, q1y=None, q2y=None, cache=Non
...
@@ -157,7 +232,7 @@ def ROM_HG_knm(weights, mode_in, mode_out, q1, q2, q1y=None, q2y=None, cache=Non
def
knmHG
(
couplings
,
q1
,
q2
,
surface_map
=
None
,
q1y
=
None
,
q2y
=
None
,
method
=
"
riemann
"
):
def
knmHG
(
couplings
,
q1
,
q2
,
surface_map
=
None
,
q1y
=
None
,
q2y
=
None
,
method
=
"
riemann
"
,
verbose
=
True
):
if
q1y
==
None
:
if
q1y
==
None
:
q1y
=
q1
q1y
=
q1
...
@@ -193,27 +268,54 @@ def knmHG(couplings, q1, q2, surface_map=None, q1y=None, q2y=None, method="riema
...
@@ -193,27 +268,54 @@ def knmHG(couplings, q1, q2, surface_map=None, q1y=None, q2y=None, method="riema
if
weights
==
None
:
if
weights
==
None
:
raise
BasePyKatException
(
"
The ROM weights need to be generated for this map before use.
"
)
raise
BasePyKatException
(
"
The ROM weights need to be generated for this map before use.
"
)
romcache
=
None
#__gen_ROM_HG_knm_cache(weights, couplings, q1=q1, q2=q2, q1y=q1y, q2y=q2y)
if
verbose
:
print
"
Computing caches
"
cache
=
__gen_ROM_HG_knm_cache
(
weights
,
couplings
,
q1
=
q1
,
q2
=
q2
,
q1y
=
q1y
,
q2y
=
q2y
)
elif
method
==
"
riemann
"
:
if
verbose
:
print
"
Computing caches
"
cache
=
__gen_riemann_knm_cache
(
x
,
y
,
couplings
,
q1
,
q2
,
q1y
=
None
,
q2y
=
None
)
else
:
else
:
rom
cache
=
None
cache
=
None
weights
=
None
weights
=
None
if
verbose
:
p
=
ProgressBar
(
maxval
=
couplings
.
size
,
widgets
=
[
"
Knm (%s):
"
%
method
,
Percentage
(),
Bar
(),
ETA
()])
while
not
it
.
finished
:
while
not
it
.
finished
:
try
:
try
:
mode_in
=
[
int
(
it
.
next
()),
int
(
it
.
next
())]
mode_in
=
[
int
(
it
.
next
()),
int
(
it
.
next
())]
mode_out
=
[
int
(
it
.
next
()),
int
(
it
.
next
())]
mode_out
=
[
int
(
it
.
next
()),
int
(
it
.
next
())]
if
method
==
"
riemann
"
:
if
method
==
"
riemann
"
:
K
[
i
]
=
riemann_HG_knm
(
x
,
y
,
mode_in
,
mode_out
,
q1
=
q1
,
q2
=
q2
,
q1y
=
q1y
,
q2y
=
q2y
,
Axy
=
Axy
)
K
[
i
]
=
riemann_HG_knm
(
x
,
y
,
mode_in
,
mode_out
,
q1
=
q1
,
q2
=
q2
,
q1y
=
q1y
,
q2y
=
q2y
,
Axy
=
Axy
,
cache
=
cache
)
elif
method
==
"
romhom
"
:
elif
method
==
"
romhom
"
:
K
[
i
]
=
ROM_HG_knm
(
weights
,
mode_in
,
mode_out
,
q1
=
q1
,
q2
=
q2
,
q1y
=
q1y
,
q2y
=
q2y
,
cache
=
rom
cache
)
K
[
i
]
=
ROM_HG_knm
(
weights
,
mode_in
,
mode_out
,
q1
=
q1
,
q2
=
q2
,
q1y
=
q1y
,
q2y
=
q2y
,
cache
=
cache
)
else
:
else
:
raise
BasePyKatException
(
"
method value
'
%s
'
not accepted
"
%
method
)
raise
BasePyKatException
(
"
method value
'
%s
'
not accepted
"
%
method
)
i
+=
1
i
+=
1
if
verbose
:
p
.
update
(
i
*
4
)
except
StopIteration
:
except
StopIteration
:
break
break
return
K
.
reshape
(
couplings
.
shape
[:
-
1
])
return
K
.
reshape
(
couplings
.
shape
[:
-
1
])
This diff is collapsed.
Click to expand it.
pykat/utilities/romhom.py
+
8
−
9
View file @
ac924ed9
...
@@ -4,6 +4,7 @@ import os.path
...
@@ -4,6 +4,7 @@ import os.path
import
pykat
import
pykat
import
collections
import
collections
from
progressbar
import
ProgressBar
,
ETA
,
Percentage
,
Bar
from
itertools
import
combinations_with_replacement
as
combinations
from
itertools
import
combinations_with_replacement
as
combinations
from
pykat.utilities.optics.gaussian_beams
import
beam_param
,
HG_beam
from
pykat.utilities.optics.gaussian_beams
import
beam_param
,
HG_beam
from
scipy.linalg
import
inv
from
scipy.linalg
import
inv
...
@@ -150,21 +151,22 @@ def makeReducedBasis(x, isModeMatched=True, tolerance = 1e-12, sigma = 1):
...
@@ -150,21 +151,22 @@ def makeReducedBasis(x, isModeMatched=True, tolerance = 1e-12, sigma = 1):
for
i
in
range
(
len
(
params
)):
for
i
in
range
(
len
(
params
)):
q1
=
beam_param
(
w0
=
params
[
i
][
0
],
z
=
params
[
i
][
2
])
q1
=
beam_param
(
w0
=
float
(
params
[
i
][
0
]
)
,
z
=
float
(
params
[
i
][
2
])
)
if
isModeMatched
:
if
isModeMatched
:
q2
=
q1
q2
=
q1
n
=
int
(
params
[
i
][
2
])
n
=
int
(
params
[
i
][
2
])
m
=
int
(
params
[
i
][
3
])
m
=
int
(
params
[
i
][
3
])
w0_1
=
params
[
i
][
0
]
w0_2
=
w0_1
re_q1
=
params
[
i
][
1
]
re_q2
=
re_q1
else
:
else
:
q2
=
beam_param
(
w0
=
params
[
i
][
1
],
z
=
params
[
i
][
3
])
q2
=
beam_param
(
w0
=
float
(
params
[
i
][
1
]
)
,
z
=
float
(
params
[
i
][
3
])
)
n
=
int
(
params
[
i
][
4
])
n
=
int
(
params
[
i
][
4
])
m
=
int
(
params
[
i
][
5
])
m
=
int
(
params
[
i
][
5
])
w0_1
=
q1
.
w0
w0_2
=
q2
.
w0
re_q1
=
q1
.
z
re_q2
=
q2
.
z
TS
[
IDx
]
=
u_star_u
(
re_q1
,
re_q2
,
w0_1
,
w0_2
,
n
,
m
,
x
)
TS
[
IDx
]
=
u_star_u
(
re_q1
,
re_q2
,
w0_1
,
w0_2
,
n
,
m
,
x
)
# normalize
# normalize
...
@@ -248,11 +250,8 @@ def makeEmpiricalInterpolant(RB):
...
@@ -248,11 +250,8 @@ def makeEmpiricalInterpolant(RB):
return
EmpiricalInterpolant
(
B
=
np
.
array
(
B
),
nodes
=
np
.
array
(
x_nodes
,
dtype
=
np
.
float64
),
node_indices
=
np
.
array
(
node_indices
,
dtype
=
np
.
int32
),
limits
=
RB
.
limits
,
x
=
RB
.
x
)
return
EmpiricalInterpolant
(
B
=
np
.
array
(
B
),
nodes
=
np
.
array
(
x_nodes
,
dtype
=
np
.
float64
),
node_indices
=
np
.
array
(
node_indices
,
dtype
=
np
.
int32
),
limits
=
RB
.
limits
,
x
=
RB
.
x
)
from
progressbar
import
ProgressBar
,
ETA
,
Percentage
,
Bar
def
makeWeights
(
smap
,
EI
,
verbose
=
True
):
def
makeWeights
(
smap
,
EI
,
verbose
=
True
):
# get full A_xy
# get full A_xy
A_xy
=
smap
.
z_xy
()
A_xy
=
smap
.
z_xy
()
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment