We p
resent
lass="smallcaps">Bill2d, a
mode
rn and efficient C++ package fo
r c
lassica
l si
mu
lations of two-di
mensiona
l Ha
mi
ltonian syste
ms.
lass="smallcaps">Bill2d can be used fo
r va
rious bi
llia
rd and diffusion p
rob
le
ms with one o
r mo
re cha
rged pa
rtic
les with inte
ractions, diffe
rent exte
rna
l potentia
ls, an exte
rna
l magnetic fie
ld, pe
riodic and open bounda
ries, etc. The softwa
re package can a
lso ca
lcu
late
many key quantities in co
mp
lex syste
ms such as Poinca
ré sections, su
rviva
l p
robabi
lities, and diffusion coefficients. Whi
le ai
ming at a
la
rge c
lass of app
licab
le syste
ms, the code a
lso st
rives fo
r ease-of-use, efficiency, and
modu
la
rity fo
r the i
mp
le
mentation of additiona
l featu
res. The package co
mes a
long with a use
r guide, a deve
lope
r&
rsquo;s
manua
l, and a docu
mentation of the app
lication p
rog
ra
m inte
rface (API).
Program summary
m>Program title:m> Bill2d
m>Catalogue identifier:m> AEYL_v1_0
m>Program summary URL:m>r000010" class="interref" data-locatorType="url" data-locatorKey="http://cpc.cs.qub.ac.uk/summaries/AEYL_v1_0.html">http://cpc.cs.qub.ac.uk/summaries/AEYL_v1_0.html
m>Program obtainable from:m> CPC Program Library, Queen’s University, Belfast, N. Ireland
m>Licensing provisions:m> GNU General Public License, version 3
m>No. of lines in distributed program, including test data, etc.:m> 37098
m>No. of bytes in distributed program, including test data, etc.:m> 1155037
m>Distribution format:m> tar.gz
m>Programming language:m> C++(14).
m>Computer:m> Tested on x86 and x86 64 architectures.
m>Operating systems:m> Tested on Linux, and OS X versions 10.9–10.11.
m>Has the code been vectorized or parallelized?: m> Shared memory parallelization when simulating ensembles of systems. Vectorization of operations with mmlsi8" class="mathmlsrc">lass="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515003744&_mathId=si8.gif&_user=111111111&_pii=S0010465515003744&_rdoc=1&_issn=00104655&md5=34e99977c00ce1268681464e694e532a" title="Click to view the MathML source">R2lass="mathContainer hidden">lass="mathCode"><math altimg="si8.gif" overflow="scroll"><msup><mrow><mi>Rmi>mrow><mrow><mn>2mn>mrow>msup>math> vectors.
m>RAM:m> Simulation dependent: kilobytes to gigabytes
m>Classification:m> 4.3, 7.8, 7.9, 7.10, 16.9.
m>External routines:m> Boost, CMake, GSL, HDF5; and optionally Google-Mock, GoogleTest, and Doxygen
m>Nature of problem:m> Numerical propagation of classical two-dimensional single and many-body systems, possibly in a magnetic field, and calculation of relevant quantities such as Poincaré sections, survival probabilities, diffusion co-efficients, etc.
m>Solution method:m> Symplectic numerical integration of Hamilton’s equations of motion in Cartesian coordinates, or solution of Newton’s equations of motion if in a magnetic field. The program implements several well-established algorithms.
m>Restrictions:m> Pointlike particles with equal masses and charges, although the latter restrictions are easy to lift.
m>Unusual features:m> Program is efficient, extremely modular and easy to extend, and allows arbitrary particle–particle interactions.
m>Additional comments:m> The source code is also available at r000015" class="interref" data-locatorType="https" data-locatorKey="//bitbucket.org/solanpaa/bill2d">https://bitbucket.org/solanpaa/bill2d. See README for locations of user guide, developer manual, and API docs.
m>Running time:m> From milliseconds to days, depends on type of simulation.