ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
EK_FieldAccessors_single_precision_CUDA.cu File Reference
#include <core/DataTypes.h>
#include <core/cell/Cell.h>
#include <core/cell/CellInterval.h>
#include <core/math/Vector3.h>
#include <field/iterators/IteratorMacros.h>
#include <gpu/FieldAccessor.h>
#include <gpu/FieldIndexing.h>
#include <gpu/GPUField.h>
#include <gpu/Kernel.h>
#include <thrust/device_ptr.h>
#include <thrust/device_vector.h>
#include <array>
#include <vector>

Go to the source code of this file.

Namespaces

namespace  walberla
 \file PackInfoPdfDoublePrecision.cpp \author pystencils
 
namespace  walberla::ek
 
namespace  walberla::ek::accessor
 
namespace  walberla::ek::accessor::Scalar
 
namespace  walberla::ek::accessor::Vector
 
namespace  walberla::ek::accessor::Flux
 

Macros

#define RESTRICT
 

Functions

static __forceinline__ __device__ uint getLinearIndex (uint3 blockIdx, uint3 threadIdx, uint3 gridDim, uint3 blockDim, uint fOffset)
 Get linear index of flattened data with original layout fzyx.
 
__global__ void walberla::ek::accessor::Scalar::kernel_get (gpu::FieldAccessor< float > scalar_field, float *out)
 
__global__ void walberla::ek::accessor::Scalar::kernel_set (gpu::FieldAccessor< float > scalar_field, float const *RESTRICT in)
 
__global__ void walberla::ek::accessor::Scalar::kernel_broadcast (gpu::FieldAccessor< float > scalar_field, float const in)
 
__global__ void walberla::ek::accessor::Scalar::kernel_add (gpu::FieldAccessor< float > scalar_field, float const *RESTRICT in)
 
__global__ void walberla::ek::accessor::Scalar::kernel_broadcast_add (gpu::FieldAccessor< float > scalar_field, float const in)
 
float walberla::ek::accessor::Scalar::get (gpu::GPUField< float > const *field, Cell const &cell)
 Get value from a single cell.
 
void walberla::ek::accessor::Scalar::set (gpu::GPUField< float > *field, float value, Cell const &cell)
 Set value on a single cell.
 
void walberla::ek::accessor::Scalar::add (gpu::GPUField< float > *field, float value, Cell const &cell)
 Add value to a single cell.
 
void walberla::ek::accessor::Scalar::initialize (gpu::GPUField< float > *field, float value)
 Initialize all cells with the same value.
 
void walberla::ek::accessor::Scalar::add_to_all (gpu::GPUField< float > *scalar_field, Vector3< float > const value)
 
std::vector< floatwalberla::ek::accessor::Scalar::get (gpu::GPUField< float > const *ield, CellInterval const &ci)
 Get values from a cell interval.
 
void walberla::ek::accessor::Scalar::set (gpu::GPUField< float > *field, std::vector< float > const &values, CellInterval const &ci)
 Set values on a cell interval.
 
__global__ void walberla::ek::accessor::Vector::kernel_get (gpu::FieldAccessor< float > vec, float *u_out)
 
__global__ void walberla::ek::accessor::Vector::kernel_set (gpu::FieldAccessor< float > vec, float const *RESTRICT u_in)
 
__global__ void walberla::ek::accessor::Vector::kernel_broadcast (gpu::FieldAccessor< float > vec, float const *RESTRICT u_in)
 
__global__ void walberla::ek::accessor::Vector::kernel_add (gpu::FieldAccessor< float > vec, float const *RESTRICT u_in)
 
__global__ void walberla::ek::accessor::Vector::kernel_broadcast_add (gpu::FieldAccessor< float > vec, float const *RESTRICT u_in)
 
Vector3< floatwalberla::ek::accessor::Vector::get (gpu::GPUField< float > const *field, Cell const &cell)
 Get value from a single cell.
 
void walberla::ek::accessor::Vector::set (gpu::GPUField< float > *field, Vector3< float > const &vec, Cell const &cell)
 Set value on a single cell.
 
void walberla::ek::accessor::Vector::add (gpu::GPUField< float > *field, Vector3< float > const &vec, Cell const &cell)
 Add value to a single cell.
 
void walberla::ek::accessor::Vector::initialize (gpu::GPUField< float > *field, Vector3< float > const &vec)
 Initialize all cells with the same value.
 
void walberla::ek::accessor::Vector::add_to_all (gpu::GPUField< float > *field, Vector3< float > const &vec)
 Add value to all cells.
 
std::vector< floatwalberla::ek::accessor::Vector::get (gpu::GPUField< float > const *vec_field, CellInterval const &ci)
 Get values from a cell interval.
 
void walberla::ek::accessor::Vector::set (gpu::GPUField< float > *vec_field, std::vector< float > const &values, CellInterval const &ci)
 Set values on a cell interval.
 
__global__ void walberla::ek::accessor::Flux::kernel_get (gpu::FieldAccessor< float > flux_field, float *j_out)
 
__global__ void walberla::ek::accessor::Flux::kernel_broadcast (gpu::FieldAccessor< float > flux_field, float const *RESTRICT j_in)
 
__global__ void walberla::ek::accessor::Flux::kernel_get_vector (gpu::FieldAccessor< float > flux_field, float *j_out)
 
std::array< float, 13 > walberla::ek::accessor::Flux::get (gpu::GPUField< float > const *flux_field, Cell const &cell)
 Get value from a single cell.
 
void walberla::ek::accessor::Flux::initialize (gpu::GPUField< float > *flux_field, std::array< float, 13 > const &flux)
 Initialize all cells with the same value.
 
std::vector< floatwalberla::ek::accessor::Flux::get (gpu::GPUField< float > const *flux_field, CellInterval const &ci)
 Get values from a cell interval.
 
Vector3< floatwalberla::ek::accessor::Flux::get_vector (gpu::GPUField< float > const *flux_field, Cell const &cell)
 Get flux vector from a single cell.
 
std::vector< floatwalberla::ek::accessor::Flux::get_vector (gpu::GPUField< float > const *flux_field, CellInterval const &ci)
 Get flux vector from a cell interval.
 

Macro Definition Documentation

◆ RESTRICT

#define RESTRICT

Definition at line 64 of file EK_FieldAccessors_single_precision_CUDA.cu.

Function Documentation

◆ getLinearIndex()

static __forceinline__ __device__ uint getLinearIndex ( uint3  blockIdx,
uint3  threadIdx,
uint3  gridDim,
uint3  blockDim,
uint  fOffset 
)
static

Get linear index of flattened data with original layout fzyx.

Definition at line 68 of file EK_FieldAccessors_single_precision_CUDA.cu.

References stream.