Many codes have been developed to study highly relativistic, magnetized flows around and inside compact objects. Depending on the adopted formalism, some of these codes evolve the vector potential A, and others evolve the magnetic field B=∇×A directly. Given that these codes possess unique strengths, sometimes it is desirable to start a simulation using a code that evolves B and complete it using a code that evolves A. Thus transferring the data from one code to another would require an inverse curl algorithm. This paper describes two new inverse curl techniques in the context of Cartesian numerical grids: a cell-by-cell method, which scales approximately linearly with the numerical grid, and a global linear algebra approach, which has worse scaling properties but is generally more robust (e.g., in the context of a magnetic field possessing some nonzero divergence). We demonstrate these algorithms successfully generate smooth vector potential configurations in challenging special and general relativistic contexts.
This is the B to A code that is in Zachary Silberman's PhD defense.