Opened 7 years ago
Closed 5 years ago
#826 closed defect (duplicate)
Refactor index computations for term%amp to one object
Reported by: | Juergen Reuter | Owned by: | kilian |
---|---|---|---|
Priority: | P4 | Milestone: | v4.0 |
Component: | core | Version: | 2.5.0 |
Severity: | normal | Keywords: | Refactoring, backlog |
Cc: |
Description
This is taken over from issue #39 on gitlab:
At the moment, all external matrix elements (MEs) are put in one big array of MEs in term%amp. Some of these are recombined (in case of polarization) during tracing. What kind of MEs are where is expert knowledge, hidden in index computations scattered throughout the code. This knowledge is easily forgotten and prone to errors as e.g. in 2f1e57c7.
- I would suggest a small, lightweight object that is set up by the process_term (or process_term_instance if necessary).
- Its main objective would be to compute the index in the big ME array, given a helicity, amplitude type (born, virtual, real, color correlated) and flv.
- It should also compute the overall sizes as is now done by term_instance_compute_virt_me_array_sizes.
- It has to be so basic that it can also be used in virtual_t where one could get rid off the me_index and probably also in real_subtraction_t.
- One should scan the code for any kind of implicit assumptions on the memory layout in term%amp and replace it with calls to the new object. Candidates are e.g. calls to virtual_compute_n_sub or prc_blha_get_helicity_list* .
Remarks CW: One of the major works on the NLO-Refactoring was to get everything into term%amp. The memory layout is governed by the state matrices and the corresponding evaluators. What you suggest seems to be a step back, thus giving again the problems with structure functions etc.
BACN: No, everything will stay inside term%amp. The memory layout is not only governed by the state matrices and evaluators as not everything is done by the evaluators.I am merely suggesting to put the index computations (which would not existent if evaluators would do everything) to one place.
CW: Ok, I thought you wanted to remove term%amp. That also clarifies some other points.
Change History (2)
comment:1 Changed 7 years ago by
Milestone: | v2.6.0 → v4.0 |
---|
comment:2 Changed 5 years ago by
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Transferred back to Gitlab.