Skip to content
Snippets Groups Projects
Commit cebbabb9 authored by Ivan Kondov's avatar Ivan Kondov
Browse files

adapted two examples to use SPLP and not old LiouvillePowers class

parent eeb9473a
No related branches found
No related tags found
1 merge request!1Symmetric propagators
""" Test the polynomial expansion for a free particle """
from rotagaporp.liouville import q, p, LiouvillePowers
import sympy as sp
from rotagaporp.liouville import SPLP
order = 4
ilnq = LiouvillePowers(order, function=q, hamiltonian=p**2/2,
recursion='chebyshev', sign=1)
ilnp = LiouvillePowers(order, function=p, hamiltonian=p**2/2,
recursion='chebyshev', sign=1)
q = sp.Symbol('q')
p = sp.Symbol('p')
hamiltonian = p**2/2
nterms = 4
ilnq = SPLP(nterms, hamiltonian, q, p, q, recursion='chebyshev', sign=1)
ilnp = SPLP(nterms, hamiltonian, q, p, p, recursion='chebyshev', sign=1)
print(ilnq, ilnp)
print(ilnq.Lf, ilnp.Lf)
""" Analysis of the terms of one-particle (iL)^n in one dimension """
import sympy as sp
from rotagaporp.liouville import q, p, LiouvillePowers
from rotagaporp.liouville import SPLP
order = 5
iln = LiouvillePowers(order, function=q, h_mixed=False, f_mixed=False)
powers = list(reversed(range(iln.maxorder)))
A = [sp.diff(iln.H, q, n) for n in range(iln.maxorder)]
B = [sp.diff(iln.H, p, n) for n in range(iln.maxorder)]
q = sp.Symbol('q')
p = sp.Symbol('p')
hamiltonian = sp.Function('V', real=True)(q) + sp.Function('T', real=True)(p)
nterms = 5
iln = SPLP(nterms, hamiltonian, q, p, function=q)
powers = list(reversed(range(iln.nterms)))
A = [sp.diff(iln.H, q, n) for n in range(iln.nterms)]
B = [sp.diff(iln.H, p, n) for n in range(iln.nterms)]
derivs = [d for pairs in reversed(list(zip(A, B))) for d in pairs]
subs_q = [sp.Symbol(s+str(k)) for k in powers for s in ['A', 'B']]
subs_p = [sp.Symbol(s+str(k)) for k in powers for s in ['B', 'A']]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment