Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F69681086
funnel_output.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Jul 2, 23:53
Size
2 KB
Mime Type
text/x-python
Expires
Thu, Jul 4, 23:53 (2 d)
Engine
blob
Format
Raw Data
Handle
18741857
Attached To
R6746 RationalROMPy
funnel_output.py
View Options
import
numpy
as
np
from
funnel_output_engine
import
FunnelOutputEngine
as
engine
from
rrompy.sampling
import
SamplingEngineStandard
as
SES
from
rrompy.reduction_methods
import
(
NearestNeighbor
as
NN
,
RationalInterpolant
as
RI
,
RationalInterpolantGreedy
as
RIG
)
from
rrompy.parameter.parameter_sampling
import
QuadratureSampler
as
QS
ks
=
[
5.
,
10.
]
k0
,
n
=
np
.
mean
(
ks
),
50
solver
=
engine
(
k0
,
n
)
k
=
6.5
for
method
in
[
"RI"
,
"RI_OUTPUT"
,
"RI_GREEDY"
,
"RI_GREEDY_OUTPUT"
]:
print
(
"Testing {} method"
.
format
(
method
))
if
"GREEDY"
not
in
method
:
params
=
{
'S'
:
20
,
'POD'
:
True
,
'polybasis'
:
"CHEBYSHEV"
,
'sampler'
:
QS
(
ks
,
"CHEBYSHEV"
)}
algo
=
RI
if
"GREEDY"
in
method
:
params
=
{
'S'
:
2
,
'POD'
:
True
,
'polybasis'
:
"LEGENDRE"
,
'greedyTol'
:
1e-1
,
'maxIter'
:
25
,
'sampler'
:
QS
(
ks
,
"UNIFORM"
),
'errorEstimatorKind'
:
"LOOK_AHEAD_OUTPUT"
}
algo
=
RIG
approx
=
algo
(
solver
,
mu0
=
k0
,
approx_state
=
method
[
-
7
:]
!=
"_OUTPUT"
,
approxParameters
=
params
,
verbosity
=
5
)
if
"GREEDY"
not
in
method
:
approx
.
setupApprox
()
else
:
approx
.
setupApprox
(
"LAST"
)
print
(
"--- Approximant ---"
)
approx
.
plotApprox
(
k
,
name
=
'u_app'
)
approx
.
plotHF
(
k
,
name
=
'u_HF'
)
approx
.
plotErr
(
k
,
name
=
'err_app'
)
normErr
=
approx
.
normErr
(
k
)[
0
]
normSol
=
approx
.
normHF
(
k
)[
0
]
print
(
"SolNorm:
\t
{:.5e}
\n
Err_app:
\t
{:.5e}
\n
ErrRel_app:
\t
{:.5e}"
.
format
(
normSol
,
normErr
,
normErr
/
normSol
))
print
(
"--- Closest snapshot ---"
)
eng
=
SES
(
solver
,
verbosity
=
0
)
approxNN
=
NN
(
solver
,
mu0
=
k0
,
approx_state
=
method
[
-
7
:]
!=
"_OUTPUT"
,
approxParameters
=
{
'S'
:
approx
.
S
,
'POD'
:
True
},
verbosity
=
0
)
approxNN
.
setSamples
(
approx
.
samplingEngine
)
approxNN
.
plotApprox
(
k
,
name
=
'u_close'
)
approxNN
.
plotHF
(
k
,
name
=
'u_HF'
)
approxNN
.
plotErr
(
k
,
name
=
'err_close'
)
normErr
=
approxNN
.
normErr
(
k
)[
0
]
normSol
=
approxNN
.
normHF
(
k
)[
0
]
print
(
"SolNorm:
\t
{:.5e}
\n
Err_close:
\t
{:.5e}
\n
ErrRel_close:
\t
{:.5e}"
.
format
(
normSol
,
normErr
,
normErr
/
normSol
))
print
(
"Poles:
\n
{}"
.
format
(
approx
.
getPoles
()))
print
(
"
\n
"
)
Event Timeline
Log In to Comment