Skip to content

Commit b00bf54

Browse files
committed
triangle interpolation method for ActorFitProfiles
1 parent f9fc186 commit b00bf54

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/actors/diagnostics/fits_actor.jl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,13 @@ function _step(actor::ActorFitProfiles{D,P}) where {D<:Real,P<:Real}
8888
# time average TS data
8989
time_basis_average!(dd.thomson_scattering, time_basis, par.time_averaging)
9090

91+
method = IMAS.NaturalNeighbours.Triangle()
92+
9193
# fit Te
9294
itp_te = IMAS.fit2d(Val(:t_e), dd; transform=abs)
9395
for (kt, time0) in enumerate(time_basis)
9496
cp1d = dd.core_profiles.profiles_1d[kt]
95-
data = itp_te(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)))
97+
data = itp_te(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)); method)
9698
cp1d.electrons.temperature = IMAS.fit1d(rho_tor_norm12, data, rho_tor_norm; smooth1, smooth2).fit
9799
end
98100

@@ -175,7 +177,7 @@ function _step(actor::ActorFitProfiles{D,P}) where {D<:Real,P<:Real}
175177
itp_ne = IMAS.fit2d(Val(:n_e), dd; transform=abs)
176178
for (k, time0) in enumerate(time_basis)
177179
cp1d = dd.core_profiles.profiles_1d[k]
178-
data = itp_ne(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)))
180+
data = itp_ne(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)); method)
179181
cp1d.electrons.density_thermal = IMAS.fit1d(rho_tor_norm12, data, rho_tor_norm; smooth1, smooth2).fit
180182
end
181183

@@ -186,7 +188,7 @@ function _step(actor::ActorFitProfiles{D,P}) where {D<:Real,P<:Real}
186188
# itp_zeff = IMAS.fit2d(Val(:zeff), dd; transform=x -> abs(max(x, 1.0) - 1.0))
187189
# for (k, time0) in enumerate(time_basis)
188190
# cp1d = dd.core_profiles.profiles_1d[k]
189-
# data = itp_zeff(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12))) .+ 1.0
191+
# data = itp_zeff(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)); method) .+ 1.0
190192
# cp1d.zeff = IMAS.fit1d(rho_tor_norm12, data, rho_tor_norm; smooth1, smooth2).fit
191193
# end
192194

@@ -197,8 +199,8 @@ function _step(actor::ActorFitProfiles{D,P}) where {D<:Real,P<:Real}
197199
bulk_ion = cp1d.ion[1]
198200
imp_ion = cp1d.ion[2]
199201

200-
data = itp_nimp(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)))
201-
data .*= itp_ne(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)))
202+
data = itp_nimp(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)); method)
203+
data .*= itp_ne(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)); method)
202204
n_i = IMAS.fit1d(rho_tor_norm12, data, rho_tor_norm; smooth1, smooth2).fit
203205

204206
bulk_ion.density_thermal = zero(rho_tor_norm)
@@ -209,7 +211,7 @@ function _step(actor::ActorFitProfiles{D,P}) where {D<:Real,P<:Real}
209211
itp_ti = IMAS.fit2d(Val(:t_i), dd; transform=abs)
210212
for (k, time0) in enumerate(time_basis)
211213
cp1d = dd.core_profiles.profiles_1d[k]
212-
data = itp_ti(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)))
214+
data = itp_ti(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)); method)
213215
ti = IMAS.fit1d(rho_tor_norm12, data, rho_tor_norm; smooth1, smooth2).fit
214216
for ion in cp1d.ion
215217
ion.temperature = ti
@@ -226,7 +228,7 @@ function _step(actor::ActorFitProfiles{D,P}) where {D<:Real,P<:Real}
226228
itp_ωtor = IMAS.fit2d(Val(:ω_tor), dd)
227229
for (k, time0) in enumerate(time_basis)
228230
cp1d = dd.core_profiles.profiles_1d[k]
229-
data = itp_ωtor(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)))
231+
data = itp_ωtor(rho_tor_norm12, range(time0, time0, length(rho_tor_norm12)); method)
230232
ωtor = IMAS.fit1d(rho_tor_norm12, data, rho_tor_norm; smooth1, smooth2).fit
231233
for ion in cp1d.ion
232234
ion.rotation_frequency_tor = ωtor

0 commit comments

Comments
 (0)