GInX
Geodesics Integrator tool for particles in GRMHD using Adaptive Mesh Refinement using AMReX.
Utilities.hxx File Reference

Code utilities such as matrix and vector multiplications. More...

#include "AMReX_REAL.H"
#include "AMReX_Scan.H"
#include "cctk_Types.h"
#include <cctk.h>
+ Include dependency graph for Utilities.hxx:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

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)
 
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)
 

Detailed Description

Code utilities such as matrix and vector multiplications.

This file contains the definition of some functions that could be helpful at the developing stage.

Function Documentation

◆ SMatVecMul()

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 
)

Symmetric matrix and vector multiplication.

This function computes the Symmetric matrix and vector multiplication using that the size 3x3 matrices can be stored as a vector of size 6 we can compute its multiplication with any vector.

Parameters
AVector of size 6 Symmetric matrix.
VVector of size 3.
Returns
A vector of size 3 result.

◆ VecVecMul()

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 
)

Vector Vector cartesian product.

Parameters
UVector of size 3.
VVector of size 3.
Returns
A Real number result.