def test_fr_defaults():
    frd = fr_defaults()
    assert_equal(frd.batches, 3)
    assert_equal(frd.flux, 2.0*(10.0**15))
    assert_equal(frd.fuel_form["IHM"], 1.0)
    assert_equal(frd.coolant_form["NA23"], 1.0)
    assert_equal(frd.fuel_density, 18.0)
    assert_equal(frd.coolant_density, 0.927)
    assert_equal(frd.pnl, 0.65)
    assert_equal(frd.BUt, 0.0)
    assert_false(frd.use_disadvantage_factor)
    assert_equal(frd.lattice_type, "Cylindrical")
    assert_false(frd.rescale_hydrogen)
    assert_equal(frd.fuel_radius, 0.3115)
    assert_equal(frd.unit_cell_pitch, 0.956)
    assert_equal(frd.open_slots, 19.0)
    assert_equal(frd.total_slots, 163.0)
def test_FastReactor1G_5():
    rp = fr_defaults()
    rp.BUt = 140.0
    fr = FastReactor1G(rp=rp, n='fr')
    assert_equal(fr.name, 'fr')
    assert_equal(fr.track_params, set(["ACT", "BUd", "FP", "LAN", "P_NL", "TRU", "TRUCR", "U"]))
    assert_equal(fr.B, 3)
    assert_equal(fr.phi, 2.0*(10.0**15))
    assert_equal(fr.fuel_chemical_form["IHM"], 1.0)
    assert_equal(fr.coolant_chemical_form["NA23"], 1.0)
    assert_equal(fr.rhoF, 18.0)
    assert_equal(fr.rhoC, 0.927)
    assert_equal(fr.P_NL, 0.65)
    assert_equal(fr.target_BU, 140.0)
    assert_false(fr.use_zeta)
    assert_equal(fr.lattice_flag, "Cylindrical")
    assert_false(fr.rescale_hydrogen_xs)
    assert_equal(fr.r, 0.3115)
    assert_equal(fr.l, 0.956)
    assert_equal(fr.S_O, 19.0)
    assert_equal(fr.S_T, 163.0)
def test_calc_params():
    lf = os.getenv("BRIGHT_DATA") + "/FR.h5"
    load_track_nucs_hdf5(lf)
    rp = fr_defaults()
    rp.BUt = 140.0
    fr = FastReactor1G(lib=lf, rp=rp, n='fr')
    fr.calc(Material({922350: 0.30, 922380: 0.70}))
    fr.calc_params()
    assert_equal(fr.params_prior_calc["BUd"],  0.0)
    assert_equal(fr.params_after_calc["BUd"], fr.BUd)
    assert_equal(fr.params_prior_calc["TRUCR"],  0.0)
    assert_equal(fr.params_after_calc["TRUCR"], fr.tru_cr)
    assert_equal(fr.params_prior_calc["P_NL"],  0.0)
    assert_equal(fr.params_after_calc["P_NL"], fr.P_NL)
    assert_equal(fr.params_prior_calc["U"],  fr.mat_feed_u.mass)
    assert_equal(fr.params_after_calc["U"], fr.mat_prod_u.mass)
    assert_equal(fr.params_prior_calc["TRU"],  fr.mat_feed_tru.mass)
    assert_equal(fr.params_after_calc["TRU"], fr.mat_prod_tru.mass)
    assert_equal(fr.params_prior_calc["ACT"],  fr.mat_feed_act.mass)
    assert_equal(fr.params_after_calc["ACT"], fr.mat_prod_act.mass)
    assert_equal(fr.params_prior_calc["LAN"],  fr.mat_feed_lan.mass)
    assert_equal(fr.params_after_calc["LAN"], fr.mat_prod_lan.mass)
    assert_equal(fr.params_prior_calc["FP"],  1.0 - fr.mat_feed_act.mass - fr.mat_feed_lan.mass)
    assert_equal(fr.params_after_calc["FP"], 1.0 - fr.mat_prod_act.mass - fr.mat_prod_lan.mass)
from bright.reactor_parameters import lwr_defaults
LWR_Params = lwr_defaults()

from bright.reactor_parameters import fr_defaults
FR_Params = fr_defaults()

#General Specifications
Quiet = True

#LWR Specifications
LWR_Params.BUt =              51.0 
LWR_Params.batches   =        3 
LWR_Params.pnl      =         0.98 

LWR_Fuel2Mod  =  0.30146786330
                            
#LWR Storage                
LWR_SNF_Storage_Time        =  6
                            
#LWR Reprocessing                         
LWR_SE_U      =              0.999 
LWR_SE_NP     =              0.99 
LWR_SE_PU     =              0.99 
LWR_SE_AM     =              0.99 
LWR_SE_CM     =              0.99 
LWR_SE_CS     =              0.0 
LWR_SE_SR     =              0.0
                            
#FR Specifications                        
#FR_Params.BUt = 176.0						#FR Burnup
FR_Params.BUt = 180.0						#FR Burnup