Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Determine the control flow necessary to implement tally multipliers #95

Closed
gonuke opened this issue Jun 3, 2013 · 2 comments
Closed

Comments

@gonuke
Copy link
Member

gonuke commented Jun 3, 2013

Previous steps have ignored, for the moment, how to access tally multipliers, especially nuclear data based multipliers, and apply them to tallies.

This will require some discussion, probably in a meeting, once we have the other data structures finalized.

@kldunn
Copy link
Contributor

kldunn commented Nov 30, 2013

General tally multiplier support has been added to the TallyManager. Multiplier values are added to a vector stored in the TallyEvent that is independent of the list of tally observers (in the future it may be better to use an unordered map from the C++11 standard). These values are accessed by a multiplier ID (i.e. vector index) that is stored in each TallyInput. This allows different tallies to use the same multiplier ID without having to store/update it twice per event. The tallies can then access this multiplier value in their compute_score methods using TallyEvent::get_score_multiplier, which returns the current particle_weight * multiplier value (or just particle_weight if multiplier_id is not valid).

In DAG-MCNP, the multiplier ID is related to the fmesh index. If no multipliers are used, then none are added to TallyManager. However, the TallyManager::updateMultiplier method is currently still called for these tallies from MCNP even though it doesn't do anything. This is how the original tally multiplier implementation worked for DAGMC tallies as it called dagmc_mesh_score every time, whether or not multipliers were used. As a future performance improvement, if needed, the fmesh tallies that actually have multipliers can be stored in an array so that we only update the ones that need to be updated. Alternatively, we could use a new DAGMC tally card instead of the existing FMESH tally card.

These changes will be merged back into meshtally_refactor by Monday.

@kldunn
Copy link
Contributor

kldunn commented Dec 12, 2013

Multiplier changes have been put back into meshtally_refactor so putting this issue into review status.

@kldunn kldunn closed this as completed Feb 7, 2014
ljacobson64 pushed a commit to ljacobson64/DAGMC that referenced this issue Jun 5, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants