Opened 15 years ago
Closed 5 years ago
#40 closed enhancement (duplicate)
Helicity selection rules
Reported by: | ohl | Owned by: | ohl |
---|---|---|---|
Priority: | P3 | Milestone: | v4.0 |
Component: | omega | Version: | 2.0.0alpha |
Severity: | normal | Keywords: | |
Cc: |
Description (last modified by )
Replace the numerical heuristics for helicity selection rules by statically computed ones.
Change History (25)
comment:1 Changed 15 years ago by
Status: | new → assigned |
---|
comment:2 Changed 15 years ago by
Milestone: | v2.0-final → v2.0-beta |
---|
comment:3 Changed 15 years ago by
Milestone: | v2.0-beta → v2.0-final |
---|
comment:4 Changed 15 years ago by
Priority: | P2 → P1 |
---|---|
Severity: | critical → blocker |
comment:5 Changed 15 years ago by
Milestone: | v2.0final → v2.0-rc1 |
---|
comment:6 Changed 15 years ago by
Milestone: | v2.0-rc1 → v2.0-rc2 |
---|---|
Severity: | blocker → critical |
Let's be realistic: TO and WK have to coordinate this. Let's concentrate on getting a tested (but slow) RC1 this weekend and implement helicity selection next week for RC2.
Moving the ticket to v2.0-rc2.
comment:7 Changed 15 years ago by
Milestone: | v2.0-rc2 → v2.0-rc1 |
---|
According to Wolfgang, the W1 method for helicities has to be implemented before release of rc1.
comment:8 Changed 15 years ago by
Re-implemented the old heuristics in r1629. It's not yet validated, but it compiles.
Algorithm (in omegalib):
pure subroutine omega_update_helicity_selection (amp, mask, zeros, threshold, cutoff) complex(kind=default), dimension(:,:,:), intent(in) :: amp logical, dimension(:), intent(inout) :: mask integer, dimension(:), intent(inout) :: zeros real(kind=default), intent(in) :: threshold integer, intent(in) :: cutoff integer :: h real(kind=default) :: avg if (threshold .gt. 0) then avg = sum (abs (amp)) / size (amp) do h = lbound (amp, 2), ubound (amp, 2) if (mask(h)) then if (all (abs (amp(:,h,:)) .lt. threshold * epsilon (avg) * avg )) then zeros(h) = zeros(h) + 1 if (zeros(h) .gt. cutoff) then mask(h) = .false. end if end if end if end do end if end subroutine omega_update_helicity_selection
new interface function
subroutine reset_helicity_selection (threshold, cutoff) real(kind=default), intent(in) :: threshold integer, intent(in) :: cutoff hel_is_allowed = .true. hel_zeros = 0 hel_threshold = threshold hel_cutoff = cutoff end subroutine reset_helicity_selection
where threshold = O(100) and cutoff = O(1000).
Obviously, a negative threshold will disable the helicity selection.
comment:9 Changed 15 years ago by
Priority: | P1 → P2 |
---|---|
Severity: | critical → normal |
Performed some basic tests. Appears to work correctly and to be efficient. Needs tuning of THRESHOLD and CUTOFF. Access from SINDARIN would be nice.
Downgrading the priority and severity.
comment:10 Changed 15 years ago by
The SINDARIN interface is done. There are three variables:
- ?helicity_selection_active (default true) as overall switch
- real helicity_selection_threshold (default 100)
- int helicity_selection_cutoff (default 100)
Please check.
comment:11 Changed 15 years ago by
Description: | modified (diff) |
---|---|
Milestone: | v2.0-rc1 → v2.0final |
Severity: | normal → major |
Passed some more tests. Further tests of the heuristics belong to validation.
Moving this ticket to 2.0final for further optimizations and (maybe later) for an implementation of an analytical approach.
comment:12 Changed 15 years ago by
Milestone: | v2.0final → v2.0-rc1 |
---|---|
Priority: | P2 → P3 |
Severity: | major → normal |
Back to RC1 for an improvement of the logic and a test case. Neither is a big deal and could be moved to RC2.
comment:14 Changed 15 years ago by
Priority: | P3 → P2 |
---|---|
Severity: | normal → major |
It probably can wait until RC2, but here's the situation. The current version (checkpointed in
svn+ssh://login.hepforge.org/hepforge/svn/whizard/tags/ohl/helicity_tuning/agressive_2010_01_31
(sic!) is very aggressive and kills a helicity after CUTOFF zeros anywhere in the sequence. This appears to work, but is dangerous in very long simulations. A more conservative version
svn+ssh://login.hepforge.org/hepforge/svn/whizard/tags/ohl/helicity_tuning/conservative_2010_02_02
requires CUTOFF zeros at the beginning. To my surprise, it is significantly slower (keeps more helicities), but produces the same results. I have to investigate
- where the conservative version is tricked into believing that a vanishing helicity combination in nonvanishing and
- whether the aggressive version is safe.
Since it can be switched off, the aggressive version is probably OK for RC1.
comment:15 Changed 15 years ago by
Milestone: | v2.0-rc1 → v2.0-rc2 |
---|---|
Priority: | P2 → P3 |
Severity: | major → normal |
Implemented a much more robust heuristic in r1655: comparing the maximum with the average of the first CUTOFF evaluations. A good new default for THRESHOLD is 1E10.
Further tuning can go to RC2 and later.
comment:16 Changed 15 years ago by
Milestone: | v2.0-rc2 → v2.0final |
---|
comment:17 Changed 15 years ago by
Milestone: | v2.0.0final → v2.0.1 |
---|
comment:18 Changed 15 years ago by
Milestone: | v2.0.1 → v2.0.2 |
---|
comment:19 Changed 15 years ago by
Milestone: | v2.0.2 → v2.1 |
---|
As TO has two major tasks before this, moving to 2.1
comment:20 Changed 14 years ago by
Milestone: | v2.1.0 → v2.1.1 |
---|
comment:23 Changed 8 years ago by
Milestone: | v2.6.0 → v3.0.0 |
---|
comment:24 Changed 8 years ago by
Milestone: | v3.0.0 → v4.0 |
---|
comment:25 Changed 5 years ago by
Resolution: | → duplicate |
---|---|
Status: | assigned → closed |
Transferred to Gitlab issue 328.
Highest priority for 2.0_final now!!!