Beispiel #1
0
    def __init__(self, dens, temps, energies, getOpac):
        self.dens = dens
        self.temps = temps
        self.energies = energies
        self.argGetOpac = getOpac

        def getDensTemp(n):
            jt = n % len(self.temps)
            jd = n / len(self.temps)
            return self.dens[jd], self.temps[jt]
    
        def getListOpac(n):
            jt = n % len(self.temps)
            jd = n / len(self.temps)
            return self.go(jd,jt)

        OplList.__init__(self,
                         len(self.dens)*len(self.temps), 
                         getDensTemp,
                         lambda n: self.energies,
                         getListOpac)
Beispiel #2
0
    def __init__(self, dens, temps, energies, getOpac):
        """
        temps -> numpy array of temperatures [eV]

        dens -> list of numpy arrays. len(dens) = len(temps. dens[n]
        stores a sorted list of all of the densities [g/cc]
        corresponding to temperature temps[n]
        
        energies -> [eV] energy group structure
        """
        self.dens = dens
        self.temps = temps
        self.energies = energies
        self.go = getOpac

        def map(n):
            count = 0
            for jt in xrange(len(self.temps)):
                for jd in xrange(len(self.dens[jt])):
                    if count == n:
                        return jd, jt
                    count += 1
            raise ValueError("Bad mapping")

        def getDensTemp(n):
            jd, jt = map(n)
            return self.dens[jt][jd], self.temps[jt]
    
        def getListOpac(n):
            jd, jt = map(n)
            return self.go(jd,jt)

        nopac = 0
        for jt in xrange(len(self.temps)):
            nopac += len(self.dens[jt])

        OplList.__init__(self, nopac,
                         getDensTemp,
                         lambda n: self.energies,
                         getListOpac)
Beispiel #3
0
    def __init__(self, dens, temps, energies, getOpac):
        """
        temps -> numpy array of temperatures [eV]

        dens -> list of numpy arrays. len(dens) = len(temps. dens[n]
        stores a sorted list of all of the densities [g/cc]
        corresponding to temperature temps[n]
        
        energies -> [eV] energy group structure
        """
        self.dens = dens
        self.temps = temps
        self.energies = energies
        self.go = getOpac

        def map(n):
            count = 0
            for jt in xrange(len(self.temps)):
                for jd in xrange(len(self.dens[jt])):
                    if count == n:
                        return jd, jt
                    count += 1
            raise ValueError("Bad mapping")

        def getDensTemp(n):
            jd, jt = map(n)
            return self.dens[jt][jd], self.temps[jt]

        def getListOpac(n):
            jd, jt = map(n)
            return self.go(jd, jt)

        nopac = 0
        for jt in xrange(len(self.temps)):
            nopac += len(self.dens[jt])

        OplList.__init__(self, nopac, getDensTemp, lambda n: self.energies, getListOpac)