当前位置: X-MOL 学术Comput. Phys. Commun. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Simple Quantum Integro-Differential Solver (SQuIDS)
Computer Physics Communications ( IF 7.2 ) Pub Date : 2020-06-01 , DOI: 10.1016/j.cpc.2020.107405
Carlos A. Argüelles , Jordi Salvado , Christopher N. Weaver

Simple Quantum Integro-Differential Solver (SQuIDS) is a C++ code designed to solve semi-analytically the evolution of a set of density matrices and scalar functions. This is done efficiently by expressing all operators in an SU(N) basis. SQuIDS provides a base class from which users can derive new classes to include new non-trivial terms from the right hand sides of density matrix equations. The code was designed in the context of solving neutrino oscillation problems, but can be applied to any problem that involves solving the quantum evolution of a collection of particles with Hilbert space of dimension up to six.

New version program summary

Program Title: SQuIDS

CPC Library link to program files: http://dx.doi.org/10.17632/hnchbtnybs.1

Developer’s respository link: https://github.com/jsalvado/SQuIDS

Licensing provisions: GNU Lesser General Public License, version 3.

Programming language: C++11.

External routines: GNU Scientific Library (http://www.gnu.org/software/gsl/).

Journal reference of previous version: Comput. Phys. Commun. 196 (2015) 569–591

Does the new version supersede the previous version?: Yes.

Nature of problem: Solve the evolution of open quantum systems of Hilbert space dimension N with self interactions and interaction with classical fields.

Solution method: The algebra is implemented as a C++ object and is embedded into the GSL ordinary differential equation solver.

Reasons for the new version: Added new features and improved runtime.

Summary of revisions:

Library names have been moved into the ‘squids’ namespace.

Support for extraction of SU vectors and basis transformations to GSL matrices.

Implementation of matrix exponentiation for use cases like evolution with non-diagonalized Hamiltonians.

Implementation of a number of useful matrix operations on SU vectors, including applying arbitrary unitary transformations, extracting real and imaginary components, transposition, and generalized, weighted rotations.

Support for obtaining the eigensystem which diagonalizes an SU_vector.

Explicit disallowance of creating or manipulating SU(1) vectors, which are degenerate with scalars.

A fix to a severe issue in the use of the GSL ODE interface, now giving good output for much less stringent tolerance values.

Optimization of element-wise operations on SU vectors without the need to allocate temporary storage.

Redesign of SU vector operations for vectorizability, including optimized allocation of element storage with optimal alignment.

Implementation of a more efficient version of SU vector time evolution which can share initialization costs across multiple evolutions by the same operator over the same time interval.

A more precise definition of the meter.

Improvements to configuration and build system.

Clean up of capitalization for file and class names.

Rearrangement of project files to a more standard layout.

Elimination of memory leaks.

Limited support for the Intel and Portland Group compilers. These should not be considered guaranteed to work, but have been given minimal testing and appear compile the library correctly.

Added additional unit conversions to SQuIDS constants.

Additional comments including restrictions and unusual features: The code is only implemented up to Hilbert spaces of dimension six, but a Mathematica notebook is provided in order to generate higher dimensional solutions. Furthermore, only ordinary differential equation solution methods that require only the first derivative can be used. Acknoledgements CAA is supported by NSF grant PHY-1912764. JS acknowledges financial support from EU Networks FP10ITN ELUSIVES (H2020-MSCA-ITN-2015-674896) and INVISIBLES-PLUS (H2020-MSCA-RISE2015-690575), by the MINECO grant FPA2016-76005-C2-1-P and by the Maria de Maeztu grant MDM-2014-0367 of ICCUB.



中文翻译:

简单量子积分微分求解器(SQuIDS)

简单量子整数微分求解器(SQuIDS)是一种C ++代码,旨在半解析地求解一组密度矩阵和标量函数的演化。通过以SU(N)为基础表示所有运算符,可以有效地做到这一点。SQuIDS提供了一个基类,用户可以从中得出新的类,以从密度矩阵方程的右侧包括新的非平凡项。该代码是在解决中微子振荡问题的背景下设计的,但是可以应用于涉及解决希尔伯特空间维数最多为六个的粒子集合的量子演化的任何问题。

新版本程序摘要

节目名称: SQuIDS

CPC库链接到程序文件: http : //dx.doi.org/10.17632/hnchbtnybs.1

开发人员的资料库链接: https : //github.com/jsalvado/SQuIDS

许可条款: GNU通用公共许可证,版本3。

编程语言: C ++ 11。

外部例程: GNU科学图书馆(http://www.gnu.org/software/gsl/)。

先前版本的期刊参考:计算。物理 社区 196(2015)569–591

新版本取代以前的版本吗?:是的。

问题性质:通过自相互作用和与经典场的相互作用来解决希尔伯特空间维N的开放量子系统的演化。

解决方法:代数作为C ++对象实现,并嵌入到GSL常微分方程求解器中。

使用新版本的原因:添加了新功能并改善了运行时间。

修订摘要:

库名称已移至“ squids”命名空间。

支持SU向量的提取和对GSL矩阵的基础转换。

针对用例的矩阵求幂实现,例如使用非对角化的哈密顿量进行演化。

在SU向量上实现许多有用的矩阵运算,包括应用任意unit变换,提取实部和虚部分量,转置以及广义加权旋转。

支持获得对角化SU_vector的本征系统。

明确不允许创建或处理SU(1)向量,这些向量随标量退化。

修复了使用GSL ODE接口的一个严重问题,现在可以以较低的严格公差值提供良好的输出。

优化SU向量上的逐元素运算,而无需分配临时存储。

重新设计SU向量操作以实现矢量化,包括以最佳对齐方式优化元素存储的分配。

SU向量时间演化的更有效版本的实现,该过程可以由同一运算符在同一时间间隔内在多个演化中分担初始化成本。

仪表的更精确定义。

改进了配置和构建系统。

清除文件名和类名的大小写。

将项目文件重新排列为更标准的布局。

消除内存泄漏。

对Intel和Portland Group编译器的支持有限。这些不应被认为可以保证正常工作,但已经过最少的测试,并且看上去可以正确编译库。

向SQuIDS常数添加了其他单位转换。

包括限制和异常功能在内的其他注释:该代码仅实现到维度6的希尔伯特空间,但是提供了Mathematica笔记本以生成更高维度的解决方案。此外,仅可以使用仅需要一阶导数的普通微分方程解方法。致谢CAA受NSF资助PHY-1912764支持。JS感谢MINECO授予FPA2016-76005-C2-1-P以及欧盟授予FP10ITN ELUSIVES(H2020-MSCA-ITN-2015-674896)和INVISIBLES-PLUS(H2020-MSCA-RISE2015-690575)的财务支持。Maria de Maeztu 授予ICCUB MDM-2014-0367。

更新日期:2020-06-01
down
wechat
bug