Esempio n. 1
0
def test_benchmark_5():
    my_model = model.Model()
    my_source = source.BoxSource(material_name="water", box_center=[136.5,0,239.95], \
            box_dimensions=[273,273,479.9])
    my_source.add_photon(0.4, 1.4307e+014)
    my_source.add_photon(0.8, 2.5037e+014)
    my_source.add_photon(1.3, 1.0015e+014)
    my_source.add_photon(1.7, 2.9329e+014)
    my_source.add_photon(2.2, 1.4307e+012)
    my_source.add_photon(2.5, 1.0730e+012)
    my_source.add_photon(3.5, 4.2920e+008)
    my_source.points_per_dimension = [16, 16, 16]
    my_model.add_source(my_source)
    my_model.add_shield(shield.SemiInfiniteXSlab("iron", x_start=273, \
            x_end=275.54, density=7.8))
    my_model.add_shield(shield.SemiInfiniteXSlab("concrete", x_start=365.1, \
            x_end=465.5, density=2.4))
    my_model.set_filler_material('air', density=0.00129)
    my_model.set_buildup_factor_material(material.Material('concrete'))
    my_model.add_detector(detector.Detector(456.5, 0, 239.95))
    result = my_model.calculate_exposure()
    expected_dose_rate = 3.009e+00
    diff = (result - expected_dose_rate) / expected_dose_rate * 100
    print("")
    print('test_benchmark_5')
    print("At 456.5 cm, dose = ", result, " mR/hr, ", diff, "%")
    assert True
Esempio n. 2
0
def test_benchmark_3():
    my_model = model.Model()
    # my_source = source.ZAlignedCylinderSource(materialName="water", cylinderRadius=154, \
    # 	       cylinderCenter=[0,0,54.15], cylinderLength=108.3)
    my_source = source.ZAlignedCylinderSource(material_name="water", cylinder_radius=154, \
            cylinder_center=[0,0,54.15], cylinder_length=108.3)
    my_source.add_photon(0.4, 3.2276e+013)
    my_source.add_photon(0.8, 5.6483e+013)
    my_source.add_photon(1.3, 2.2593e+013)
    my_source.add_photon(1.7, 6.6166e+013)
    my_source.add_photon(2.2, 3.2276e+011)
    my_source.add_photon(2.5, 2.4207e+011)
    my_source.add_photon(3.5, 9.6828e+007)
    my_source.points_per_dimension = [16, 16, 16]
    my_model.add_source(my_source)
    my_model.add_shield(shield.ZAlignedInfiniteAnnulus("iron", cylinder_inner_radius=154, \
            cylinder_center=[0,0,54.15], cylinder_outer_radius=154+2.54, density=7.8))
    my_model.add_shield(shield.SemiInfiniteXSlab("concrete", x_start=220, \
            x_end=311, density=2.4))
    my_model.set_filler_material('air', density=0.00129)
    my_model.set_buildup_factor_material(material.Material('concrete'))
    my_model.add_detector(detector.Detector(311, 0, 54.15))
    result = my_model.calculate_exposure()
    expected_dose_rate = 1.890E0
    diff = (result - expected_dose_rate) / expected_dose_rate * 100
    # convert from mR/hr to R/hr
    print("")
    print('test_benchmark_3')
    print("At 311 cm, dose = ", result, " mR/hr, ", diff, "%")
    assert True
Esempio n. 3
0
 def test_Case4(self):
     # a point source with infinite yz shields
     myModel = model.Model()
     mySource = source.PointSource(1, 2, 3)
     mySource.add_isotope_curies('Co-60', 3)
     myModel.add_source(mySource)
     myModel.add_shield(
         shield.SemiInfiniteXSlab(material_name="iron",
                                  x_start=10,
                                  x_end=20))
     myModel.add_shield(
         shield.SemiInfiniteXSlab(material_name="concrete",
                                  x_start=30,
                                  x_end=40))
     myModel.add_detector(detector.Detector(80, 90, 100))
     myModel.set_buildup_factor_material(material.Material('iron'))
     result = myModel.calculate_exposure()
     assert result == pytest.approx(
         0.6090081012193129)  # convert from R/sec to mR/hr
Esempio n. 4
0
 def test_Case3(self):
     # a point source with infinite yz shields
     myModel = model.Model()
     mySource = source.PointSource(0, 0, 0)
     mySource.add_isotope_bq('Ar-41', 3e10)
     myModel.add_source(mySource)
     myModel.add_shield(
         shield.SemiInfiniteXSlab(material_name="iron",
                                  x_start=10,
                                  x_end=20))
     myModel.add_shield(
         shield.SemiInfiniteXSlab(material_name="concrete",
                                  x_start=30,
                                  x_end=40))
     myModel.add_detector(detector.Detector(100, 0, 0))
     myModel.set_buildup_factor_material(material.Material('iron'))
     result = myModel.calculate_exposure()
     assert result == pytest.approx(4.3979088503738596e-06 * 1000 *
                                    3600)  # convert from R/sec to mR/hr
Esempio n. 5
0
 def test_Case2(self):
     # a point source with infinite yz shields
     myModel = model.Model()
     mySource = source.PointSource(0, 0, 0)
     mySource.add_photon(1.0, 3e10)
     myModel.add_source(mySource)
     myModel.add_shield(
         shield.SemiInfiniteXSlab(material_name="iron",
                                  x_start=10,
                                  x_end=20))
     myModel.add_detector(detector.Detector(100, 0, 0))
     myModel.set_buildup_factor_material(material.Material('iron'))
     result = myModel.calculate_exposure()
     assert result == pytest.approx(7.057332942044014e-06 * 1000 *
                                    3600)  # convert from R/sec to mR/hr
Esempio n. 6
0
def test_GeneralShieldFeatures():
    myShield = shield.SemiInfiniteXSlab("iron", 10, 20, density=0.123)
    assert myShield.material.name == "iron"
    assert myShield.material.density == 0.123
Esempio n. 7
0
 def create_shield(self):
     myShield = shield.SemiInfiniteXSlab("iron", 10, 20)
     return myShield