Arcmancer

dc.contributor.affiliationUniversity of Helsinki - Pihajoki, Pauli
dc.contributor.affiliationUniversity of Helsinki - Mannerkoski, Matias
dc.contributor.affiliationNordita - Nättilä, Joonas
dc.contributor.affiliationUniversity of Helsinki - Johansson, Peter H.
dc.contributor.authorPihajoki, Pauli
dc.contributor.authorMannerkoski, Matias
dc.contributor.authorNättilä, Joonas
dc.contributor.authorJohansson, Peter H.
dc.date.accessioned2025-03-24T15:11:23Z
dc.date.issued2018-06-04
dc.date.issued2018-06-04
dc.descriptionArcmancer is a general purpose header-only C++14 library for computing geodesics and performing polarized radiative transfer in user specified spacetimes. The library includes high-level constructs which allow quickly defining relativistic ray-tracing computations and provides generic implementations of basic differential geometric objects that allow the implementation of more complex procedures. In addition to the C++ library, most of the main features are also available through the pyarcmancer Python module, which allows combining the convenience of Python with the speed of the C++ code. While the main focus of Arcmancer is on general relativistic polarized radiative transfer, it also offers various features that are applicable in very general contexts. The main features of Arcmancer include: User defined (Pseudo-)Riemannian manifolds: Arbitrary dimension, not limited to 4D spacetimes. Multiple coordinate systems at once. Support for both spacetime signature conventions, i.e. (+---) and (-+++) Simple to define: only need to specify functions for the metric and its. derivatives, and potentially the coordinate system transitions. General tensors: Automatic conversion of components between coordinate systems. Type checked tensor index operations. Tensor index types (covariant/contravariant) are known at compile time and checked to ensure mathematical validity of operations. Parallel transport along curves. Geodesics and Curves: Accurate solution of the curve equation of motion using adaptive integration with configurable tolerances. Support for curves with an arbitrary acceleration term. Transport of objects along curves during curve computation. Includes e.g. the parallel transport of tensors, but custom objects are also supported. Interpolation of points at arbitrary values of curve parameter. Solution of differential equations along precomputed curves. Polarized Radiative Transfer: Solution of the polarized radiative transfer equation along null geodesic rays. Multiple frequencies can be computed at once. Simple interface for defining the fluid and radiation content: just implement two functions / functor objects. Generic tools for generating ray initial conditions and performing parallel computation over the image. For more details and results from some example computations performed using Arcmancer see the code paper
dc.identifierhttps://doi.org/10.5281/zenodo.1264666
dc.identifier.urihttps://hydatakatalogi-test-24.it.helsinki.fi/handle/123456789/9141
dc.rightsOpen
dc.rights.licensemit-license
dc.subjectmethods: numerical
dc.subjectgeometry
dc.subjectgravitation
dc.titleArcmancer
dc.typesoftware
dc.typesoftware