21,179 research outputs found
Automatic C library wrapping Ctypes from the trenches
At some point of time many Python developers at least in computational science will
face the situation that they want to interface some natively compiled library from Python. For
binding native code to Python by now a larger variety of tools and technologies are available.
This paper focuses on wrapping shared C libraries, using Python's default Ctypes. Particularly
tools to ease the process (by using code generation) and some best practises will be stressed.
The paper will try to tell a step by step story of the wrapping and development process,
that should be transferable to similar problems
Source code: automatic C library wrapping - Ctypes from the trenches
At some point of time many Python developers at least in computational science will
face the situation that they want to interface some natively compiled library from Python. For
binding native code to Python by now a larger variety of tools and technologies are available.
This paper focuses on wrapping shared C libraries, using Python's default Ctypes, with the
help of the matching source code generator from CtypesLib
A C++ library using quantum trajectories to solve quantum master equations
Quantum trajectory methods can be used for a wide range of open quantum
systems to solve the master equation by unraveling the density operator
evolution into individual stochastic trajectories in Hilbert space. This C++
class library offers a choice of integration algorithms for three important
unravelings of the master equation. Different physical systems are modeled by
different Hamiltonians and environment operators. The program achieves
flexibility and user friendliness, without sacrificing execution speed, through
the way it represents operators and states in Hilbert space. Primary operators,
implemented in the form of simple routines acting on single degrees of freedom,
can be used to build up arbitrarily complex operators in product Hilbert spaces
with arbitrary numbers of components. Standard algebraic notation is used to
build operators and to perform arithmetic operations on operators and states.
States can be represented in a local moving basis, often leading to dramatic
savings of computing resources. The state and operator classes are very general
and can be used independently of the quantum trajectory algorithms. Only a
rudimentary knowledge of C++ is required to use this package.Comment: 17 pages standard LaTeX + 3 figures (postscript). Submitted to
Computer Physics Communications. Web site:
http://galisteo.ma.rhbnc.ac.uk/applied/QSD.htm
CAMORRA: a C++ library for recursive computation of particle scattering amplitudes
We present a new Monte Carlo tool that computes full tree-level matrix
elements in high-energy physics. The program accepts user-defined models and
has no restrictions on the process multiplicity. To achieve acceptable
performance, CAMORRA evaluates the matrix elements in a recursive way by
combining off-shell currents. Furthermore, CAMORRA can be used to compute
amplitudes involving continuous color and helicity final states.Comment: 22 page
Chaste: an open source C++ library for computational physiology and biology
Chaste - Cancer, Heart And Soft Tissue Environment - is an open source C++ library for the computational simulation of mathematical models developed for physiology and biology. Code development has been driven by two initial applications: cardiac electrophysiology and cancer development. A large number of cardiac electrophysiology studies have been enabled and performed, including high performance computational investigations of defibrillation on realistic human cardiac geometries. New models for the initiation and growth of tumours have been developed. In particular, cell-based simulations have provided novel insight into the role of stem cells in the colorectal crypt. Chaste is constantly evolving and is now being applied to a far wider range of problems. The code provides modules for handling common scientific computing components, such as meshes and solvers for ordinary and partial differential equations (ODEs/PDEs). Re-use of these components avoids the need for researchers to "re-invent the wheel" with each new project, accelerating the rate of progress in new applications. Chaste is developed using industrially-derived techniques, in particular test-driven development, to ensure code quality, re-use and reliability. In this article we provide examples that illustrate the types of problems Chaste can be used to solve, which can be run on a desktop computer. We highlight some scientific studies that have used or are using Chaste, and the insights they have provided. The source code, both for specific releases and the development version, is available to download under an open source Berkeley Software Distribution (BSD) licence at http://www.cs.ox.ac.uk/chaste, together with details of a mailing list and links to documentation and tutorials
- …