Esempio n. 1
0
def evaluate_cumulant(cum, positive_times = [], leading_index=None,
                      lang = "Python", arrays=None):
    """
    
    """
    t0 = time.time()
    A = cum.rewrite(gg)
    expr = CumulantExpr(A)
    expr = expr.evaluate()
    
    t1 = time.time()
    for tt in positive_times:
        expr = CumulantExpr(expr)._make_positive(tt)    
        
    t2 = time.time()
    #a = leading_index[0]
    if leading_index is not None:
        D = expr._leading_index(leading_index)
        expr = D._getExpr()
        
    t3 = time.time()
    if lang == "Fortran":
        ss = fortran_code(expr.__str__())
    elif lang == "Python":
        ss = python_code(expr.__str__(),arrays=arrays)
    else:
        raise Exception("Unknown language")
    
    print(t1-t0)
    print(t2-t1)
    print(t3-t2)
    
    return ss
Esempio n. 2
0
def evaluate_cumulant(cum):
    """
    
    """
    A = cum.rewrite(gg)
    expr = CumulantExpr(A)
    expr = expr.evaluate()
    expr = CumulantExpr(expr)._make_positive(t1)
    expr = CumulantExpr(expr)._make_positive(t2)
    expr = CumulantExpr(expr)._make_positive(t3)
    D = expr._leading_index(a)
    expr = D._getExpr()

    ss = fortran_code(expr.__str__())

    return ss
Esempio n. 3
0
def evaluate_cumulant(cum,
                      positive_times=[],
                      leading_index=None,
                      lang="Python",
                      arrays=None):
    """
    
    """
    t0 = time.time()
    A = cum.rewrite(gg)
    expr = CumulantExpr(A)
    expr = expr.evaluate()

    t1 = time.time()
    for tt in positive_times:
        expr = CumulantExpr(expr)._make_positive(tt)

    t2 = time.time()
    #a = leading_index[0]
    if leading_index is not None:
        D = expr._leading_index(leading_index)
        expr = D._getExpr()

    t3 = time.time()
    if lang == "Fortran":
        ss = fortran_code(expr.__str__())
    elif lang == "Python":
        ss = python_code(expr.__str__(), arrays=arrays)
    else:
        raise Exception("Unknown language")

    print(t1 - t0)
    print(t2 - t1)
    print(t3 - t2)

    return ss
Esempio n. 4
0

verbatim = False
if verbatim:
    print(" ")
    print("Expression to evaluate: ")
    print(" ")
    print("Tr_bath{",A,"W_eq}")
    print(" ")
    print(" ")


A = A.rewrite(gg)
expr = CumulantExpr(A)
""" use option large=T to calculate evaluate in T --> oo """
expr = expr.evaluate(large=T) 
""" use the symetry of lineshape function in the exciton indices """
#D = CumulantExpr(expr)._leading_index(a)
#expr = D._getExpr()

A = Anorm.rewrite(gg)
norm = CumulantExpr(A)
""" use option large=T to calculate evaluate in T --> oo """
norm = norm.evaluate(large=T) 
""" use the symetry of lineshape function in the exciton indices """
#D = CumulantExpr(expr)._leading_index(a)
#expr = D._getExpr()

expr = (expr-norm).simplify()

if verbatim:
Esempio n. 5
0
    print(" ")
    print("Expression to evaluate: ")
    print(" ")
    print("    Tr_bath{",A,"W_eq}")
    print(" ")
    print("The expression is normalized by:")
    print(" ")
    print("    Tr_bath{",Anorm,"W_eq}")
    print(" ")  



A = A.rewrite(gg)
expr = CumulantExpr(A)
""" use option large=T to  evaluate in T --> oo """
expr = expr.evaluate() #large=T)
#expr = CumulantExpr(expr)._make_positive(t)
""" use the symetry of lineshape function in the exciton indices """
#D = expr._leading_index(b)
#D = D._leading_index(a)
#expr = D._getExpr()

A = Anorm.rewrite(gg)
norm = CumulantExpr(A)

""" use option large=T to evaluate in T --> oo """
norm = norm.evaluate(large=T) 
""" use the symetry of lineshape function in the exciton indices """
#D = CumulantExpr(expr)._leading_index(a)
#expr = D._getExpr()
print("Norm: ", norm)