环境
玻色子环境
- class BosonicEnvironment(T: float = None, tag: Any = None)[source]
开放量子系统的玻色环境。它由其光谱密度和温度或等效地由其功率谱或其双时间自相关函数来表征。
使用其中一个类方法
from_spectral_density,from_power_spectrum或from_correlation_function来 从这些特征函数之一手动构建环境,或者使用预定义的子类,例如DrudeLorentzEnvironment,UnderDampedEnvironment或OhmicEnvironment。玻色环境提供了多种方法来用多指数相关函数近似环境,例如可以在HEOM求解器中使用。近似环境表示为
ExponentialBosonicEnvironment。所有玻色子环境都可以通过直接拟合它们的相关函数与多指数假设(
approx_by_cf_fit)或通过将它们的谱密度拟合为洛伦兹函数的和(approx_by_sd_fit)来近似,这些方法对应于具有已知多指数分解的欠阻尼环境。子类可能提供额外的近似方法,例如在Drude-Lorentz环境的情况下,DrudeLorentzEnvironment.approx_by_matsubara或DrudeLorentzEnvironment.approx_by_pade。- Parameters:
- Toptional, float
这个环境的温度。
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- approx_by_cf_fit(
- tlist: ArrayLike,
- target_rsme: float = 2e-05,
- Nr_max: int = 10,
- Ni_max: int = 10,
- guess: list[float] = None,
- lower: list[float] = None,
- upper: list[float] = None,
- sigma: float | ArrayLike = None,
- maxfev: int = None,
- full_ansatz: bool = False,
- combine: bool = True,
- tag: Any = None,
通过使用多指数假设拟合其相关函数,生成对此环境的近似。指数的数量是基于将归一化均方根误差降低到给定阈值以下迭代确定的。
具体来说,实部和虚部通过以下模型函数进行拟合:
\[\begin{split}\operatorname{Re}[C(t)] = \sum_{k=1}^{N_r} \operatorname{Re}\Bigl[ (a_k + \mathrm i d_k) \mathrm e^{(b_k + \mathrm i c_k) t}\Bigl] , \\ \operatorname{Im}[C(t)] = \sum_{k=1}^{N_i} \operatorname{Im}\Bigl[ (a'_k + \mathrm i d'_k) \mathrm e^{(b'_k + \mathrm i c'_k) t} \Bigr].\end{split}\]如果参数 full_ansatz 是 False,\(d_k\) 和 \(d'_k\) 被设为零,模型函数简化为
\[\begin{split}\operatorname{Re}[C(t)] = \sum_{k=1}^{N_r} a_k e^{b_k t} \cos(c_{k} t) , \\ \operatorname{Im}[C(t)] = \sum_{k=1}^{N_i} a'_k e^{b'_k t} \sin(c'_{k} t) .\end{split}\]简化版本提供了更快的拟合速度,然而它无法处理具有\(\operatorname{Im}[C(0)] \neq 0\)的异常谱密度,因为\(\sin(0) = 0\)。
- Parameters:
- tlistarray_like
执行拟合的时间范围。
- target_rmseoptional, float
期望的归一化均方根误差(默认2e-5)。可以设置为None,以仅使用最大模式数(Nr_max,Ni_max)进行一次拟合。
- Nr_maxoptional, int
用于拟合实部的最大模式数(默认值为10)。
- Ni_maxoptional, int
用于拟合虚部的最大模式数(默认值为10)。
- guessoptional, list of float
参数的初始猜测 \(a_k\), \(b_k\) 等。 相同的初始猜测用于所有k值,以及实部和虚部。如果 full_ansatz 为 True,guess 是一个大小为4的列表,否则,它是一个大小为3的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- loweroptional, list of float
参数 \(a_k\), \(b_k\) 等的下界。 所有 k 值的下界相同,并且适用于实部和虚部。如果 full_ansatz 为 True,lower 是一个大小为 4 的列表,否则,它是一个大小为 3 的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- upperoptional, list of float
参数 \(a_k\), \(b_k\) 等的上限。 所有 k 值以及实部和虚部使用相同的上限。如果 full_ansatz 为 True,upper 是一个大小为 4 的列表,否则,它是一个大小为 3 的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- sigmaoptional, float or list of float
为环境的相关函数添加不确定性,即为拟合添加余地。如果相关函数在时间范围的某些部分非常小,调整此参数非常有用。更多详情,请参阅
scipy.optimize.curve_fit的文档。- maxfevoptional, int
在优化过程中允许拟合参数变化的次数(每次拟合)。
- full_ansatzoptional, bool (default False)
如果将此设置为False,则参数\(d_k\)都将设置为零。完整的ansatz,包括\(d_k\),通常会导致拟合速度显著减慢,并且通常需要手动调整guesses、lower和upper。另一方面,完整的ansatz可以导致更好的拟合,使用更少的指数,特别是对于具有\(\operatorname{Im}[C(0)] \neq 0\)的异常谱密度,简化ansatz将始终给出\(\operatorname{Im}[C(0)] = 0\)。当使用默认值的完整ansatz时,如果拟合时间过长,我们建议手动选择猜测值和边界。
- combineoptional, bool (default True)
是否将具有相同频率的指数合并。详情请参见
combine。- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- fit_infodictionary
包含有关拟合的以下信息的字典。
- “Nr”
用于拟合相关函数实部的项数。
- “Ni”
用于拟合相关函数虚部的项数。
- “fit_time_real”
拟合相关函数实部所花费的时间(以秒为单位)。
- “fit_time_imag”
拟合相关函数虚部所花费的时间(以秒为单位)。
- “rmse_real”
在拟合相关函数的实部时获得的归一化均方误差。
- “rmse_imag”
在拟合相关函数的虚部时获得的归一化均方误差。
- “params_real”
拟合参数(形状为Nx3或Nx4的数组)用于相关函数的实部。
- “params_imag”
拟合参数(形状为Nx3或Nx4的数组)用于相关函数的虚部。
- “summary”
一个字符串,总结了关于拟合的信息。
- approx_env
- approx_by_sd_fit(
- wlist: ArrayLike,
- Nk: int = 1,
- target_rmse: float = 5e-06,
- Nmax: int = 10,
- guess: list[float] = None,
- lower: list[float] = None,
- upper: list[float] = None,
- sigma: float | ArrayLike = None,
- maxfev: int = None,
- combine: bool = True,
- tag: Any = None,
通过用欠阻尼项的总和拟合其频谱密度,生成此环境的近似值。每个欠阻尼项实际上就像一个欠阻尼环境。我们使用已知的欠阻尼环境的指数分解,为每个项保留Nk个Matsubara项。欠阻尼项的数量是基于将归一化均方根误差降低到给定阈值以下而迭代确定的。
具体来说,光谱密度通过以下模型函数拟合:
\[J(\omega) = \sum_{k=1}^{N} \frac{2 a_k b_k \omega}{\left(\left( \omega + c_k \right)^2 + b_k^2 \right) \left(\left( \omega - c_k \right)^2 + b_k^2 \right)}\]- Parameters:
- wlistarray_like
执行拟合的频率范围。
- Nkoptional, int
在每个模式中保留的松原项数量(默认值为1)。
- target_rmseoptional, float
期望的归一化均方根误差(默认5e-6)。可以设置为None以仅使用最大模式数(Nmax)进行一次拟合。
- Nmaxoptional, int
用于拟合的最大模式数(默认值为10)。
- guessoptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的初始猜测值。对于所有 k 值,使用相同的初始猜测值。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- loweroptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的下界。所有 k 值使用相同的下界。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- upperoptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的上限。所有 k 值使用相同的上限。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- sigmaoptional, float or list of float
为环境的光谱密度添加不确定性,即为拟合添加余地。如果光谱密度在频率范围的某些部分非常小,调整此参数非常有用。更多详情,请参阅
scipy.optimize.curve_fit的文档。- maxfevoptional, int
在优化过程中允许拟合参数变化的次数(每次拟合)。
- combineoptional, bool (default True)
是否将具有相同频率的指数合并。详情请参见
combine。- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- fit_infodictionary
包含有关拟合的以下信息的字典。
- “N”
拟合中使用的欠阻尼项的数量。
- “Nk”
每个欠阻尼项中包含的松原模式数量。
- “fit_time”
拟合所花费的时间(以秒为单位)。
- “rmse”
拟合中获得的归一化均方误差。
- “params”
拟合参数(形状为Nx3的数组)。
- “summary”
一个字符串,总结了关于拟合的信息。
- approx_env
- abstract correlation_function(
- t: float | ArrayLike,
- *,
- eps: float = 1e-10,
这个环境的两时间自相关函数。有关QuTiP使用的定义的具体信息,请参阅玻色环境的用户指南。
如果相关函数没有已知的解析表达式,它将通过快速傅里叶变换从功率谱中导出。
如果功率谱也没有已知的解析表达式,它将从谱密度中导出。在这种情况下,必须指定此环境的温度。
- Parameters:
- tarray_like or float
评估相关函数的时间点。
- epsoptional, float
在功率谱是从谱密度推导出来的情况下使用;请参阅
BosonicEnvironment.power_spectrum的文档。
- classmethod from_correlation_function(
- C: Callable[[float], complex] | ArrayLike,
- tlist: ArrayLike = None,
- tMax: float = None,
- *,
- T: float = None,
- tag: Any = None,
- args: dict[str, Any] = None,
从提供的相关函数构造一个玻色环境。提供的函数仅用于时间\(t \geq 0\)。在时间\(t < 0\)时,强制使用对称关系\(C(-t) = C(t)^\ast\)。
- Parameters:
- Ccallable or array_like
相关函数。可以作为Python函数或数组提供。当使用函数时,签名应为
C(t: array_like, **args) -> array_like其中
t是时间,args是一个包含函数其他参数的字典。- tlistoptional, array_like
相关函数采样的时间(如果它作为数组提供)。
- tMaxoptional, float
指定相关函数在区间 [-tMax, tMax] 之外基本上为零。用于数值积分目的。
- Toptional, float
环境温度。(只有在提供温度的情况下,才能从相关函数计算此环境的光谱密度。)
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- argsoptional, dict
相关函数
C的额外参数。
- classmethod from_power_spectrum(
- S: Callable[[float], float] | ArrayLike,
- wlist: ArrayLike = None,
- wMax: float = None,
- *,
- T: float = None,
- tag: Any = None,
- args: dict[str, Any] = None,
使用提供的功率谱构建一个玻色环境。
- Parameters:
- Scallable or array_like
功率谱。可以作为Python函数或数组提供。当使用函数时,签名应为
S(w: array_like, **args) -> array_like其中
w是频率,args是一个包含函数其他参数的字典。- wlistoptional, array_like
功率谱采样的频率(如果它作为数组提供)。
- wMaxoptional, float
指定功率谱在区间 [-wMax, wMax] 之外基本上为零。用于数值积分目的。
- Toptional, float
环境温度。(只有在提供温度的情况下,才能从功率谱计算此环境的光谱密度。)
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- argsoptional, dict
功率谱
S的额外参数。
- classmethod from_spectral_density(
- J: Callable[[float], float] | ArrayLike,
- wlist: ArrayLike = None,
- wMax: float = None,
- *,
- T: float = None,
- tag: Any = None,
- args: dict[str, Any] = None,
使用提供的谱密度构建一个玻色环境。 提供的函数仅用于频率 \(\omega > 0\)。在频率 \(\omega \leq 0\) 时,根据 QuTiP 使用的定义,谱密度为零。有关在负频率处支持的谱密度的说明,请参阅用户指南中的 玻色环境。
- Parameters:
- Jcallable or array_like
频谱密度。可以作为Python函数或数组提供。当使用函数时,签名应为
J(w: array_like, **args) -> array_like其中
w是频率,args是一个包含函数其他参数的元组。- wlistoptional, array_like
频谱密度被采样的频率(如果它作为数组提供)。
- wMaxoptional, float
指定频谱密度在区间 [-wMax, wMax] 之外基本上为零。用于数值积分目的。
- Toptional, float
环境温度。(只有在提供温度的情况下,才能从光谱密度计算此环境的相关函数和功率谱。)
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- argsoptional, dict
光谱密度
S的额外参数。
- abstract power_spectrum(
- w: float | ArrayLike,
- *,
- eps: float = 1e-10,
这个环境的功率谱。有关QuTiP使用的定义的具体信息,请参阅玻色环境的用户指南。
如果没有已知的功率谱的解析表达式,它将从谱密度中导出。在这种情况下,必须指定此环境的温度。
如果光谱密度也没有已知的解析表达式,功率谱将通过快速傅里叶变换从相关函数中导出。
- Parameters:
- warray_like or float
评估功率谱的频率。
- epsoptional, float
要从频谱密度推导出零频率功率谱,必须对频谱密度进行数值微分。在这种情况下,此参数用作数值微分中的有限差分。
- class DrudeLorentzEnvironment(
- T: float,
- lam: float,
- gamma: float,
- *,
- Nk: int = 10,
- tag: Any = None,
-
描述了一个具有光谱密度的Drude-Lorentz玻色环境
\[J(\omega) = \frac{2 \lambda \gamma \omega}{\gamma^{2}+\omega^{2}}\](参见[BoFiN23]中的公式15)。
- Parameters:
- Tfloat
环境温度。
- lamfloat
耦合强度。
- gammafloat
频谱密度截止频率。
- Nkoptional, int, defaults to 10
用于计算相关函数的Pade指数数量。
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- approx_by_cf_fit(
- tlist: ArrayLike,
- target_rsme: float = 2e-05,
- Nr_max: int = 10,
- Ni_max: int = 10,
- guess: list[float] = None,
- lower: list[float] = None,
- upper: list[float] = None,
- sigma: float | ArrayLike = None,
- maxfev: int = None,
- full_ansatz: bool = False,
- combine: bool = True,
- tag: Any = None,
通过使用多指数假设拟合其相关函数,生成对此环境的近似。指数的数量是基于将归一化均方根误差降低到给定阈值以下迭代确定的。
具体来说,实部和虚部通过以下模型函数进行拟合:
\[\begin{split}\operatorname{Re}[C(t)] = \sum_{k=1}^{N_r} \operatorname{Re}\Bigl[ (a_k + \mathrm i d_k) \mathrm e^{(b_k + \mathrm i c_k) t}\Bigl] , \\ \operatorname{Im}[C(t)] = \sum_{k=1}^{N_i} \operatorname{Im}\Bigl[ (a'_k + \mathrm i d'_k) \mathrm e^{(b'_k + \mathrm i c'_k) t} \Bigr].\end{split}\]如果参数 full_ansatz 是 False,\(d_k\) 和 \(d'_k\) 被设为零,模型函数简化为
\[\begin{split}\operatorname{Re}[C(t)] = \sum_{k=1}^{N_r} a_k e^{b_k t} \cos(c_{k} t) , \\ \operatorname{Im}[C(t)] = \sum_{k=1}^{N_i} a'_k e^{b'_k t} \sin(c'_{k} t) .\end{split}\]简化版本提供了更快的拟合速度,然而它无法处理具有\(\operatorname{Im}[C(0)] \neq 0\)的异常谱密度,因为\(\sin(0) = 0\)。
- Parameters:
- tlistarray_like
执行拟合的时间范围。
- target_rmseoptional, float
期望的归一化均方根误差(默认2e-5)。可以设置为None,以仅使用最大模式数(Nr_max,Ni_max)进行一次拟合。
- Nr_maxoptional, int
用于拟合实部的最大模式数(默认值为10)。
- Ni_maxoptional, int
用于拟合虚部的最大模式数(默认值为10)。
- guessoptional, list of float
参数的初始猜测 \(a_k\), \(b_k\) 等。 相同的初始猜测用于所有k值,以及实部和虚部。如果 full_ansatz 为 True,guess 是一个大小为4的列表,否则,它是一个大小为3的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- loweroptional, list of float
参数 \(a_k\), \(b_k\) 等的下界。 所有 k 值的下界相同,并且适用于实部和虚部。如果 full_ansatz 为 True,lower 是一个大小为 4 的列表,否则,它是一个大小为 3 的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- upperoptional, list of float
参数 \(a_k\), \(b_k\) 等的上限。 所有 k 值以及实部和虚部使用相同的上限。如果 full_ansatz 为 True,upper 是一个大小为 4 的列表,否则,它是一个大小为 3 的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- sigmaoptional, float or list of float
为环境的相关函数添加不确定性,即为拟合添加余地。如果相关函数在时间范围的某些部分非常小,调整此参数非常有用。更多详情,请参阅
scipy.optimize.curve_fit的文档。- maxfevoptional, int
在优化过程中允许拟合参数变化的次数(每次拟合)。
- full_ansatzoptional, bool (default False)
如果将此设置为False,则参数\(d_k\)都将设置为零。完整的ansatz,包括\(d_k\),通常会导致拟合速度显著减慢,并且通常需要手动调整guesses、lower和upper。另一方面,完整的ansatz可以导致更好的拟合,使用更少的指数,特别是对于具有\(\operatorname{Im}[C(0)] \neq 0\)的异常谱密度,简化ansatz将始终给出\(\operatorname{Im}[C(0)] = 0\)。当使用默认值的完整ansatz时,如果拟合时间过长,我们建议手动选择猜测值和边界。
- combineoptional, bool (default True)
是否将具有相同频率的指数合并。详情请参见
combine。- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- fit_infodictionary
包含有关拟合的以下信息的字典。
- “Nr”
用于拟合相关函数实部的项数。
- “Ni”
用于拟合相关函数虚部的项数。
- “fit_time_real”
拟合相关函数实部所花费的时间(以秒为单位)。
- “fit_time_imag”
拟合相关函数虚部所花费的时间(以秒为单位)。
- “rmse_real”
在拟合相关函数的实部时获得的归一化均方误差。
- “rmse_imag”
在拟合相关函数的虚部时获得的归一化均方误差。
- “params_real”
拟合参数(形状为Nx3或Nx4的数组)用于相关函数的实部。
- “params_imag”
拟合参数(形状为Nx3或Nx4的数组)用于相关函数的虚部。
- “summary”
一个字符串,总结了关于拟合的信息。
- approx_env
- approx_by_matsubara(
- Nk: int,
- combine: bool = True,
- compute_delta: Literal[False] = False,
- tag: Any = None,
- approx_by_matsubara(
- Nk: int,
- combine: bool = True,
- compute_delta: Literal[True] = True,
- tag: Any = None,
通过截断其Matsubara展开来生成此环境的近似值。
- Parameters:
- Nkint
包含的松原项数量。总的来说,相关函数的实部将包含Nk+1项,虚部包含1项。
- combinebool, default True
是否将具有相同频率的指数合并。
- compute_deltabool, default False
是否计算并返回近似差异(见下文)。
- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- deltafloat, optional
近似差异。即,Drude-Lorentz环境的真实相关函数与
Nk指数项之和的差异大约为2 * delta * dirac(t),其中dirac(t)表示Dirac delta函数。 它可以用来创建一个“终止器”项,添加到系统动力学中以考虑这种差异,参见system_terminator。
- approx_env
- approx_by_pade(
- Nk: int,
- combine: bool = True,
- compute_delta: Literal[False] = False,
- tag: Any = None,
- approx_by_pade(
- Nk: int,
- combine: bool = True,
- compute_delta: Literal[True] = True,
- tag: Any = None,
通过截断其Pade展开来生成此环境的近似值。
- Parameters:
- Nkint
包含的Pade项数。总的来说,相关函数的实部将包含Nk+1项,虚部包含1项。
- combinebool, default True
是否将具有相同频率的指数合并。
- compute_deltabool, default False
是否计算并返回近似差异(见下文)。
- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- deltafloat, optional
近似差异。即,Drude-Lorentz环境的真实相关函数与
Nk指数项之和的差异大约为2 * delta * dirac(t),其中dirac(t)表示Dirac delta函数。 它可以用来创建一个“终止器”项,添加到系统动力学中以考虑这种差异,参见system_terminator。
- approx_env
- approx_by_sd_fit(
- wlist: ArrayLike,
- Nk: int = 1,
- target_rmse: float = 5e-06,
- Nmax: int = 10,
- guess: list[float] = None,
- lower: list[float] = None,
- upper: list[float] = None,
- sigma: float | ArrayLike = None,
- maxfev: int = None,
- combine: bool = True,
- tag: Any = None,
通过用欠阻尼项的总和拟合其频谱密度,生成此环境的近似值。每个欠阻尼项实际上就像一个欠阻尼环境。我们使用已知的欠阻尼环境的指数分解,为每个项保留Nk个Matsubara项。欠阻尼项的数量是基于将归一化均方根误差降低到给定阈值以下而迭代确定的。
具体来说,光谱密度通过以下模型函数拟合:
\[J(\omega) = \sum_{k=1}^{N} \frac{2 a_k b_k \omega}{\left(\left( \omega + c_k \right)^2 + b_k^2 \right) \left(\left( \omega - c_k \right)^2 + b_k^2 \right)}\]- Parameters:
- wlistarray_like
执行拟合的频率范围。
- Nkoptional, int
在每个模式中保留的松原项数量(默认值为1)。
- target_rmseoptional, float
期望的归一化均方根误差(默认5e-6)。可以设置为None以仅使用最大模式数(Nmax)进行一次拟合。
- Nmaxoptional, int
用于拟合的最大模式数(默认值为10)。
- guessoptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的初始猜测值。对于所有 k 值,使用相同的初始猜测值。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- loweroptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的下界。所有 k 值使用相同的下界。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- upperoptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的上限。所有 k 值使用相同的上限。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- sigmaoptional, float or list of float
为环境的光谱密度添加不确定性,即为拟合添加余地。如果光谱密度在频率范围的某些部分非常小,调整此参数非常有用。更多详情,请参阅
scipy.optimize.curve_fit的文档。- maxfevoptional, int
在优化过程中允许拟合参数变化的次数(每次拟合)。
- combineoptional, bool (default True)
是否将具有相同频率的指数合并。详情请参见
combine。- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- fit_infodictionary
包含有关拟合的以下信息的字典。
- “N”
拟合中使用的欠阻尼项的数量。
- “Nk”
每个欠阻尼项中包含的松原模式数量。
- “fit_time”
拟合所花费的时间(以秒为单位)。
- “rmse”
拟合中获得的归一化均方误差。
- “params”
拟合参数(形状为Nx3的数组)。
- “summary”
一个字符串,总结了关于拟合的信息。
- approx_env
- correlation_function(
- t: float | ArrayLike,
- Nk: int = None,
- **kwargs,
计算Drude-Lorentz环境的二次自相关函数。该计算通过求和Pade展开的大量指数来完成。
- Parameters:
- tarray_like or float
评估相关函数的时间。
- Nkint, optional
使用的指数数量。如果未提供,则使用类实例化时提供的值。
- class UnderDampedEnvironment(
- T: float,
- lam: float,
- gamma: float,
- w0: float,
- *,
- tag: Any = None,
-
描述了一个具有频谱密度的欠阻尼环境
\[J(\omega) = \frac{\lambda^{2} \Gamma \omega}{(\omega_0^{2}- \omega^{2})^{2}+ \Gamma^{2} \omega^{2}}\](参见[BoFiN23]中的公式16)。
- Parameters:
- Tfloat
环境温度。
- lamfloat
耦合强度。
- gammafloat
频谱密度截止频率。
- w0float
频谱密度共振频率。
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- approx_by_cf_fit(
- tlist: ArrayLike,
- target_rsme: float = 2e-05,
- Nr_max: int = 10,
- Ni_max: int = 10,
- guess: list[float] = None,
- lower: list[float] = None,
- upper: list[float] = None,
- sigma: float | ArrayLike = None,
- maxfev: int = None,
- full_ansatz: bool = False,
- combine: bool = True,
- tag: Any = None,
通过使用多指数假设拟合其相关函数,生成对此环境的近似。指数的数量是基于将归一化均方根误差降低到给定阈值以下迭代确定的。
具体来说,实部和虚部通过以下模型函数进行拟合:
\[\begin{split}\operatorname{Re}[C(t)] = \sum_{k=1}^{N_r} \operatorname{Re}\Bigl[ (a_k + \mathrm i d_k) \mathrm e^{(b_k + \mathrm i c_k) t}\Bigl] , \\ \operatorname{Im}[C(t)] = \sum_{k=1}^{N_i} \operatorname{Im}\Bigl[ (a'_k + \mathrm i d'_k) \mathrm e^{(b'_k + \mathrm i c'_k) t} \Bigr].\end{split}\]如果参数 full_ansatz 是 False,\(d_k\) 和 \(d'_k\) 被设为零,模型函数简化为
\[\begin{split}\operatorname{Re}[C(t)] = \sum_{k=1}^{N_r} a_k e^{b_k t} \cos(c_{k} t) , \\ \operatorname{Im}[C(t)] = \sum_{k=1}^{N_i} a'_k e^{b'_k t} \sin(c'_{k} t) .\end{split}\]简化版本提供了更快的拟合速度,然而它无法处理具有\(\operatorname{Im}[C(0)] \neq 0\)的异常谱密度,因为\(\sin(0) = 0\)。
- Parameters:
- tlistarray_like
执行拟合的时间范围。
- target_rmseoptional, float
期望的归一化均方根误差(默认2e-5)。可以设置为None,以仅使用最大模式数(Nr_max,Ni_max)进行一次拟合。
- Nr_maxoptional, int
用于拟合实部的最大模式数(默认值为10)。
- Ni_maxoptional, int
用于拟合虚部的最大模式数(默认值为10)。
- guessoptional, list of float
参数的初始猜测 \(a_k\), \(b_k\) 等。 相同的初始猜测用于所有k值,以及实部和虚部。如果 full_ansatz 为 True,guess 是一个大小为4的列表,否则,它是一个大小为3的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- loweroptional, list of float
参数 \(a_k\), \(b_k\) 等的下界。 所有 k 值的下界相同,并且适用于实部和虚部。如果 full_ansatz 为 True,lower 是一个大小为 4 的列表,否则,它是一个大小为 3 的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- upperoptional, list of float
参数 \(a_k\), \(b_k\) 等的上限。 所有 k 值以及实部和虚部使用相同的上限。如果 full_ansatz 为 True,upper 是一个大小为 4 的列表,否则,它是一个大小为 3 的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- sigmaoptional, float or list of float
为环境的相关函数添加不确定性,即为拟合添加余地。如果相关函数在时间范围的某些部分非常小,调整此参数非常有用。更多详情,请参阅
scipy.optimize.curve_fit的文档。- maxfevoptional, int
在优化过程中允许拟合参数变化的次数(每次拟合)。
- full_ansatzoptional, bool (default False)
如果将此设置为False,则参数\(d_k\)都将设置为零。完整的ansatz,包括\(d_k\),通常会导致拟合速度显著减慢,并且通常需要手动调整guesses、lower和upper。另一方面,完整的ansatz可以导致更好的拟合,使用更少的指数,特别是对于具有\(\operatorname{Im}[C(0)] \neq 0\)的异常谱密度,简化ansatz将始终给出\(\operatorname{Im}[C(0)] = 0\)。当使用默认值的完整ansatz时,如果拟合时间过长,我们建议手动选择猜测值和边界。
- combineoptional, bool (default True)
是否将具有相同频率的指数合并。详情请参见
combine。- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- fit_infodictionary
包含有关拟合的以下信息的字典。
- “Nr”
用于拟合相关函数实部的项数。
- “Ni”
用于拟合相关函数虚部的项数。
- “fit_time_real”
拟合相关函数实部所花费的时间(以秒为单位)。
- “fit_time_imag”
拟合相关函数虚部所花费的时间(以秒为单位)。
- “rmse_real”
在拟合相关函数的实部时获得的归一化均方误差。
- “rmse_imag”
在拟合相关函数的虚部时获得的归一化均方误差。
- “params_real”
拟合参数(形状为Nx3或Nx4的数组)用于相关函数的实部。
- “params_imag”
拟合参数(形状为Nx3或Nx4的数组)用于相关函数的虚部。
- “summary”
一个字符串,总结了关于拟合的信息。
- approx_env
- approx_by_matsubara(
- Nk: int,
- combine: bool = True,
- tag: Any = None,
通过截断其Matsubara展开来生成此环境的近似值。
- Parameters:
- Nkint
包含的松原项数量。总的来说,相关函数的实部将包含Nk+2项,虚部包含2项。
- combinebool, default True
是否将具有相同频率的指数合并。
- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
ExponentialBosonicEnvironment具有多指数相关函数的近似环境。
- approx_by_sd_fit(
- wlist: ArrayLike,
- Nk: int = 1,
- target_rmse: float = 5e-06,
- Nmax: int = 10,
- guess: list[float] = None,
- lower: list[float] = None,
- upper: list[float] = None,
- sigma: float | ArrayLike = None,
- maxfev: int = None,
- combine: bool = True,
- tag: Any = None,
通过用欠阻尼项的总和拟合其频谱密度,生成此环境的近似值。每个欠阻尼项实际上就像一个欠阻尼环境。我们使用已知的欠阻尼环境的指数分解,为每个项保留Nk个Matsubara项。欠阻尼项的数量是基于将归一化均方根误差降低到给定阈值以下而迭代确定的。
具体来说,光谱密度通过以下模型函数拟合:
\[J(\omega) = \sum_{k=1}^{N} \frac{2 a_k b_k \omega}{\left(\left( \omega + c_k \right)^2 + b_k^2 \right) \left(\left( \omega - c_k \right)^2 + b_k^2 \right)}\]- Parameters:
- wlistarray_like
执行拟合的频率范围。
- Nkoptional, int
在每个模式中保留的松原项数量(默认值为1)。
- target_rmseoptional, float
期望的归一化均方根误差(默认5e-6)。可以设置为None以仅使用最大模式数(Nmax)进行一次拟合。
- Nmaxoptional, int
用于拟合的最大模式数(默认值为10)。
- guessoptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的初始猜测值。对于所有 k 值,使用相同的初始猜测值。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- loweroptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的下界。所有 k 值使用相同的下界。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- upperoptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的上限。所有 k 值使用相同的上限。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- sigmaoptional, float or list of float
为环境的光谱密度添加不确定性,即为拟合添加余地。如果光谱密度在频率范围的某些部分非常小,调整此参数非常有用。更多详情,请参阅
scipy.optimize.curve_fit的文档。- maxfevoptional, int
在优化过程中允许拟合参数变化的次数(每次拟合)。
- combineoptional, bool (default True)
是否将具有相同频率的指数合并。详情请参见
combine。- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- fit_infodictionary
包含有关拟合的以下信息的字典。
- “N”
拟合中使用的欠阻尼项的数量。
- “Nk”
每个欠阻尼项中包含的松原模式数量。
- “fit_time”
拟合所花费的时间(以秒为单位)。
- “rmse”
拟合中获得的归一化均方误差。
- “params”
拟合参数(形状为Nx3的数组)。
- “summary”
一个字符串,总结了关于拟合的信息。
- approx_env
- correlation_function(
- t: float | ArrayLike,
- **kwargs,
计算欠阻尼环境的二次自相关函数。
- Parameters:
- tarray_like or float
评估相关函数的时间。
- class OhmicEnvironment(
- T: float,
- alpha: float,
- wc: float,
- s: float,
- *,
- tag: Any = None,
-
描述了欧姆环境以及亚欧姆或超欧姆环境(取决于参数s的选择)。光谱密度为
\[J(\omega) = \alpha \frac{\omega^s}{\omega_c^{s-1}} e^{-\omega / \omega_c} .\]这个类需要安装mpmath模块。
- Parameters:
- Tfloat
环境的温度。
- alphafloat
耦合强度。
- wcfloat
截止参数。
- sfloat
频谱密度中omega的幂。
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- approx_by_cf_fit(
- tlist: ArrayLike,
- target_rsme: float = 2e-05,
- Nr_max: int = 10,
- Ni_max: int = 10,
- guess: list[float] = None,
- lower: list[float] = None,
- upper: list[float] = None,
- sigma: float | ArrayLike = None,
- maxfev: int = None,
- full_ansatz: bool = False,
- combine: bool = True,
- tag: Any = None,
通过使用多指数假设拟合其相关函数,生成对此环境的近似。指数的数量是基于将归一化均方根误差降低到给定阈值以下迭代确定的。
具体来说,实部和虚部通过以下模型函数进行拟合:
\[\begin{split}\operatorname{Re}[C(t)] = \sum_{k=1}^{N_r} \operatorname{Re}\Bigl[ (a_k + \mathrm i d_k) \mathrm e^{(b_k + \mathrm i c_k) t}\Bigl] , \\ \operatorname{Im}[C(t)] = \sum_{k=1}^{N_i} \operatorname{Im}\Bigl[ (a'_k + \mathrm i d'_k) \mathrm e^{(b'_k + \mathrm i c'_k) t} \Bigr].\end{split}\]如果参数 full_ansatz 是 False,\(d_k\) 和 \(d'_k\) 被设为零,模型函数简化为
\[\begin{split}\operatorname{Re}[C(t)] = \sum_{k=1}^{N_r} a_k e^{b_k t} \cos(c_{k} t) , \\ \operatorname{Im}[C(t)] = \sum_{k=1}^{N_i} a'_k e^{b'_k t} \sin(c'_{k} t) .\end{split}\]简化版本提供了更快的拟合速度,然而它无法处理具有\(\operatorname{Im}[C(0)] \neq 0\)的异常谱密度,因为\(\sin(0) = 0\)。
- Parameters:
- tlistarray_like
执行拟合的时间范围。
- target_rmseoptional, float
期望的归一化均方根误差(默认2e-5)。可以设置为None,以仅使用最大模式数(Nr_max,Ni_max)进行一次拟合。
- Nr_maxoptional, int
用于拟合实部的最大模式数(默认值为10)。
- Ni_maxoptional, int
用于拟合虚部的最大模式数(默认值为10)。
- guessoptional, list of float
参数的初始猜测 \(a_k\), \(b_k\) 等。 相同的初始猜测用于所有k值,以及实部和虚部。如果 full_ansatz 为 True,guess 是一个大小为4的列表,否则,它是一个大小为3的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- loweroptional, list of float
参数 \(a_k\), \(b_k\) 等的下界。 所有 k 值的下界相同,并且适用于实部和虚部。如果 full_ansatz 为 True,lower 是一个大小为 4 的列表,否则,它是一个大小为 3 的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- upperoptional, list of float
参数 \(a_k\), \(b_k\) 等的上限。 所有 k 值以及实部和虚部使用相同的上限。如果 full_ansatz 为 True,upper 是一个大小为 4 的列表,否则,它是一个大小为 3 的列表。 如果没有提供 guess, lower 和 upper,这些参数将自动选择。
- sigmaoptional, float or list of float
为环境的相关函数添加不确定性,即为拟合添加余地。如果相关函数在时间范围的某些部分非常小,调整此参数非常有用。更多详情,请参阅
scipy.optimize.curve_fit的文档。- maxfevoptional, int
在优化过程中允许拟合参数变化的次数(每次拟合)。
- full_ansatzoptional, bool (default False)
如果将此设置为False,则参数\(d_k\)都将设置为零。完整的ansatz,包括\(d_k\),通常会导致拟合速度显著减慢,并且通常需要手动调整guesses、lower和upper。另一方面,完整的ansatz可以导致更好的拟合,使用更少的指数,特别是对于具有\(\operatorname{Im}[C(0)] \neq 0\)的异常谱密度,简化ansatz将始终给出\(\operatorname{Im}[C(0)] = 0\)。当使用默认值的完整ansatz时,如果拟合时间过长,我们建议手动选择猜测值和边界。
- combineoptional, bool (default True)
是否将具有相同频率的指数合并。详情请参见
combine。- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- fit_infodictionary
包含有关拟合的以下信息的字典。
- “Nr”
用于拟合相关函数实部的项数。
- “Ni”
用于拟合相关函数虚部的项数。
- “fit_time_real”
拟合相关函数实部所花费的时间(以秒为单位)。
- “fit_time_imag”
拟合相关函数虚部所花费的时间(以秒为单位)。
- “rmse_real”
在拟合相关函数的实部时获得的归一化均方误差。
- “rmse_imag”
在拟合相关函数的虚部时获得的归一化均方误差。
- “params_real”
拟合参数(形状为Nx3或Nx4的数组)用于相关函数的实部。
- “params_imag”
拟合参数(形状为Nx3或Nx4的数组)用于相关函数的虚部。
- “summary”
一个字符串,总结了关于拟合的信息。
- approx_env
- approx_by_sd_fit(
- wlist: ArrayLike,
- Nk: int = 1,
- target_rmse: float = 5e-06,
- Nmax: int = 10,
- guess: list[float] = None,
- lower: list[float] = None,
- upper: list[float] = None,
- sigma: float | ArrayLike = None,
- maxfev: int = None,
- combine: bool = True,
- tag: Any = None,
通过用欠阻尼项的总和拟合其频谱密度,生成此环境的近似值。每个欠阻尼项实际上就像一个欠阻尼环境。我们使用已知的欠阻尼环境的指数分解,为每个项保留Nk个Matsubara项。欠阻尼项的数量是基于将归一化均方根误差降低到给定阈值以下而迭代确定的。
具体来说,光谱密度通过以下模型函数拟合:
\[J(\omega) = \sum_{k=1}^{N} \frac{2 a_k b_k \omega}{\left(\left( \omega + c_k \right)^2 + b_k^2 \right) \left(\left( \omega - c_k \right)^2 + b_k^2 \right)}\]- Parameters:
- wlistarray_like
执行拟合的频率范围。
- Nkoptional, int
在每个模式中保留的松原项数量(默认值为1)。
- target_rmseoptional, float
期望的归一化均方根误差(默认5e-6)。可以设置为None以仅使用最大模式数(Nmax)进行一次拟合。
- Nmaxoptional, int
用于拟合的最大模式数(默认值为10)。
- guessoptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的初始猜测值。对于所有 k 值,使用相同的初始猜测值。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- loweroptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的下界。所有 k 值使用相同的下界。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- upperoptional, list of float
参数 \(a_k\)、\(b_k\) 和 \(c_k\) 的上限。所有 k 值使用相同的上限。 如果没有提供 guess、lower 和 upper,这些参数将自动选择。
- sigmaoptional, float or list of float
为环境的光谱密度添加不确定性,即为拟合添加余地。如果光谱密度在频率范围的某些部分非常小,调整此参数非常有用。更多详情,请参阅
scipy.optimize.curve_fit的文档。- maxfevoptional, int
在优化过程中允许拟合参数变化的次数(每次拟合)。
- combineoptional, bool (default True)
是否将具有相同频率的指数合并。详情请参见
combine。- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- approx_env
ExponentialBosonicEnvironment 具有多指数相关函数的近似环境。
- fit_infodictionary
包含有关拟合的以下信息的字典。
- “N”
拟合中使用的欠阻尼项的数量。
- “Nk”
每个欠阻尼项中包含的松原模式数量。
- “fit_time”
拟合所花费的时间(以秒为单位)。
- “rmse”
拟合中获得的归一化均方误差。
- “params”
拟合参数(形状为Nx3的数组)。
- “summary”
一个字符串,总结了关于拟合的信息。
- approx_env
- correlation_function(
- t: float | ArrayLike,
- **kwargs,
使用公式计算欧姆环境的相关函数
\[C(t)= \frac{1}{\pi} \alpha w_{c}^{1-s} \beta^{-(s+1)} \Gamma(s+1) \left[ \zeta\left(s+1,\frac{1+\beta w_{c} -i w_{c} t}{\beta w_{c}} \right) +\zeta\left(s+1,\frac{1+ i w_{c} t}{\beta w_{c}}\right) \right] ,\]其中 \(\Gamma\) 是伽玛函数,\(\zeta\) 是黎曼 zeta 函数。
- Parameters:
- tarray_like or float
评估相关函数的时间。
- class CFExponent(
- type: str | CFExponent.ExponentType,
- ck: complex,
- vk: complex,
- ck2: complex = None,
- tag: Any = None,
表示环境相关函数的指数分解中的单个指数(简单来说,一种激发模式)。
- Parameters:
- type{“R”, “I”, “RI”, “+”, “-”} or one of CFExponent.types
指数的类型。
“R”和“I”是分别出现在相关扩展的实部和虚部中的玻色子指数。
“RI” 是一个组合的玻色子指数,出现在相关展开的实部和虚部中。组合指数有一个单一的
vk。ck是实部展开中的系数,而ck2是虚部展开中的系数。“+” 和 “-” 是费米子指数。
- ckcomplex
激励项的系数。
- vkcomplex
激励项指数的频率。
- ck2optional, complex
对于类型为“RI”的指数,这是虚数展开中的项的系数(而
ck是实数展开中的系数)。- tagoptional, str, tuple or any other object
指数的标签(通常是环境的名称)。默认值为None。
- Attributes:
- fermionicbool
如果指数的类型是费米子类型(即“+”或“-”),则为True,否则为False。
- coefficientcomplex
总相关函数中这个激励项的系数(包括实部和虚部)。
- exponentcomplex
激励项指数的频率。(vk 的别名。)
- All of the parameters are also available as attributes.
- types
ExponentType的别名
- class ExponentialBosonicEnvironment(
- ck_real: ArrayLike = None,
- vk_real: ArrayLike = None,
- ck_imag: ArrayLike = None,
- vk_imag: ArrayLike = None,
- *,
- exponents: Sequence[CFExponent] = None,
- combine: bool = True,
- T: float = None,
- tag: Any = None,
-
通过其相关函数的指数分解指定的玻色环境。分解中的系数和指数列表可以通过四个列表ck_real、vk_real、ck_imag、vk_imag传递,或者作为玻色
CFExponent对象的列表传递。- Parameters:
- ck_reallist of complex
相关函数实部的展开项系数。相应的频率作为vk_real传递。
- vk_reallist of complex
相关函数实部的展开项的频率(指数)。相应的系数作为ck_real传递。
- ck_imaglist of complex
相关函数虚部中展开项的系数。相应的频率作为vk_imag传递。
- vk_imaglist of complex
相关函数虚部的展开项的频率(指数)。相应的系数作为ck_imag传递。
- exponentslist of
CFExponent 相关函数的实部和虚部的扩展系数和指数作为
CFExponent对象。- combinebool, default True
是否将具有相同频率的指数合并。详情请参见
combine。- T: optional, float
环境的温度。
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- classmethod combine(
- exponents: Sequence[CFExponent],
- rtol: float = 1e-05,
- atol: float = 1e-07,
将具有相同频率的玻色子指数分组,并为每个存在的频率返回一个单独的指数。
- Parameters:
- exponentslist of
CFExponent 要组合的指数列表。
- rtolfloat, default 1e-5
在比较频率时使用的相对容差。
- atolfloat, default 1e-7
比较频率时使用的绝对容差。
- exponentslist of
- Returns:
- list of
CFExponent 新的简化指数列表。
- list of
- correlation_function(
- t: float | ArrayLike,
- **kwargs,
计算由这个指数分解表示的相关函数。
- Parameters:
- tarray_like or float
评估相关函数的时间。
- system_terminator(
- Q: Qobj,
- delta: float,
为给定的近似差异构建终止器。
- Parameters:
- Q
Qobj 系统耦合操作符。
- deltafloat
用有限数量的指数近似环境的近似差异,例如参见
DrudeLorentzEnvironment.approx_by_matsubara。
- Q
- Returns:
- terminator
Qobj 作用于系统希尔伯特空间的超算子。Liouvillian 项表示所有被忽略的扩展项对系统-环境动力学的贡献。它应该通过将其添加到系统 Liouvillian 中来使用(即
liouvillian(H_sys))。
- terminator
费米子环境
- class FermionicEnvironment(T: float = None, mu: float = None, tag: Any = None)[source]
开放量子系统的费米子环境。它由其谱密度、温度和化学势或等效地由其功率谱或其双时间自相关函数来表征。
该类作为
BosonicEnvironment的对应物包含在内,但它目前不支持玻色子环境的所有功能。特别是,费米子环境无法从手动指定的光谱密度、功率谱或相关函数构建。目前实现的费米子环境类型只有洛伦兹环境(LorentzianEnvironment)和具有多指数相关函数的环境(ExponentialFermionicEnvironment)。- Parameters:
- Toptional, float
这个环境的温度。
- muoptional, float
该环境的化学势。
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- abstract correlation_function_minus(
- t: float | ArrayLike,
该环境的自相关函数的“-“分支。 有关QuTiP使用的定义的具体信息,请参阅 fermionic environments 的用户指南。
- Parameters:
- tarray_like or float
评估相关函数的时间点。
- abstract correlation_function_plus(
- t: float | ArrayLike,
该环境的自相关函数的“+”分支。 有关QuTiP使用的定义的具体信息,请参阅 fermionic environments 的用户指南。
- Parameters:
- tarray_like or float
评估相关函数的时间点。
- classmethod from_correlation_functions(
- **kwargs,
目前尚未实现用户自定义的费米子环境。
- classmethod from_power_spectra(
- **kwargs,
目前尚未实现用户定义的费米子环境。
- abstract power_spectrum_minus(
- w: float | ArrayLike,
此环境的功率谱的“-“分支。有关QuTiP使用的定义的具体信息,请参阅费米子环境的用户指南。
- Parameters:
- warray_like or float
评估功率谱的频率。
- class LorentzianEnvironment(
- T: float,
- mu: float,
- gamma: float,
- W: float,
- omega0: float = None,
- *,
- Nk: int = 10,
- tag: Any = None,
-
描述了一个具有谱密度的洛伦兹费米环境
\[J(\omega) = \frac{\gamma W^2}{(\omega - \omega_0)^2 + W^2}.\](参见[BoFiN23]中的公式46)。
- Parameters:
- Tfloat
环境温度。
- mufloat
环境化学势。
- gammafloat
耦合强度。
- Wfloat
环境的光谱宽度。
- omega0optional, float (default equal to
mu) 环境的共振频率。
- Nkoptional, int, defaults to 10
用于计算相关函数的Pade指数数量。
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- approx_by_matsubara(
- Nk: int,
- tag: Any = None,
通过截断其Matsubara展开来生成此环境的近似值。
- Parameters:
- Nkint
包含的松原项数量。总共,“+”和“-”相关函数分支将各自包含Nk+1项。
- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- The approximated environment with multi-exponential correlation
- function.
- approx_by_pade(
- Nk: int,
- tag: Any = None,
通过截断其Pade展开来生成此环境的近似值。
- Parameters:
- Nkint
包含的Pade项数。总共,“+”和“-”相关函数分支将各自包含Nk+1项。
- tagoptional, str, tuple or any other object
近似环境的标识符(名称)。如果未提供,将从此环境的标签生成一个标签。
- Returns:
- The approximated environment with multi-exponential correlation
- function.
- correlation_function_minus(
- t: float | ArrayLike,
- Nk: int = None,
计算洛伦兹环境的两次自相关函数的“-“分支。该计算通过求和大量Pade展开的指数来完成。
- Parameters:
- tarray_like or float
评估相关函数的时间。
- Nkint, optional
使用的指数数量。如果未提供,则使用类实例化时提供的值。
- correlation_function_plus(
- t: float | ArrayLike,
- Nk: int = None,
计算洛伦兹环境的两次自相关函数的“+”分支。该计算通过求和大量Pade展开的指数来完成。
- Parameters:
- tarray_like or float
评估相关函数的时间。
- Nkint, optional
使用的指数数量。如果未提供,则使用类实例化时提供的值。
- power_spectrum_minus(
- w: float | ArrayLike,
计算洛伦兹环境的“-“-分支的功率谱。
- Parameters:
- warray_like or float
评估功率谱的频率。
- class ExponentialFermionicEnvironment(
- ck_plus: ArrayLike = None,
- vk_plus: ArrayLike = None,
- ck_minus: ArrayLike = None,
- vk_minus: ArrayLike = None,
- *,
- exponents: Sequence[CFExponent] = None,
- T: float = None,
- mu: float = None,
- tag: Any = None,
-
通过其相关函数的指数分解指定的费米子环境。分解中的系数和指数列表可以通过四个列表ck_plus、vk_plus、ck_minus、vk_minus传递,或者作为费米子
CFExponent对象的列表传递。替代构造函数
from_plus_exponents和from_minus_exponents可用于从“+”指数自动计算“-”指数,反之亦然。- Parameters:
- ck_pluslist of complex
相关函数
+部分的展开项系数。相应的频率作为vk_plus传递。- vk_pluslist of complex
相关函数
+部分的展开项的频率(指数)。相应的系数作为ck_plus传递。- ck_minuslist of complex
相关函数的
-部分的展开项的系数。相应的频率作为vk_minus传递。- vk_minuslist of complex
相关函数的
-部分的展开项的频率(指数)。相应的系数作为 ck_minus 传递。- exponentslist of
CFExponent 相关函数两部分的扩展系数和指数作为
CFExponent对象。- T: optional, float
环境的温度。
- mu: optional, float
环境的化学势。
- tagoptional, str, tuple or any other object
此环境的标识符(名称)。
- correlation_function_minus(
- t: float | ArrayLike,
计算由这个指数分解表示的相关函数的“-”分支。
- Parameters:
- tarray_like or float
评估相关函数的时间点。
- correlation_function_plus(
- t: float | ArrayLike,
计算由该指数分解表示的相关函数的“+”分支。
- Parameters:
- tarray_like or float
评估相关函数的时间点。
- power_spectrum_minus(
- w: float | ArrayLike,
计算对应于多指数相关函数的功率谱的“-“分支。
- Parameters:
- warray_like or float
评估功率谱的频率。