34#include <core/DataTypes.h>
35#include <core/cell/Cell.h>
36#include <core/cell/CellInterval.h>
37#include <core/math/Matrix3.h>
38#include <core/math/Vector3.h>
40#include <gpu/GPUField.h>
42#include <thrust/device_vector.h>
54std::array<float, 19u>
get(gpu::GPUField<float>
const *
pdf_field,
57void set(gpu::GPUField<float> *
pdf_field, std::array<float, 19u>
const &
pop,
62 std::array<float, 19u>
const &
pop,
Cell const &cell);
65 std::array<float, 19u>
const &
pop);
67std::vector<float>
get(gpu::GPUField<float>
const *
pdf_field,
68 CellInterval
const &
ci);
71 CellInterval
const &
ci);
75 std::vector<float>
const &
values, CellInterval
const &
ci);
92std::vector<float>
get(gpu::GPUField<float>
const *
vec_field,
93 CellInterval
const &
ci);
96 CellInterval
const &
ci);
98 thrust::device_vector<int>
const &
indices,
102namespace Interpolation {
103std::vector<float>
get_rho(gpu::GPUField<float>
const *field,
104 std::vector<float>
const &pos,
float density,
106std::vector<float>
get_vel(gpu::GPUField<float>
const *field,
107 std::vector<float>
const &pos,
uint gl);
108void add_force(gpu::GPUField<float>
const *field, std::vector<float>
const &pos,
109 std::vector<float>
const &forces,
uint gl);
118 CellInterval
const &
ci);
126std::vector<float>
get(gpu::GPUField<float>
const *
pdf_field,
128 CellInterval
const &
ci);
134 std::vector<float>
const &
values, CellInterval
const &
ci);
148namespace DensityAndVelocity {
149std::tuple<float, Vector3<float>>
get(gpu::GPUField<float>
const *
pdf_field,
156namespace DensityAndMomentumDensity {
157std::tuple<float, Vector3<float>>
get(gpu::GPUField<float>
const *
pdf_field,
162namespace MomentumDensity {
167namespace PressureTensor {
171 CellInterval
const &
ci);
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
std::tuple< double, Vector3< double > > get(gpu::GPUField< double > const *pdf_field, gpu::GPUField< double > const *force_field, Cell const &cell)
std::tuple< double, Vector3< double > > get(gpu::GPUField< double > const *pdf_field, gpu::GPUField< double > const *force_field, Cell const &cell)
void set(gpu::GPUField< double > *pdf_field, gpu::GPUField< double > *force_field, Vector3< double > const &u, double rho, Cell const &cell)
void set(GhostLayerField< double, uint_t{19u}> *pdf_field, double const rho_in, double const density, Cell const &cell)
double get(GhostLayerField< double, uint_t{19u}> const *pdf_field, double const density, Cell const &cell)
void set(GhostLayerField< double, uint_t{19u}> const *pdf_field, GhostLayerField< double, uint_t{3u}> *velocity_field, GhostLayerField< double, uint_t{3u}> *force_field, Vector3< double > const &force, double const density, Cell const &cell)
void add_force(gpu::GPUField< double > const *field, std::vector< double > const &pos, std::vector< double > const &forces, uint gl)
std::vector< double > get_rho(gpu::GPUField< double > const *field, std::vector< double > const &pos, double const density, uint gl)
std::vector< double > get_vel(gpu::GPUField< double > const *field, std::vector< double > const &pos, uint gl)
auto reduce(GhostLayerField< double, uint_t{19u}> const *pdf_field, GhostLayerField< double, uint_t{3u}> const *force_field, double const density)
void set(GhostLayerField< double, uint_t{19u}> *pdf_field, std::array< double, 19u > const &pop, Cell const &cell)
auto get(GhostLayerField< double, uint_t{19u}> const *pdf_field, Cell const &cell)
void initialize(GhostLayerField< double, uint_t{19u}> *pdf_field, std::array< double, 19u > const &pop)
auto get(GhostLayerField< double, uint_t{19u}> const *pdf_field, double const density, Cell const &cell)
auto reduce(GhostLayerField< double, uint_t{19u}> const *pdf_field, double const density)
void initialize(GhostLayerField< double, uint_t{3u}> *vec_field, Vector3< double > const &vec)
void set_from_list(gpu::GPUField< double > const *field, thrust::device_vector< int > const &indices, thrust::device_vector< double > const &values, uint gl)
void add(GhostLayerField< double, uint_t{3u}> *vec_field, Vector3< double > const &vec, Cell const &cell)
void set(GhostLayerField< double, uint_t{3u}> *vec_field, Vector3< double > const &vec, Cell const &cell)
auto get(GhostLayerField< double, uint_t{3u}> const *vec_field, Cell const &cell)
void add_to_all(GhostLayerField< double, uint_t{3u}> *vec_field, Vector3< double > const &vec)
void set(GhostLayerField< double, uint_t{19u}> *pdf_field, GhostLayerField< double, uint_t{3u}> *velocity_field, GhostLayerField< double, uint_t{3u}> const *force_field, Vector3< double > const &u, Cell const &cell)
auto get(GhostLayerField< double, uint_t{19u}> const *pdf_field, GhostLayerField< double, uint_t{3u}> const *force_field, Cell const &cell)
\file PackInfoPdfDoublePrecision.cpp \author pystencils