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>
52std::array<float, 19u>
get(gpu::GPUField<float>
const *pdf_field,
55void set(gpu::GPUField<float> *pdf_field, std::array<float, 19u>
const &pop,
58void set(gpu::GPUField<float> *pdf_field, gpu::GPUField<float> *velocity_field,
59 gpu::GPUField<float>
const *force_field,
60 std::array<float, 19u>
const &pop,
Cell const &cell);
62void initialize(gpu::GPUField<float> *pdf_field,
63 std::array<float, 19u>
const &pop);
65std::vector<float>
get(gpu::GPUField<float>
const *pdf_field,
66 CellInterval
const &ci);
68void set(gpu::GPUField<float> *pdf_field, std::vector<float>
const &values,
69 CellInterval
const &ci);
71void set(gpu::GPUField<float> *pdf_field, gpu::GPUField<float> *velocity_field,
72 gpu::GPUField<float>
const *force_field,
73 std::vector<float>
const &values, CellInterval
const &ci);
78Vector3<float>
get(gpu::GPUField<float>
const *field,
Cell const &cell);
80void set(gpu::GPUField<float> *field, Vector3<float>
const &vec,
83void add(gpu::GPUField<float> *field, Vector3<float>
const &vec,
86void initialize(gpu::GPUField<float> *field, Vector3<float>
const &vec);
88void add_to_all(gpu::GPUField<float> *field, Vector3<float>
const &vec);
90std::vector<float>
get(gpu::GPUField<float>
const *vec_field,
91 CellInterval
const &ci);
93void set(gpu::GPUField<float> *vec_field, std::vector<float>
const &values,
94 CellInterval
const &ci);
98namespace Interpolation {
99std::vector<float>
get(gpu::GPUField<float>
const *vec_field,
100 std::vector<float>
const &pos, uint gl);
101void set(gpu::GPUField<float>
const *vec_field, std::vector<float>
const &pos,
102 std::vector<float>
const &forces, uint gl);
106float get(gpu::GPUField<float>
const *pdf_field,
Cell const &cell);
107void set(gpu::GPUField<float> *pdf_field,
float const rho,
Cell const &cell);
108std::vector<float>
get(gpu::GPUField<float>
const *pdf_field,
109 CellInterval
const &ci);
110void set(gpu::GPUField<float> *pdf_field, std::vector<float>
const &values,
111 CellInterval
const &ci);
115Vector3<float>
get(gpu::GPUField<float>
const *pdf_field,
116 gpu::GPUField<float>
const *force_field,
Cell const &cell);
117std::vector<float>
get(gpu::GPUField<float>
const *pdf_field,
118 gpu::GPUField<float>
const *force_field,
119 CellInterval
const &ci);
120void set(gpu::GPUField<float> *pdf_field, gpu::GPUField<float> *velocity_field,
121 gpu::GPUField<float>
const *force_field, Vector3<float>
const &u,
123void set(gpu::GPUField<float> *pdf_field, gpu::GPUField<float> *velocity_field,
124 gpu::GPUField<float>
const *force_field,
125 std::vector<float>
const &values, CellInterval
const &ci);
129void set(gpu::GPUField<float>
const *pdf_field,
130 gpu::GPUField<float> *velocity_field,
131 gpu::GPUField<float> *force_field, Vector3<float>
const &u,
133void set(gpu::GPUField<float>
const *pdf_field,
134 gpu::GPUField<float> *velocity_field,
135 gpu::GPUField<float> *force_field, std::vector<float>
const &values,
136 CellInterval
const &ci);
139namespace DensityAndVelocity {
140std::tuple<float, Vector3<float>>
get(gpu::GPUField<float>
const *pdf_field,
141 gpu::GPUField<float>
const *force_field,
143void set(gpu::GPUField<float> *pdf_field, gpu::GPUField<float> *force_field,
144 Vector3<float>
const &u,
float const rho,
Cell const &cell);
147namespace DensityAndMomentumDensity {
148std::tuple<float, Vector3<float>>
get(gpu::GPUField<float>
const *pdf_field,
149 gpu::GPUField<float>
const *force_field,
153namespace MomentumDensity {
154Vector3<float>
reduce(gpu::GPUField<float>
const *pdf_field,
155 gpu::GPUField<float>
const *force_field);
158namespace PressureTensor {
159Matrix3<float>
get(gpu::GPUField<float>
const *pdf_field,
Cell const &cell);
160std::vector<float>
get(gpu::GPUField<float>
const *pdf_field,
161 CellInterval
const &ci);
162Matrix3<float>
reduce(gpu::GPUField<float>
const *pdf_field);
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 const rho, 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(GhostLayerField< double, uint_t{19u}> *pdf_field, double const rho_in, Cell const &cell)
double get(GhostLayerField< double, uint_t{19u}> const *pdf_field, 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, Cell const &cell)
std::vector< double > get(gpu::GPUField< double > const *vec_field, std::vector< double > const &pos, uint gl)
void set(gpu::GPUField< double > const *vec_field, std::vector< double > const &pos, std::vector< double > const &forces, uint gl)
auto reduce(GhostLayerField< double, uint_t{19u}> const *pdf_field, GhostLayerField< double, uint_t{3u}> const *force_field)
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, Cell const &cell)
auto reduce(GhostLayerField< double, uint_t{19u}> const *pdf_field)
void initialize(GhostLayerField< double, uint_t{3u}> *vec_field, Vector3< double > const &vec)
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