GInX
Geodesics Integrator tool for particles in GRMHD using Adaptive Mesh Refinement using AMReX.
Utilities.hxx
Go to the documentation of this file.
1
8#ifndef UTILITIES_HXX
9#define UTILITIES_HXX
10
11#include "AMReX_REAL.H"
12#include "AMReX_Scan.H"
13#include "cctk_Types.h"
14#include <cctk.h>
15
28AMREX_GPU_DEVICE AMREX_GPU_HOST
29 AMREX_FORCE_INLINE CCTK_ATTRIBUTE_ALWAYS_INLINE amrex::GpuArray<CCTK_REAL, 3>
30 SMatVecMul(amrex::GpuArray<CCTK_REAL, 6> A,
31 amrex::GpuArray<CCTK_REAL, 3> V) {
32
33 amrex::GpuArray<CCTK_REAL, 3> result = {
34 A[0] * V[0] + A[1] * V[1] + A[2] * V[2],
35 A[1] * V[0] + A[3] * V[1] + A[4] * V[2],
36 A[2] * V[0] + A[4] * V[1] + A[5] * V[2]};
37
38 return result;
39} // SMatVecMul
40
49AMREX_GPU_DEVICE
50AMREX_GPU_HOST AMREX_FORCE_INLINE CCTK_ATTRIBUTE_ALWAYS_INLINE CCTK_REAL
51VecVecMul(amrex::GpuArray<CCTK_REAL, 3> U, amrex::GpuArray<CCTK_REAL, 3> V) {
52
53 return U[0] * V[0] + U[1] * V[1] + U[2] * V[2];
54} // SMatVecMul
55
56#endif // !UTILITIES_HXX
AMREX_GPU_DEVICE AMREX_GPU_HOST AMREX_FORCE_INLINE CCTK_ATTRIBUTE_ALWAYS_INLINE amrex::GpuArray< CCTK_REAL, 3 > SMatVecMul(amrex::GpuArray< CCTK_REAL, 6 > A, amrex::GpuArray< CCTK_REAL, 3 > V)
Definition: Utilities.hxx:30
AMREX_GPU_DEVICE AMREX_GPU_HOST AMREX_FORCE_INLINE CCTK_ATTRIBUTE_ALWAYS_INLINE CCTK_REAL VecVecMul(amrex::GpuArray< CCTK_REAL, 3 > U, amrex::GpuArray< CCTK_REAL, 3 > V)
Definition: Utilities.hxx:51