Skip to content

Commit 944a9fd

Browse files
authored
skip electron in mixture valence calculation (#67)
1 parent 0b02ea0 commit 944a9fd

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

source/mixture.f90

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,8 @@ subroutine mixture_get_valence(self, vm, vp)
728728
! Loop over the species
729729
vm = 0.0d0; vp = 0.0d0
730730
do i = 1, ne
731+
! "E" is a pseudo-element used for ionized bookkeeping, not a real atom.
732+
if (self%element_names(i) == 'E') cycle
731733
v = get_atom_valence(self%element_names(i))
732734
if (v < 0.0d0) then
733735
vm(i) = vm(i) + v

source/mixture_test.pf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,23 @@ contains
7474

7575
end subroutine
7676

77+
@test
78+
subroutine test_get_valence_ignores_electron
79+
type(Mixture) :: mix
80+
real(dp) :: vm(2), vp(2)
81+
real(dp), parameter :: tol = 1.d-14
82+
83+
mix = Mixture(all_thermo, ['N2 ', 'N2+', 'N ', 'N+ ', 'e- '], ions=.true.)
84+
call mix%get_valence(vm, vp)
85+
86+
@assertEqual('N', mix%element_names(1))
87+
@assertEqual('E', mix%element_names(2))
88+
@assertTrue(abs(vm(1)) <= tol)
89+
@assertTrue(abs(vp(1)) <= tol)
90+
@assertTrue(abs(vm(2)) <= tol)
91+
@assertTrue(abs(vp(2)) <= tol)
92+
end subroutine
93+
7794
@test
7895
subroutine test_sort_condensed
7996

0 commit comments

Comments
 (0)