7,493 research outputs found
dotCall64: An Efficient Interface to Compiled C/C++ and Fortran Code Supporting Long Vectors
The R functions .C() and .Fortran() can be used to call compiled C/C++ and
Fortran code from R. This so-called foreign function interface is convenient,
since it does not require any interactions with the C API of R. However, it
does not support long vectors (i.e., vectors of more than 2^31 elements). To
overcome this limitation, the R package dotCall64 provides .C64(), which can be
used to call compiled C/C++ and Fortran functions. It transparently supports
long vectors and does the necessary castings to pass numeric R vectors to
64-bit integer arguments of the compiled code. Moreover, .C64() features a
mechanism to avoid unnecessary copies of function arguments, making it
efficient in terms of speed and memory usage.Comment: 17 page
Kranc: a Mathematica application to generate numerical codes for tensorial evolution equations
We present a suite of Mathematica-based computer-algebra packages, termed
"Kranc", which comprise a toolbox to convert (tensorial) systems of partial
differential evolution equations to parallelized C or Fortran code. Kranc can
be used as a "rapid prototyping" system for physicists or mathematicians
handling very complicated systems of partial differential equations, but
through integration into the Cactus computational toolkit we can also produce
efficient parallelized production codes. Our work is motivated by the field of
numerical relativity, where Kranc is used as a research tool by the authors. In
this paper we describe the design and implementation of both the Mathematica
packages and the resulting code, we discuss some example applications, and
provide results on the performance of an example numerical code for the
Einstein equations.Comment: 24 pages, 1 figure. Corresponds to journal versio
Quantum ESPRESSO: a modular and open-source software project for quantum simulations of materials
Quantum ESPRESSO is an integrated suite of computer codes for
electronic-structure calculations and materials modeling, based on
density-functional theory, plane waves, and pseudopotentials (norm-conserving,
ultrasoft, and projector-augmented wave). Quantum ESPRESSO stands for "opEn
Source Package for Research in Electronic Structure, Simulation, and
Optimization". It is freely available to researchers around the world under the
terms of the GNU General Public License. Quantum ESPRESSO builds upon
newly-restructured electronic-structure codes that have been developed and
tested by some of the original authors of novel electronic-structure algorithms
and applied in the last twenty years by some of the leading materials modeling
groups worldwide. Innovation and efficiency are still its main focus, with
special attention paid to massively-parallel architectures, and a great effort
being devoted to user friendliness. Quantum ESPRESSO is evolving towards a
distribution of independent and inter-operable codes in the spirit of an
open-source project, where researchers active in the field of
electronic-structure calculations are encouraged to participate in the project
by contributing their own codes or by implementing their own ideas into
existing codes.Comment: 36 pages, 5 figures, resubmitted to J.Phys.: Condens. Matte
- …