Skip to content

Commit

Permalink
Add coinsolver support to input files and regression tests
Browse files Browse the repository at this point in the history
* some more comments to help with enrichment debugging

* break out second reactor transaction tests

* adding all sqlite to gitigore

* slightly better error message in test regression

* dynamic capacitated works with default preference == 1

* growth.xml now works with coin

* sources file updated to use positive preference values

* physor enr now works

* increment i after stmt

* update recycle to use coin, remove mps calls

* adding greedy versions for files that were using coin as a solver

* added test cases explicitly for cbc and greedy
  • Loading branch information
gidden authored and rwcarlsen committed Apr 13, 2016
1 parent 3b2bb17 commit 25edd2f
Show file tree
Hide file tree
Showing 11 changed files with 609 additions and 19 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ rs.cred
tests/run_inputs.py
cyclus.sqlite
cycamore_version.h
*.sqlite
215 changes: 215 additions & 0 deletions input/greedy_recycle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
<simulation>
<control>
<duration>600</duration>
<startmonth>1</startmonth>
<startyear>2000</startyear>
</control>


<archetypes>
<spec> <lib>agents</lib> <name>NullInst</name></spec>
<spec> <lib>agents</lib> <name>NullRegion</name></spec>
<spec> <lib>cycamore</lib> <name>Source</name></spec>
<spec> <lib>cycamore</lib> <name>Sink</name></spec>
<spec> <lib>cycamore</lib> <name>Enrichment</name> </spec>
<spec> <lib>cycamore</lib> <name>Reactor</name> </spec>
<spec> <lib>cycamore</lib> <name>FuelFab</name> </spec>
<spec> <lib>cycamore</lib> <name>Separations</name> </spec>
</archetypes>

<facility>
<name>enrichment</name>
<config>
<Enrichment>
<feed_commod>natl_u</feed_commod>
<feed_recipe>natl_u</feed_recipe>
<product_commod>uox</product_commod>
<tails_assay>0.003</tails_assay>
<tails_commod>waste</tails_commod>
<swu_capacity>1e100</swu_capacity>
<initial_feed>1e100</initial_feed>
</Enrichment>
</config>
</facility>

<facility>
<name>separations</name>
<config>
<Separations>
<streams>
<item>
<commod>sep_stream</commod>
<info>
<buf_size>1e100</buf_size>
<efficiencies>
<item><comp>Pu</comp> <eff>.99</eff></item>
</efficiencies>
</info>
</item>
</streams>

<leftover_commod>waste</leftover_commod>
<throughput>30001</throughput>
<feedbuf_size>30001</feedbuf_size>
<feed_commods> <val>spent_uox</val> </feed_commods>
<feed_commod_prefs> <val>2.0</val> </feed_commod_prefs>
</Separations>
</config>
</facility>

<facility>
<name>fuelfab</name>
<config>
<FuelFab>
<fill_commods> <val>depleted_u</val> </fill_commods>
<fill_recipe>depleted_u</fill_recipe>
<fill_size>30001</fill_size>

<fiss_commods><val>sep_stream</val></fiss_commods>
<fiss_size>15000</fiss_size>

<spectrum>thermal</spectrum>
<outcommod>mox</outcommod>
<throughput>30001</throughput>
</FuelFab>
</config>
</facility>

<facility>
<name>reactor</name>
<config>
<Reactor>
<fuel_inrecipes> <val>fresh_uox</val> <val>fresh_mox</val></fuel_inrecipes>
<fuel_outrecipes> <val>spent_uox</val> <val>spent_mox</val></fuel_outrecipes>
<fuel_incommods> <val>uox</val> <val>mox</val></fuel_incommods>
<fuel_outcommods> <val>spent_uox</val> <val>waste</val></fuel_outcommods>
<fuel_prefs> <val>1.0</val> <val>2.0</val></fuel_prefs>

<cycle_time>17</cycle_time>
<refuel_time>2</refuel_time>
<assem_size>30000</assem_size>
<n_assem_core>3</n_assem_core>
<n_assem_batch>1</n_assem_batch>
</Reactor>
</config>
</facility>

<facility>
<name>repo</name>
<config>
<Sink>
<in_commods><val>waste</val></in_commods>
<capacity>1e100</capacity>
</Sink>
</config>
</facility>

<facility>
<name>depleted_src</name>
<config>
<Source>
<outcommod>depleted_u</outcommod>
<outrecipe>depleted_u</outrecipe>
</Source>
</config>
</facility>

<region>
<name>SingleRegion</name>
<config><NullRegion/></config>
<institution>
<name>SingleInstitution</name>
<initialfacilitylist>
<entry>
<prototype>repo</prototype>
<number>1</number>
</entry>
<entry>
<prototype>reactor</prototype>
<number>1</number>
</entry>
<entry>
<prototype>depleted_src</prototype>
<number>1</number>
</entry>
<entry>
<prototype>fuelfab</prototype>
<number>1</number>
</entry>
<entry>
<prototype>separations</prototype>
<number>1</number>
</entry>
<entry>
<prototype>enrichment</prototype>
<number>1</number>
</entry>
</initialfacilitylist>
<config><NullInst/></config>
</institution>
</region>

<recipe>
<name>natl_u</name>
<basis>mass</basis>
<nuclide> <id>U235</id> <comp>0.711</comp> </nuclide>
<nuclide> <id>U238</id> <comp>99.289</comp> </nuclide>
</recipe>

<recipe>
<name>fresh_uox</name>
<basis>mass</basis>
<nuclide> <id>U235</id><comp>0.04</comp></nuclide>
<nuclide><id>U238</id><comp>0.96</comp></nuclide>
</recipe>

<recipe>
<name>depleted_u</name>
<basis>mass</basis>
<nuclide> <id>U235</id><comp>0.003</comp></nuclide>
<nuclide><id>U238</id><comp>0.997</comp></nuclide>
</recipe>

<recipe>
<name>fresh_mox</name>
<basis>mass</basis>
<nuclide> <id>U235</id> <comp>0.0027381</comp> </nuclide>
<nuclide> <id>U238</id> <comp>0.9099619</comp> </nuclide>
<nuclide> <id>Pu238</id> <comp>0.001746</comp> </nuclide>
<nuclide> <id>Pu239</id> <comp>0.045396</comp> </nuclide>
<nuclide> <id>Pu240</id> <comp>0.020952</comp> </nuclide>
<nuclide> <id>Pu241</id> <comp>0.013095</comp> </nuclide>
<nuclide> <id>Pu242</id> <comp>0.005238</comp> </nuclide>
</recipe>

<recipe>
<name>spent_mox</name>
<basis>mass</basis>
<nuclide> <id>U235</id> <comp>0.0017381</comp> </nuclide>
<nuclide> <id>U238</id> <comp>0.90</comp> </nuclide>
<nuclide> <id>Pu238</id> <comp>0.001746</comp> </nuclide>
<nuclide> <id>Pu239</id> <comp>0.0134</comp> </nuclide>
<nuclide> <id>Pu240</id> <comp>0.020952</comp> </nuclide>
<nuclide> <id>Pu241</id> <comp>0.013095</comp> </nuclide>
<nuclide> <id>Pu242</id> <comp>0.005238</comp> </nuclide>
</recipe>

<recipe>
<name>spent_uox</name>
<basis>mass</basis>
<nuclide> <id>U235</id> <comp>156.729</comp> </nuclide>
<nuclide> <id>U236</id> <comp>102.103</comp> </nuclide>
<nuclide> <id>U238</id> <comp>18280.324</comp> </nuclide>
<nuclide> <id>Np237</id> <comp>13.656</comp> </nuclide>
<nuclide> <id>Pu238</id> <comp>5.043</comp> </nuclide>
<nuclide> <id>Pu239</id> <comp>106.343</comp> </nuclide>
<nuclide> <id>Pu240</id> <comp>41.357</comp> </nuclide>
<nuclide> <id>Pu241</id> <comp>36.477</comp> </nuclide>
<nuclide> <id>Pu242</id> <comp>15.387</comp> </nuclide>
<nuclide> <id>Am241</id> <comp>1.234</comp> </nuclide>
<nuclide> <id>Am243</id> <comp>3.607</comp> </nuclide>
<nuclide> <id>Cm244</id> <comp>0.431</comp> </nuclide>
<nuclide> <id>Cm245</id> <comp>1.263</comp> </nuclide>
</recipe>

</simulation>
2 changes: 1 addition & 1 deletion input/physor/1_Enrichment_2_Reactor.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<duration>4</duration>
<startmonth>1</startmonth>
<startyear>2000</startyear>
</control>
<solver><config><coin-or><timeout>100</timeout><verbose>1</verbose></coin-or></config></solver></control>

<archetypes>
<spec> <lib>cycamore</lib> <name>Enrichment</name> </spec>
Expand Down
2 changes: 1 addition & 1 deletion input/physor/2_Sources_3_Reactors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<duration>5</duration>
<startmonth>1</startmonth>
<startyear>2000</startyear>
</control>
<solver><config><coin-or><timeout>100</timeout><verbose>1</verbose></coin-or></config></solver></control>

<archetypes>
<spec> <lib>cycamore</lib> <name>Source</name> </spec>
Expand Down
138 changes: 138 additions & 0 deletions input/physor/greedy_1_Enrichment_2_Reactor.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
<!-- 1 Enrichment 2 Reactors -->

<simulation>
<control>
<duration>4</duration>
<startmonth>1</startmonth>
<startyear>2000</startyear>
</control>


<archetypes>
<spec> <lib>cycamore</lib> <name>Enrichment</name> </spec>
<spec> <lib>cycamore</lib> <name>Reactor</name> </spec>
<spec> <lib>agents</lib> <name>NullRegion</name> </spec>
<spec> <lib>agents</lib> <name>NullInst</name> </spec>
</archetypes>

<facility>
<name>Enrichment</name>
<config>
<Enrichment>
<feed_commod>natl_u</feed_commod>
<feed_recipe>natl_u</feed_recipe>
<product_commod>enriched_u</product_commod>
<tails_commod>ef_tails</tails_commod>
<swu_capacity>10.01</swu_capacity>
<initial_feed>1e5</initial_feed>
</Enrichment>
</config>
</facility>

<facility>
<name>Reactor1</name>
<config>
<Reactor>
<fuel_inrecipes> <val>lwr_fuel_recipe</val> </fuel_inrecipes>
<fuel_outrecipes> <val>lwr_used_fuel_recipe</val> </fuel_outrecipes>
<fuel_incommods> <val>enriched_u</val> </fuel_incommods>
<fuel_outcommods> <val>waste</val> </fuel_outcommods>
<fuel_prefs> <val>1.0</val> </fuel_prefs>

<cycle_time>1</cycle_time>
<refuel_time>0</refuel_time>
<assem_size>0.1</assem_size>
<n_assem_core>10</n_assem_core>
<n_assem_batch>10</n_assem_batch>

<recipe_change_times> <val>1</val> <val>2</val> </recipe_change_times>
<recipe_change_commods> <val>enriched_u</val> <val>enriched_u</val> </recipe_change_commods>
<recipe_change_in> <val>lwr_fuel_recipe2</val> <val>lwr_fuel_recipe</val> </recipe_change_in>
<recipe_change_out> <val>lwr_used_fuel_recipe</val> <val>lwr_used_fuel_recipe</val> </recipe_change_out>
</Reactor>
</config>
</facility>

<facility>
<name>Reactor2</name>
<config>
<Reactor>
<fuel_inrecipes> <val>lwr_fuel_recipe</val> </fuel_inrecipes>
<fuel_outrecipes> <val>lwr_used_fuel_recipe</val> </fuel_outrecipes>
<fuel_incommods> <val>enriched_u</val> </fuel_incommods>
<fuel_outcommods> <val>waste</val> </fuel_outcommods>
<fuel_prefs> <val>0.5</val> </fuel_prefs>

<cycle_time>1</cycle_time>
<refuel_time>0</refuel_time>
<assem_size>0.1</assem_size>
<n_assem_core>10</n_assem_core>
<n_assem_batch>10</n_assem_batch>
</Reactor>
</config>
</facility>

<region>
<name>SingleRegion</name>
<config><NullRegion/></config>
<institution>
<name>SingleInstitution</name>
<initialfacilitylist>
<entry>
<prototype>Enrichment</prototype>
<number>1</number>
</entry>
<entry>
<prototype>Reactor1</prototype>
<number>1</number>
</entry>
<entry>
<prototype>Reactor2</prototype>
<number>1</number>
</entry>
</initialfacilitylist>
<config><NullInst/></config>
</institution>
</region>

<recipe>
<name>natl_u</name>
<basis>mass</basis>
<nuclide> <id>922350000</id> <comp>0.711</comp> </nuclide>
<nuclide> <id>922380000</id> <comp>99.289</comp> </nuclide>
</recipe>

<recipe>
<name>lwr_fuel_recipe</name>
<basis>mass</basis>
<nuclide> <id>922350000</id> <comp>3.0</comp> </nuclide>
<nuclide> <id>922380000</id> <comp>97.0</comp> </nuclide>
</recipe>

<recipe>
<name>lwr_fuel_recipe2</name>
<basis>mass</basis>
<nuclide> <id>922350000</id> <comp>5.0</comp> </nuclide>
<nuclide> <id>922380000</id> <comp>95.0</comp> </nuclide>
</recipe>

<recipe>
<name>lwr_used_fuel_recipe</name>
<basis>mass</basis>
<nuclide> <id>922350000</id> <comp>156.729</comp> </nuclide>
<nuclide> <id>922360000</id> <comp>102.103</comp> </nuclide>
<nuclide> <id>922380000</id> <comp>18280.324</comp> </nuclide>
<nuclide> <id>932370000</id> <comp>13.656</comp> </nuclide>
<nuclide> <id>942380000</id> <comp>5.043</comp> </nuclide>
<nuclide> <id>942390000</id> <comp>106.343</comp> </nuclide>
<nuclide> <id>942400000</id> <comp>41.357</comp> </nuclide>
<nuclide> <id>942410000</id> <comp>36.477</comp> </nuclide>
<nuclide> <id>942420000</id> <comp>15.387</comp> </nuclide>
<nuclide> <id>952410000</id> <comp>1.234</comp> </nuclide>
<!-- <nuclide> --> <!-- <id>95242m</id> --> <!-- <comp>0.03</comp> --> <!-- </nuclide> -->
<nuclide> <id>952430000</id> <comp>3.607</comp> </nuclide>
<nuclide> <id>962440000</id> <comp>0.431</comp> </nuclide>
<nuclide> <id>962450000</id> <comp>1.263</comp> </nuclide>
</recipe>

</simulation>
Loading

0 comments on commit 25edd2f

Please sign in to comment.