In a recent paper (Comput. Phys. Commun. 258 (2021) 107569) we obtained exactly the tagged-particle propagator in a single-file with N particels diffusing in a generic confining potential via the coordinate Bethe-Ansatz. A naïve implementation of this solution requires a non-polynomial algorithm. To speed-up the computation we implemented a more efficient algorithm that exploits the particle exchange-symmetry.In this new version we expand the code-base to allow for the computation of the three point Green's function. The latter is required e.g. in the analysis of the breaking of time-translational invariance. In addition we include the support for two canonical potentials of general interest: one presenting an energy barrier and one featuring an asymmetric potential landscape. New version program summaryProgram Title: BetheSFCPC Library link to program files:https://doi.org/10.17632/3bs74vf72n.2Licensing provisions: MITProgramming language: C++ (C++17 required), Boost 1.75.0 requiredJournal reference of previous version: Comput. Phys. Commun. 258 (2021) 107569Does the new version supersede the previous version?: YesReasons for new version: Computation of the three point Green's function, vectorized versions of the Green's functions, two new potentials included.Nature of problem: Diffusive single-files are mathematical models of effectively one-dimensional strongly correlated many-body systems. The diffusive dynamics of a tracer particle in a single-file has attracted widespread interest in the literature since it stands as a paradigm for non-Markovian and anomalous diffusion. The many-body Fokker-Planck equation governing the system's dynamics can be solved using the Coordinate Bethe Ansatz. The implementation of such a solution is notoriously challenging since it requires the generation of permutations.Solution method: Exploiting the underlining exchange symmetry among the particles of the system, it is possible to reduce the complexity of the algorithm for evaluating the tagged particle Green's function, in the best gain scenario, from O(N!) down to O(N), N being the size of the single-file.Summary of revisions:•We added support for the computation of the three point Green's function:G(xi,ta+τ;xi′,ta|x0i)=V00(x0i)−1∑k∑lV0k(xi)Vkl(xi′)Vl0(x0i)e−Λkτe−Λlta. Where the overlap elements Vkl(x) and the many-body eigenvalues Λk have been defined in the main article [1]. This function expresses the probability of the tagged-particle to end up in xi at time ta+τ, passing by xi′ and time ta conditioned to the fact that it started in x0i at time 0. This function is important for the study of breaking of the time-translation invariance in tagged particle dynamics [2]. Due to the presence of the term Vkl(x) the evaluation is time expensive. The code has been modified to allow for the computation of G(xi,ta+τ;xi′,ta|x0i).•We added functions that compute the two and the three point Green's functions at M different time-points but with the same spatial parameters. These new vectorized versions return a std::vector<double> containing the values of the Green's functions for several time-points. A single call of one of these new fuctions is faster than calling M times the corresponding previously implemented single-time-point function.•Solution for the square double well potential [3](1)U(x)={0,π>|x|>π/2f0,|x|≤π/2∞,otherwise; and for the asymmetric potential given by [4]:(2)U(x)=−(h−1)ln(x)+x22 have been added in the files SingleFileBistable.hpp, SingleFileBistable.cpp and SingleFileGeneralizedBessel.hpp, SingleFileGeneralizedBessel.cpp respectively; the potentials are depicted in Fig. 1. The solution for the potential in Eq. (2) requires the computation of “special functions” related to the Gamma function and the hypergeometric function; these functions are provided either by the Boost library or can be found as template functions in the SpecialFunctions.hpp file. The potential (1) has been investigated in [3].
Read full abstract