Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
gpu_moments.cpp File Reference
#include <phiprof.hpp>
#include "gpu_moments.h"
#include "vlasovmover.h"
#include "../object_wrapper.h"
#include "../fieldsolver/fs_common.h"
#include "../arch/gpu_base.hpp"
Include dependency graph for gpu_moments.cpp:

Go to the source code of this file.

Functions

__global__ void __launch_bounds__ (WID3) first_moments_kernel(const vmesh
void gpu_calculateMoments_R (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const std::vector< CellID > &cells_in, const bool computeSecond, const bool initialCompute)
void gpu_calculateMoments_V (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const std::vector< CellID > &cells_in, const bool computeSecond, const bool initialCompute)

Function Documentation

◆ __launch_bounds__()

__global__ void __launch_bounds__ ( WID3 ) const

GPU kernel for calculating first velocity moments from provided velocity block containers

GPU kernel for calculating second velocity moments from provided velocity block containers

Definition at line 36 of file gpu_moments.cpp.

Here is the call graph for this function:

◆ gpu_calculateMoments_R()

void gpu_calculateMoments_R ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
const std::vector< CellID > & cells_in,
const bool computeSecond,
const bool initialCompute )

Note: there is no single-cell GPU-only version of moments calculations, (calculateCellMoments) as that task is achieved through the ARCH-interface with no performance loss. Calculate zeroth, first, and (possibly) second bulk velocity moments for the given spatial cell. The calculated moments include contributions from all existing particle populations. The calculated moments are stored to SpatialCell::parameters in _R variables.

Parameters
mpiGridParallel grid library.
cellsVector containing the spatial cells to be calculated.
computeSecondIf true, second velocity moments are calculated.
initialComputeIf true, force re-calculation of outflow L1 sysboundary cell moments. (otherwise skipped as their VDF contents are not kept up to date)

Definition at line 249 of file gpu_moments.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gpu_calculateMoments_V()

void gpu_calculateMoments_V ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
const std::vector< CellID > & cells_in,
const bool computeSecond,
const bool initialCompute )

Calculate zeroth, first, and (possibly) second bulk velocity moments for the given spatial cell. The calculated moments include contributions from all existing particle populations. The calculated moments are stored to SpatialCell::parameters in _V variables.

Parameters
mpiGridParallel grid library.
cellsVector containing the spatial cells to be calculated.
computeSecondIf true, second velocity moments are calculated.
initialComputeIf true, force re-calculation of outflow L1 sysboundary cell moments. (otherwise skipped as their VDF contents are not kept up to date)

Definition at line 469 of file gpu_moments.cpp.

Here is the call graph for this function:
Here is the caller graph for this function: