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
system (hopsflow.gaussflow.SystemParams) – the system parameters, see
SystemParamsα (hopsflow.util.BCF) – the (finite temperature) BCF
α_0_dot (hopsflow.util.BCF) – the zero temperature BCF time derivative
n (int) – the excitation number of the initial state of the system \(|n\rangle\)
- 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)¶
- inv(t) numpy.ndarray[source]¶
- Return type
- 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
- α_0: hopsflow.util.BCF¶
- 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
- 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]