GAUSSflow

class hopsflow.gaussflow.Flow(system: hopsflow.gaussflow.SystemParams, α: hopsflow.util.BCF, α_0_dot: hopsflow.util.BCF, n: int)[source]

A collection of methods to calculate the time derivative of the bath energy expectation value \(\frac{d}{dt}\langle H_B\rangle\) which can be retrieved as a function of time by calling this object.

Parameters
A

the pre-factors of the exponential sum of \(A=G_{11}=\sum_k A_k e^{-C_k \cdot t}\)

A_conv(t: Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]])[source]

The integral \(\int_0^t A(s)\dot{\alpha}_0(t-s)ds\).

Parameters

t (Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) –

B

the pre-factors of the exponential sum of B

B_conv(t: Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]])[source]

The integral \(\int_0^t B(s)\dot{\alpha}_0(t-s)ds\).

Parameters

t (Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) –

C

the exponents of the exponential sum of \(B=G_{12}=\sum_k B_k e^{-C_k \cdot t}\)

  • note the minus sign

G

the pre-factors factors in the BCF expansion

L

the exponential factors in the BCF derivative expansion \(\dot{\alpha}_0=\sum_k P_k e^{-L_k \cdot t}\)

P

the pre-factors in the BCF derivative expansion

Q

the exponential factors in the zero temperature BCF expansion \(\alpha=\sum_k U_k e^{-Q_k \cdot t}\)

U

the pre-factors factors in the zero temperature BCF expansion

W

the exponential factors in the BCF expansion \(\alpha=\sum_k G_k e^{-W_k \cdot t}\)

flow_nontherm(t: Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]])[source]

The part of the flow that does not involve \(\alpha\).

Parameters

t (Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) –

flow_therm_nonzero(t: Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]])[source]

The part of the flow that does involve \(\alpha-\alpha_0\).

Parameters

t (Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) –

flow_therm_zero(t: Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]])[source]

The part of the flow that does involve \(\alpha\).

Parameters

t (Union[numpy.typing._array_like._SupportsArray[numpy.dtype], numpy.typing._nested_sequence._NestedSequence[numpy.typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy.typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) –

p_s_0

the expectation value \(\langle q(0)^2\rangle\)

prop

the propagator matrix \(G(t)\), see Propagator

q_s_0

the expectation value \(\langle q(0)^2\rangle\)

qp_0

the expectation value \(\langle q(0)p(0)\rangle\)

system

the system parameters

Γ1

the coefficient matrix \(\Gamma^1\)

Γ2

the coefficient matrix \(\Gamma^2\)

Γ3

the coefficient matrix \(\Gamma^3\)

ΓA

the coefficient matrix \(\Gamma^A\)

α

the BCF

α_0

the zero temperature BCF

class hopsflow.gaussflow.Propagator(sys: hopsflow.gaussflow.SystemParams)[source]

The propagator matrix \(G\) for the system.

You can get inidividual matrix elements as functions of time through indexing this object.

Calling it with a time argument returns the whole matrix as array of shape (time, 2, 2).

Parameters

sys (hopsflow.gaussflow.SystemParams) – a parameter object with the system parameters

el_11(t)
el_12(t)
el_21(t)
el_22(t)[source]
inv(t) numpy.ndarray[source]
Return type

numpy.ndarray

class hopsflow.gaussflow.SystemParams(Ω: float, η: float, α_0: hopsflow.util.BCF)[source]

A parameter object to hold information about the physical system and the global parameters for the algorithm.

Parameters
  • Ω (float) – the system hamiltonian energy scale, \(H_s = \Omega (p^2 + q^2)\)

  • η (float) – the coupling strength (in essence a prefactor to the BCF)

  • α_0 (hopsflow.util.BCF) – the zero temperature BCF

Attr t_max

the maximum simulation time, will be copied from α

Attr W

the exponential factors in the BCF expansion

Attr G

the pre-factors in the BCF expansion

Return type

None

G: numpy.ndarray
W: numpy.ndarray
t_max: float
Ω: float
α_0: hopsflow.util.BCF
η: float
hopsflow.gaussflow.calculate_coefficients(sys: hopsflow.gaussflow.SystemParams) tuple[numpy.ndarray, numpy.ndarray][source]

Calculates the coefficients required to construct the propagator matrix \(G\).

Parameters

sys (hopsflow.gaussflow.SystemParams) – a parameter object with the system parameters

Returns

the exponents and the residuals which play a role as pre-factors

Return type

tuple[numpy.ndarray, numpy.ndarray]

hopsflow.gaussflow.construct_polynomials(sys: hopsflow.gaussflow.SystemParams) tuple[numpy.polynomial.polynomial.Polynomial, numpy.polynomial.polynomial.Polynomial][source]

Construct the polynomials required to find the coefficients and exponents of the solution.

Parameters

sys (hopsflow.gaussflow.SystemParams) – a parameter object with the system parameters

Returns

a list of polynomials

  • \(f_0(z) = \prod_k (z-z_k) (z-z_k^{\ast})\)

  • \(p(z) = p_1(z) + \sum_n q_n(z)\) where
    • \(p_1(z) = (z^2 + \Omega^2)\prod_k (z-z_k)(z-z_k^{\ast})\)

    • \(q_n(z)=\Omega f_n(z) \prod_{k\neq n}(z-z_k) (z-z_k^{\ast})\)

Return type

tuple[numpy.polynomial.polynomial.Polynomial, numpy.polynomial.polynomial.Polynomial]