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

Update OAT sensitivity analysis #144

Merged
merged 18 commits into from
Nov 10, 2022
Merged

Conversation

abachma2
Copy link
Contributor

With the merging of PR #141, I re-ran the OAT Sensitivity Analysis. I also added variations to the burnup of the HALEU-fueled reactors (the Xe-100 and MMR). Varying the burnup of these reactors requires changing the amount of fuel they receive, the frequency of the refuelings, and the lifetimes of the reactors.

Changes in this PR include:

  • modifying the driver files as needed to reflect changes made to functions in scripts/create_AR_DeployInst
  • updated input/haleu/sensitivity-analysis/oat/OAT_Analysis.ipynb with new results
  • new files to perform sensitivity analysis of the burnup of the HALEU-fueled reactors

@abachma2
Copy link
Contributor Author

abachma2 commented Nov 8, 2022

@yardasol @nsryan2 Upping this in case it got lost in your inbox/to-do list

@yardasol
Copy link
Contributor

yardasol commented Nov 9, 2022

@abachma2 I'm on it

Copy link
Contributor

@yardasol yardasol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @abachma2,

I have a questions:

  1. How did you pick the cycle times for the MMR? Is it just a guess? Regardless, I think it would be helpful to put the rationale for that in your PR description OR in a linked issue.

Everything else looks fine, although I'm not super familiar with Dakota so may not be the best judge of thoe .in files.

The rest of my comments are below.

@@ -40,8 +40,7 @@
duration,
reactor_prototypes,
demand_equation,
'MMR',
int(params['mmr']))
{'MMR':int(params['mmr'])})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're passing a dictionary with an entry for each 'version' of the MMR, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dictionary here defines the build share percent (the value) for each specified prototype (the key). This change is because of the updates to the determine_deployment_scheme function in scripts/create_AR_DeployInst.py in PR #143. This does not change the lifetime or any parameters about the MMR prototype.

Comment on lines +11 to +19
list_parameter_study
list_of_points = 41
62
74
78
82
86
90

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain what this change is? I'm not understanding from the commit message. It could also be my lack of familiarity with dakota.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the other variations (transition start time, lwr lifetimes, and build shares) I am sweeping over a grid of evenly spaced points. However, the points I want to use for the burnup variations (applied to the MMR or Xe-100) are not evenly spaced. So I am telling Dakota to use these specific values instead of an even grid like I do when varying the parameters.

@@ -20,10 +20,10 @@

# Edit Cyclus input file
cyclus_template = 'mmr_burnup_input.xml.in'
scenario_name = 'mmr_burnup' + str(round(params['mmr_burnup']))
scenario_name = 'mmr_burnup_' + str(int(params['mmr_burnup']))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good naming scheme

@abachma2
Copy link
Contributor Author

abachma2 commented Nov 9, 2022

Hi @yardasol. Thanks for the feedback. When varying the MMR burnup, I also change the lifetime of the MMR to maintain that the reactor does not undergo any refueling. This is the only time that I vary the lifetime of any of the reactors (input/haleu/sensitivity-analysis/oat/mmr_burnup/). The lifetimes are selected based on a how I changed the burnup, and there are two things I varied the burnup on. The first is a burnup for if the reactor operated for only 10 or 15 years, compared with the expected 20 years. So this changed the MMR lifetime to 10 or 15 years. The other way I varied the burnup was to have a +/-5%, 10% change in the burnup. The reactor lifetime was then calculated based on: lifetime = (Burnup*mass of U)/thermal power. I assumed that the core mass was the same for all changes to the MMR burnup.

When varying the Xe-100 burnup, I varied the burnup for if the fuel went through 1-6 passes through the core, assuming each pass is 6 months and the core needs the same total mass. I also did +/-10% change in the burnup by assuming that the fuel still went through 6 passes, but each pass was longer or shorter, as needed. These changes in the burnup changed the amount of fuel received by the reactor at each refueling or the frequency of the refueling, but does not change the lifetime of the reactor.

@yardasol
Copy link
Contributor

Gotcha gotcha.

@yardasol yardasol merged commit ebc7ee5 into arfc:master Nov 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants