nsryan2 / NEAR

NEAR (Non-Equilibrium Archetypes of Reactors): Houses cyclus archetypes for non-equilibrium reactors with core-loading and enrichment variability.
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Outline EVER Archetype #10

Open nsryan2 opened 4 weeks ago

nsryan2 commented 4 weeks ago

This issue is for discussion and outlining of the Enrichment Versatile non-Equilibrium Reactor (EVER) archetype. There is no need for a PR to close this issue, but the issue should contain:

Notes/Discussion

nsryan2 commented 4 weeks ago

General Description: [in progress]

This archetype will function very similarly to the cycamore reactor archetype, but we will modify the depletion step of each cycle to give the user greater versatility in their implementation of the reactor.

We intend for this archetype to achieve this versatility at x levels of fidelity, and the additions to the archetype will follow from the lowest level of fidelity to the highest:

  1. The user can specify time steps at which the recipe for spent fuel will change (this functionality exists to some extent in the cycamore archetype, we plan to expand it formally for this purpose such that users have greater access to this use).
  2. User can specify burnup at specific time steps, and coupled code will calculate the recipes/isotopes to get there.
  3. [some ill-defined middle ground] (maybe interpolation of some kind, or a user could pregenerate core-averaged cross sections instead of using equilibrium values).
  4. The archetype can be coupled to outside codes to perform depletion calculations (a la OpenMCyclus, we will add in additional features to increase the fidelity beyond one-group).
nsryan2 commented 4 weeks ago

Pseudo Code: [in progress]

Here, we will outline the pseudo code for each level of fidelity as it is developed.

[Low Fidelity] Pre-defined recipes

Added by PR #17

We'll show where this feature diverges from the cycamore reactor archetype, you can assume that a process not pictured will behave the same way as how cycamore would do it.

From a user perspective, this is the workflow I envision:

graph LR
A(Define fuels) --> B(Input fuel list)
B --> C(List change times)
C -- optional --> D(List preferences)
C --> E(Run)
D --> E

Which means from a feature perspective, we'll need to update the tags for input recipe, maybe preferences, and create this list of change times (where the user specifies how many time steps the fuel has this recipe).

Example reactor using this feature:

<facility>
    <name>EVER_Update_Reactor</name>
    <lifetime>720</lifetime> <!-- in months -->
    <config>
      <Ever> <!-- note the Ever tag -->
        <!-- same as reactor -->
        <fuel_incommods> <val>fresh_uox</val> </fuel_incommods>
        <fuel_inrecipes> <val>fresh_uox</val> </fuel_inrecipes>
        <fuel_outcommods> <val>spent_uox</val> </fuel_outcommods>
        <fuel_outrecipes> <val>spent_uox</val> </fuel_outrecipes>
        <recipe_update_times> <val>68</val> <val>268</val> </recipe_update_times> <!-- in months -->

        <!-- specific to EVER -->
        <recipe_update_commods>
          <val>fresh_otr</val> <val>fresh_uox</val> <!-- switches to some OTheR fuel and back to UOx -->
        </recipe_update_commods>
        <recipe_update_in>
          <val>fresh_otr</val> <val>fresh_uox</val>
        </recipe_update_in>
        <recipe_update_out>
          <val>spent_otr_u</val> <val>spent_uox</val>
        </recipe_update_out>

        <!-- same as reactor -->
        <cycle_time>18</cycle_time> <!-- in months -->
        <refuel_time>1</refuel_time>
        <assem_size>33000</assem_size> <!-- in kg -->
        <n_assem_core>3</n_assem_core>
        <n_assem_batch>1</n_assem_batch>
        <power_cap>1000</power_cap> <!-- in MWe -->
      </Ever>
    </config>
  </facility>

[Medium Fidelity] ??

[Highest Fidelity] Coupled n-group

nsryan2 commented 4 weeks ago

Planning & Implementation: [in progress]

In this section, we will keep track of PRs and ideas for the direction of the archetype.

Next Steps:

Ideas will be added to this list.

Added:

Accomplishments, with corresponding PRs will be added to this list.

nsryan2 commented 3 weeks ago

Graveyard

I like to keep an area for scraps that are eliminated, sometimes with justification as to why they were changed or eliminated to preserve the thought process.