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<double, 19u>
get(gpu::GPUField<double>
const *pdf_field,
55void set(gpu::GPUField<double> *pdf_field, std::array<double, 19u>
const &pop,
58void set(gpu::GPUField<double> *pdf_field,
59 gpu::GPUField<double> *velocity_field,
60 gpu::GPUField<double>
const *force_field,
61 std::array<double, 19u>
const &pop,
Cell const &cell);
63void initialize(gpu::GPUField<double> *pdf_field,
64 std::array<double, 19u>
const &pop);
66std::vector<double>
get(gpu::GPUField<double>
const *pdf_field,
67 CellInterval
const &ci);
69void set(gpu::GPUField<double> *pdf_field, std::vector<double>
const &values,
70 CellInterval
const &ci);
72void set(gpu::GPUField<double> *pdf_field,
73 gpu::GPUField<double> *velocity_field,
74 gpu::GPUField<double>
const *force_field,
75 std::vector<double>
const &values, CellInterval
const &ci);
80Vector3<double>
get(gpu::GPUField<double>
const *field,
Cell const &cell);
82void set(gpu::GPUField<double> *field, Vector3<double>
const &vec,
85void add(gpu::GPUField<double> *field, Vector3<double>
const &vec,
88void initialize(gpu::GPUField<double> *field, Vector3<double>
const &vec);
90void add_to_all(gpu::GPUField<double> *field, Vector3<double>
const &vec);
92std::vector<double>
get(gpu::GPUField<double>
const *vec_field,
93 CellInterval
const &ci);
95void set(gpu::GPUField<double> *vec_field, std::vector<double>
const &values,
96 CellInterval
const &ci);
100namespace Interpolation {
101std::vector<double>
get(gpu::GPUField<double>
const *vec_field,
102 std::vector<double>
const &pos, uint gl);
103void set(gpu::GPUField<double>
const *vec_field, std::vector<double>
const &pos,
104 std::vector<double>
const &forces, uint gl);
108double get(gpu::GPUField<double>
const *pdf_field,
Cell const &cell);
109void set(gpu::GPUField<double> *pdf_field,
double const rho,
Cell const &cell);
110std::vector<double>
get(gpu::GPUField<double>
const *pdf_field,
111 CellInterval
const &ci);
112void set(gpu::GPUField<double> *pdf_field, std::vector<double>
const &values,
113 CellInterval
const &ci);
117Vector3<double>
get(gpu::GPUField<double>
const *pdf_field,
118 gpu::GPUField<double>
const *force_field,
Cell const &cell);
119std::vector<double>
get(gpu::GPUField<double>
const *pdf_field,
120 gpu::GPUField<double>
const *force_field,
121 CellInterval
const &ci);
122void set(gpu::GPUField<double> *pdf_field,
123 gpu::GPUField<double> *velocity_field,
124 gpu::GPUField<double>
const *force_field, Vector3<double>
const &u,
126void set(gpu::GPUField<double> *pdf_field,
127 gpu::GPUField<double> *velocity_field,
128 gpu::GPUField<double>
const *force_field,
129 std::vector<double>
const &values, CellInterval
const &ci);
133void set(gpu::GPUField<double>
const *pdf_field,
134 gpu::GPUField<double> *velocity_field,
135 gpu::GPUField<double> *force_field, Vector3<double>
const &u,
137void set(gpu::GPUField<double>
const *pdf_field,
138 gpu::GPUField<double> *velocity_field,
139 gpu::GPUField<double> *force_field, std::vector<double>
const &values,
140 CellInterval
const &ci);
143namespace DensityAndVelocity {
144std::tuple<double, Vector3<double>>
145get(gpu::GPUField<double>
const *pdf_field,
146 gpu::GPUField<double>
const *force_field,
Cell const &cell);
147void set(gpu::GPUField<double> *pdf_field, gpu::GPUField<double> *force_field,
148 Vector3<double>
const &u,
double const rho,
Cell const &cell);
151namespace DensityAndMomentumDensity {
152std::tuple<double, Vector3<double>>
153get(gpu::GPUField<double>
const *pdf_field,
154 gpu::GPUField<double>
const *force_field,
Cell const &cell);
157namespace MomentumDensity {
158Vector3<double>
reduce(gpu::GPUField<double>
const *pdf_field,
159 gpu::GPUField<double>
const *force_field);
162namespace PressureTensor {
163Matrix3<double>
get(gpu::GPUField<double>
const *pdf_field,
Cell const &cell);
164std::vector<double>
get(gpu::GPUField<double>
const *pdf_field,
165 CellInterval
const &ci);
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)
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