Skip to content

Commit c1211a6

Browse files
committed
Add function to calculate zeff
1 parent ae6ff39 commit c1211a6

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/physics/profiles.jl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,28 @@ function lump_ions_as_bulk_and_impurity(cp1d::IMAS.core_profiles__profiles_1d{T}
642642
return ions2
643643
end
644644

645+
"""
646+
zeff(cp1d::IMAS.core_profiles__profiles_1d; temperature_dependent_ionization_state::Bool=true)
647+
648+
Returns plasma effective charge
649+
650+
`temperature_dependent_ionization_state` evaluates Zeff with average ionization state of an ion at a given temperature
651+
"""
652+
function zeff(cp1d::IMAS.core_profiles__profiles_1d; temperature_dependent_ionization_state::Bool=true)
653+
num = zero(cp1d.grid.rho_tor_norm)
654+
den = zero(cp1d.grid.rho_tor_norm)
655+
for ion in cp1d.ion
656+
if temperature_dependent_ionization_state
657+
Zi = avgZ(ion.element[1].z_n, ion.temperature)
658+
else
659+
Zi = ion.element[1].z_n
660+
end
661+
num .+= ion.density .* Zi .^ 2
662+
den .+= ion.density .* Zi
663+
end
664+
return num ./ cp1d.electrons.density
665+
end
666+
645667
"""
646668
avgZ(Z::Float64,Ti::T)::T
647669

0 commit comments

Comments
 (0)