예제 #1
0
    def sigmaHat(self, t, ColeColefunc=ColeCole):
        etc = np.c_[self.curModel.eta, self.curModel.tau, self.curModel.c]
        unqEtc, uETCind, invInd = uniqueRows(etc)

        sigmaHat = []
        for (ev, tv, cv) in unqEtc:
            if ev == 0.:
                sigmaHat.append(0.)
            else:

                key = '%.5e_%.5f_%.5e_%.5f' % (t, ev, tv, cv)
                if self.sigmaHatDict.has_key(key):
                    val = self.sigmaHatDict[key]
                else:
                    if t == 0:
                        # val = transFilt(F,1e-6)
                        val = ev / (tv * (1. - ev))
                    else:
                        F = lambda frq: (1j * 2 * np.pi * frq) * ColeColefunc(
                            frq, sigmaInf=1., eta=ev, tau=tv, c=cv)
                        val = transFilt(F, t)
                    self.sigmaHatDict[key] = val
                sigmaHat.append(val)

        sigmaHat = self.curModel.sigmaInf * np.array(sigmaHat)[invInd]
        return sigmaHat
예제 #2
0
    def sigmaHat(self, t, ColeColefunc=ColeCole):
        etc = np.c_[self.curModel.eta, self.curModel.tau, self.curModel.c]
        unqEtc, uETCind, invInd = uniqueRows(etc)

        sigmaHat = []
        for (ev, tv, cv) in unqEtc:
            if ev == 0.:
                sigmaHat.append(0.)
            else:

                key = '%.5e_%.5f_%.5e_%.5f' %(t, ev, tv, cv)
                if self.sigmaHatDict.has_key(key):
                    val = self.sigmaHatDict[key]
                else:
                    if t == 0:
                        # val = transFilt(F,1e-6)
                        val = ev/(tv*(1.-ev))
                    else:
                        F = lambda frq: (1j*2*np.pi*frq)*ColeColefunc(frq, sigmaInf=1., eta=ev, tau=tv, c=cv)
                        val = transFilt(F,t)
                    self.sigmaHatDict[key] = val    
                sigmaHat.append(val)
        
        sigmaHat = self.curModel.sigmaInf*np.array(sigmaHat)[invInd]
        return sigmaHat
예제 #3
0
 def CCTF(t, sigmaInf, eta, tau, c):
     F = lambda frq: (1j * 2 * np.pi * frq) * ColeCole(
         frq, sigmaInf=sigmaInf, eta=eta, tau=tau, c=c)
     return transFilt(F, t)
예제 #4
0
 def CCTF(t, sigmaInf, eta, tau, c):
     F = lambda frq: (1j*2*np.pi*frq)*ColeCole(frq, sigmaInf=sigmaInf, eta=eta, tau=tau, c=c)
     return transFilt(F,t)