def predictSpectrum(E, LMax, E_0):
    print(E)
    result = []
    for L in range(LMax):
        partitions = usefulTools.generatePartitions(L)
        result += [[L, E_0 + stateEnergyFromDispersion(p, E)] for p in partitions]
    return result
def calcPredictedSpectrum(LMax, g, h_22, h_33, E_0):
    predSpectrum = []
    for L in range(LMax):
        partitions = generatePartitions(L)
        predSpectrum += [[L, E_0 + stateEnergy(p, g, h_22, h_33)]
                         for p in partitions]
    return predSpectrum
def findDispersion(spectrum, LMax):
    E = {0 : 0}
    E_0 = spectrum[0][1]
    energyIndex = 1
    for L in range(1,LMax):
        E[L] = spectrum[energyIndex][1] - E_0
        energyIndex += len(usefulTools.generatePartitions(L))
    return E
예제 #4
0
def calcSpetrumCoulomb(LMax, E_0, h_22, h_33, f, N, m):
    result = []
    for L in range(LMax):
        partitions = generatePartitions(L)
        result += [[
            L,
            E_0 + f * stateEnergyCoulomb(p, N, m) + stateEnergy(p, h_22, h_33)
        ] for p in partitions]
    return result
예제 #5
0
 def convertToShur(self, N):
     partitions = generatePartitions(sum(self.partition))
     resultPoly = genralSymPolySchur([
         schurPoly(
             p,
             self.coeficient *
             characterTables.characterTab(p, self.partition))
         for p in partitions if len(p) <= N
     ])
     return resultPoly
예제 #6
0
def calcSpetrum(LMax, E_0, h_22, h_33, maxOrder, N, m):
    result = []
    for L in range(LMax):
        partitions = generatePartitions(L)
        levelMatrix = numpy.array([[
            H(h_22, h_33, state1, state2, maxOrder, N, m)
            for state2 in partitions
        ] for state1 in partitions])
        print(levelMatrix)
        energies = numpy.linalg.eigvals(levelMatrix)
        result += [[L, E_0 + E] for E in energies]
    return result
예제 #7
0
def generateStates(L, N):
    """
    Generate a slater basis of states for angular momentum level L above ground.
    """
    partitions = [item for item in generatePartitions(L) if len(item) <= N]
    print(partitions)
    states = []
    for x in partitions:
        tempState = [i for i in range(N)]
        y = len(x)
        for i in range(y):
            tempState[N - 1 - i] = tempState[N - 1 - i] + x[y - 1 - i]
        states.append(tempState)
    #X = slatToSymBasisTrans.basisConversion(states, partitions, N)
    X = 0
    return states, X
예제 #8
0
def calcSpetrumZeroOrder(LMax, E_0, h_22, h_33):
    result = []
    for L in range(LMax):
        partitions = generatePartitions(L)
        result += [[L, E_0 + stateEnergy(p, h_22, h_33)] for p in partitions]
    return result