max_ionization = total_ionization / cs
    max_brem = (total_ionization + brem_cs) / cs
    max_excitation = (total_ionization + brem_cs + excitation_cs) / cs
    max_elastic = (total_ionization + brem_cs + excitation_cs +
                   elastic_cs) / cs

    print '\tAdjoint_weight_factor = ', '%.16e' % weight_factor
    print '\t---------------------------------------'
    print '\tmax ionization random number   = ', '%.16e' % max_ionization
    print '\tmax brem random number         = ', '%.16e' % max_brem
    print '\tactual min excitation random number   = .28545'
    print '\tactual max excitation random number   = ', excitation_cs / cs + .28545
    print '\tmax excitation random number   = ', max_excitation
    print '\tmax elastic random number      = ', '%.16e' % max_elastic

    brem_dist = Collision.createLogLogLogCorrelatedBremsstrahlungDistribution(
        adjoint_data, 1e-12)
    atomic_dist = Collision.createAtomicExcitationDistribution(adjoint_data)

    random_numbers = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    Prng.RandomNumberGenerator.setFakeStream(random_numbers)

    incoming_energy = 1.55
    outgoing_energy, scattering_angle = brem_dist.sample(incoming_energy)
    print "\noutgoing_energy = ", '%.16e' % outgoing_energy
    print "scattering_angle = ", '%.16e' % scattering_angle

    outgoing_energy, scattering_angle = atomic_dist.sample(incoming_energy)
    print "\noutgoing_energy = ", '%.16e' % outgoing_energy
    print "scattering_angle = ", '%.16e' % scattering_angle
Exemplo n.º 2
0
          pdfs = numpy.zeros(shape=(len(schemes), length))
          cdfs = numpy.zeros(shape=(len(schemes), length))
          samples = numpy.zeros(shape=(len(schemes), length))
          labels = []

          Num = len(schemes)
          for n in range(0, len(schemes)):
            if interpolation == "LogLogLog":
              labels.append(schemes[n] + " - log")
              if schemes[n] == "Unit-base":
                dist = Collision.createLogLogLogUnitBaseBremsstrahlungDistribution(native_data, tol)
              if schemes[n] == "Unit-base Correlated":
                dist = Collision.createLogLogLogUnitBaseCorrelatedBremsstrahlungDistribution(native_data, tol)
              if schemes[n] == "Correlated":
                dist = Collision.createLogLogLogCorrelatedBremsstrahlungDistribution(native_data, tol)
            elif interpolation == "LinLinLin":
              labels.append(schemes[n] + " - lin")
              if schemes[n] == "Unit-base":
                dist = Collision.createLinLinLinUnitBaseBremsstrahlungDistribution(native_data, tol)
              elif schemes[n] == "Unit-base Correlated":
                dist = Collision.createLinLinLinUnitBaseCorrelatedBremsstrahlungDistribution(native_data, tol)
              elif schemes[n] == "Correlated":
                dist = Collision.createLinLinLinCorrelatedBremsstrahlungDistribution(native_data, tol)

            if schemes[n] == "Unit-base":
              upper_samples = numpy.zeros(len(random_numbers))
              Num = n

              # Sample both upper and lower distrbutions
              lower_random_numbers = numpy.zeros((len(random_numbers)*3))