Skip to content

Commit

Permalink
Merge branch 'python' into typedefs
Browse files Browse the repository at this point in the history
  • Loading branch information
kodiakhq[bot] authored Mar 30, 2021
2 parents 3016f39 + 90540b1 commit d0e50f2
Show file tree
Hide file tree
Showing 8 changed files with 231 additions and 241 deletions.
64 changes: 32 additions & 32 deletions src/core/grid_based_algorithms/electrokinetics_cuda.cu
Original file line number Diff line number Diff line change
Expand Up @@ -1811,12 +1811,12 @@ ek_gather_particle_charge_density(CUDA_particle_data *particle_data,
lowernode[2] = static_cast<unsigned>(floorf(gridpos));
cellpos[2] = gridpos - static_cast<float>(lowernode[2]);

lowernode[0] = (lowernode[0] + ek_lbparameters_gpu->dim_x) %
ek_lbparameters_gpu->dim_x;
lowernode[1] = (lowernode[1] + ek_lbparameters_gpu->dim_y) %
ek_lbparameters_gpu->dim_y;
lowernode[2] = (lowernode[2] + ek_lbparameters_gpu->dim_z) %
ek_lbparameters_gpu->dim_z;
lowernode[0] = (lowernode[0] + ek_lbparameters_gpu->dim[0]) %
ek_lbparameters_gpu->dim[0];
lowernode[1] = (lowernode[1] + ek_lbparameters_gpu->dim[1]) %
ek_lbparameters_gpu->dim[1];
lowernode[2] = (lowernode[2] + ek_lbparameters_gpu->dim[2]) %
ek_lbparameters_gpu->dim[2];

atomicAdd(&((cufftReal *)ek_parameters_gpu
->charge_potential)[rhoindex_cartesian2linear_padded(
Expand Down Expand Up @@ -1898,12 +1898,12 @@ ek_spread_particle_force(CUDA_particle_data *particle_data,
lowernode[2] = static_cast<unsigned>(floorf(gridpos));
cellpos[2] = gridpos - static_cast<float>(lowernode[2]);

lowernode[0] = (lowernode[0] + ek_lbparameters_gpu->dim_x) %
ek_lbparameters_gpu->dim_x;
lowernode[1] = (lowernode[1] + ek_lbparameters_gpu->dim_y) %
ek_lbparameters_gpu->dim_y;
lowernode[2] = (lowernode[2] + ek_lbparameters_gpu->dim_z) %
ek_lbparameters_gpu->dim_z;
lowernode[0] = (lowernode[0] + ek_lbparameters_gpu->dim[0]) %
ek_lbparameters_gpu->dim[0];
lowernode[1] = (lowernode[1] + ek_lbparameters_gpu->dim[1]) %
ek_lbparameters_gpu->dim[1];
lowernode[2] = (lowernode[2] + ek_lbparameters_gpu->dim[2]) %
ek_lbparameters_gpu->dim[2];

float efield[3] = {0., 0., 0.};
for (unsigned int dim = 0; dim < 3; ++dim) {
Expand All @@ -1921,7 +1921,7 @@ ek_spread_particle_force(CUDA_particle_data *particle_data,
->electric_field[3 * rhoindex_cartesian2linear(
lowernode[0], lowernode[1],
(lowernode[2] + 1) %
ek_lbparameters_gpu->dim_z) +
ek_lbparameters_gpu->dim[2]) +
dim] *
(1 - cellpos[0]) * (1 - cellpos[1]) * cellpos[2];

Expand All @@ -1931,7 +1931,7 @@ ek_spread_particle_force(CUDA_particle_data *particle_data,
->electric_field[3 * rhoindex_cartesian2linear(
lowernode[0],
(lowernode[1] + 1) %
ek_lbparameters_gpu->dim_y,
ek_lbparameters_gpu->dim[1],
lowernode[2]) +
dim] *
(1 - cellpos[0]) * cellpos[1] * (1 - cellpos[2]);
Expand All @@ -1941,8 +1941,8 @@ ek_spread_particle_force(CUDA_particle_data *particle_data,
ek_parameters_gpu->electric_field
[3 * rhoindex_cartesian2linear(
lowernode[0],
(lowernode[1] + 1) % ek_lbparameters_gpu->dim_y,
(lowernode[2] + 1) % ek_lbparameters_gpu->dim_z) +
(lowernode[1] + 1) % ek_lbparameters_gpu->dim[1],
(lowernode[2] + 1) % ek_lbparameters_gpu->dim[2]) +
dim] *
(1 - cellpos[0]) * cellpos[1] * cellpos[2];

Expand All @@ -1951,7 +1951,7 @@ ek_spread_particle_force(CUDA_particle_data *particle_data,
ek_parameters_gpu
->electric_field[3 * rhoindex_cartesian2linear(
(lowernode[0] + 1) %
ek_lbparameters_gpu->dim_x,
ek_lbparameters_gpu->dim[0],
lowernode[1], lowernode[2]) +
dim] *
cellpos[0] * (1 - cellpos[1]) * (1 - cellpos[2]);
Expand All @@ -1960,18 +1960,18 @@ ek_spread_particle_force(CUDA_particle_data *particle_data,
efield[dim] +=
ek_parameters_gpu->electric_field
[3 * rhoindex_cartesian2linear(
(lowernode[0] + 1) % ek_lbparameters_gpu->dim_x,
(lowernode[0] + 1) % ek_lbparameters_gpu->dim[0],
lowernode[1],
(lowernode[2] + 1) % ek_lbparameters_gpu->dim_z) +
(lowernode[2] + 1) % ek_lbparameters_gpu->dim[2]) +
dim] *
cellpos[0] * (1 - cellpos[1]) * cellpos[2];

// 1 1 0
efield[dim] +=
ek_parameters_gpu->electric_field
[3 * rhoindex_cartesian2linear(
(lowernode[0] + 1) % ek_lbparameters_gpu->dim_x,
(lowernode[1] + 1) % ek_lbparameters_gpu->dim_y,
(lowernode[0] + 1) % ek_lbparameters_gpu->dim[0],
(lowernode[1] + 1) % ek_lbparameters_gpu->dim[1],
lowernode[2]) +
dim] *
cellpos[0] * cellpos[1] * (1 - cellpos[2]);
Expand All @@ -1980,9 +1980,9 @@ ek_spread_particle_force(CUDA_particle_data *particle_data,
efield[dim] +=
ek_parameters_gpu->electric_field
[3 * rhoindex_cartesian2linear(
(lowernode[0] + 1) % ek_lbparameters_gpu->dim_x,
(lowernode[1] + 1) % ek_lbparameters_gpu->dim_y,
(lowernode[2] + 1) % ek_lbparameters_gpu->dim_z) +
(lowernode[0] + 1) % ek_lbparameters_gpu->dim[0],
(lowernode[1] + 1) % ek_lbparameters_gpu->dim[1],
(lowernode[2] + 1) % ek_lbparameters_gpu->dim[2]) +
dim] *
cellpos[0] * cellpos[1] * cellpos[2];
}
Expand Down Expand Up @@ -2279,10 +2279,10 @@ int ek_init() {
lbpar_gpu.ext_force_density[2] = 0;
}

ek_parameters.dim_x = lbpar_gpu.dim_x;
ek_parameters.dim_x = lbpar_gpu.dim[0];
ek_parameters.dim_x_padded = (ek_parameters.dim_x / 2 + 1) * 2;
ek_parameters.dim_y = lbpar_gpu.dim_y;
ek_parameters.dim_z = lbpar_gpu.dim_z;
ek_parameters.dim_y = lbpar_gpu.dim[1];
ek_parameters.dim_z = lbpar_gpu.dim[2];
ek_parameters.time_step = lbpar_gpu.time_step;
ek_parameters.number_of_nodes =
ek_parameters.dim_x * ek_parameters.dim_y * ek_parameters.dim_z;
Expand Down Expand Up @@ -2467,7 +2467,7 @@ SPACING %f %f %f\n\
\nPOINT_DATA %u\n\
SCALARS velocity float 3\n\
LOOKUP_TABLE default\n",
lbpar_gpu.dim_x, lbpar_gpu.dim_y, lbpar_gpu.dim_z,
lbpar_gpu.dim[0], lbpar_gpu.dim[1], lbpar_gpu.dim[2],
lbpar_gpu.agrid * 0.5f, lbpar_gpu.agrid * 0.5f,
lbpar_gpu.agrid * 0.5f, lbpar_gpu.agrid, lbpar_gpu.agrid,
lbpar_gpu.agrid, lbpar_gpu.number_of_nodes);
Expand Down Expand Up @@ -2524,7 +2524,7 @@ SPACING %f %f %f\n\
POINT_DATA %u\n\
SCALARS density_lb float 1\n\
LOOKUP_TABLE default\n",
lbpar_gpu.dim_x, lbpar_gpu.dim_y, lbpar_gpu.dim_z,
lbpar_gpu.dim[0], lbpar_gpu.dim[1], lbpar_gpu.dim[2],
lbpar_gpu.agrid * 0.5f, lbpar_gpu.agrid * 0.5f,
lbpar_gpu.agrid * 0.5f, lbpar_gpu.agrid, lbpar_gpu.agrid,
lbpar_gpu.agrid, lbpar_gpu.number_of_nodes);
Expand Down Expand Up @@ -3653,9 +3653,9 @@ void ek_print_lbpar() {
printf(" float tau = %f;\n", lbpar_gpu.tau);
printf(" float time_step = %f;\n", lbpar_gpu.time_step);
printf(" float bulk_viscosity = %f;\n", lbpar_gpu.bulk_viscosity);
printf(" unsigned int dim_x = %d;\n", lbpar_gpu.dim_x);
printf(" unsigned int dim_y = %d;\n", lbpar_gpu.dim_y);
printf(" unsigned int dim_z = %d;\n", lbpar_gpu.dim_z);
printf(" unsigned int dim_x = %d;\n", lbpar_gpu.dim[0]);
printf(" unsigned int dim_y = %d;\n", lbpar_gpu.dim[1]);
printf(" unsigned int dim_z = %d;\n", lbpar_gpu.dim[2]);
printf(" unsigned int number_of_nodes = %d;\n", lbpar_gpu.number_of_nodes);
printf(" int calc_val = %d;\n", lbpar_gpu.calc_val);
printf(" int external_force_density = %d;\n",
Expand Down
15 changes: 8 additions & 7 deletions src/core/grid_based_algorithms/lb_boundaries.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ void ek_init_boundaries() {
<< "no charged species available to create wall charge\n";
}

for (int z = 0; z < int(lbpar_gpu.dim_z); z++) {
for (int y = 0; y < int(lbpar_gpu.dim_y); y++) {
for (int x = 0; x < int(lbpar_gpu.dim_x); x++) {
for (int z = 0; z < int(lbpar_gpu.dim[2]); z++) {
for (int y = 0; y < int(lbpar_gpu.dim[1]); y++) {
for (int x = 0; x < int(lbpar_gpu.dim[0]); x++) {
auto const pos = static_cast<double>(lbpar_gpu.agrid) *
(Utils::Vector3d{1. * x, 1. * y, 1. * z} +
Utils::Vector3d::broadcast(0.5));
Expand Down Expand Up @@ -166,9 +166,9 @@ void lb_init_boundaries() {
std::vector<int> host_boundary_index_list;
size_t size_of_index;

for (int z = 0; z < int(lbpar_gpu.dim_z); z++) {
for (int y = 0; y < int(lbpar_gpu.dim_y); y++) {
for (int x = 0; x < int(lbpar_gpu.dim_x); x++) {
for (int z = 0; z < int(lbpar_gpu.dim[2]); z++) {
for (int y = 0; y < int(lbpar_gpu.dim[1]); y++) {
for (int x = 0; x < int(lbpar_gpu.dim[0]); x++) {
auto const pos = static_cast<double>(lbpar_gpu.agrid) *
(Utils::Vector3d{1. * x, 1. * y, 1. * z} +
Utils::Vector3d::broadcast(0.5));
Expand All @@ -184,7 +184,8 @@ void lb_init_boundaries() {
host_boundary_node_list.resize(size_of_index);
host_boundary_index_list.resize(size_of_index);
host_boundary_node_list[number_of_boundnodes] =
x + lbpar_gpu.dim_x * y + lbpar_gpu.dim_x * lbpar_gpu.dim_y * z;
x + lbpar_gpu.dim[0] * y +
lbpar_gpu.dim[0] * lbpar_gpu.dim[1] * z;
auto const boundary_number =
std::distance(lbboundaries.begin(), boundary.base()) - 1;
host_boundary_index_list[number_of_boundnodes] =
Expand Down
70 changes: 35 additions & 35 deletions src/core/grid_based_algorithms/lb_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,7 @@ void lb_lbfluid_print_vtk_boundary(const std::string &filename) {
"ASCII\nDATASET STRUCTURED_POINTS\nDIMENSIONS %u %u %u\n"
"ORIGIN %f %f %f\nSPACING %f %f %f\nPOINT_DATA %u\n"
"SCALARS boundary float 1\nLOOKUP_TABLE default\n",
lbpar_gpu.dim_x, lbpar_gpu.dim_y, lbpar_gpu.dim_z,
lbpar_gpu.dim[0], lbpar_gpu.dim[1], lbpar_gpu.dim[2],
lbpar_gpu.agrid * 0.5, lbpar_gpu.agrid * 0.5, lbpar_gpu.agrid * 0.5,
lbpar_gpu.agrid, lbpar_gpu.agrid, lbpar_gpu.agrid,
lbpar_gpu.number_of_nodes);
Expand Down Expand Up @@ -606,8 +606,8 @@ void lb_lbfluid_print_vtk_velocity(const std::string &filename,
for (pos[1] = bb_low[1]; pos[1] < bb_high[1]; pos[1]++)
for (pos[0] = bb_low[0]; pos[0] < bb_high[0]; pos[0]++) {
auto const j =
static_cast<int>(lbpar_gpu.dim_y * lbpar_gpu.dim_x * pos[2] +
lbpar_gpu.dim_x * pos[1] + pos[0]);
static_cast<int>(lbpar_gpu.dim[0] * lbpar_gpu.dim[0] * pos[2] +
lbpar_gpu.dim[0] * pos[1] + pos[0]);
fprintf(fp, "%f %f %f\n", host_values[j].v[0] * lattice_speed,
host_values[j].v[1] * lattice_speed,
host_values[j].v[2] * lattice_speed);
Expand Down Expand Up @@ -651,10 +651,10 @@ void lb_lbfluid_print_boundary(const std::string &filename) {

Utils::Vector3i xyz;
for (int j = 0; j < static_cast<int>(lbpar_gpu.number_of_nodes); ++j) {
xyz[0] = j % lbpar_gpu.dim_x;
auto k = j / lbpar_gpu.dim_x;
xyz[1] = k % lbpar_gpu.dim_y;
k /= lbpar_gpu.dim_y;
xyz[0] = j % lbpar_gpu.dim[0];
auto k = j / lbpar_gpu.dim[0];
xyz[1] = k % lbpar_gpu.dim[1];
k /= lbpar_gpu.dim[1];
xyz[2] = k;
fprintf(fp, "%f %f %f %u\n", (xyz[0] + 0.5) * lbpar_gpu.agrid,
(xyz[1] + 0.5) * lbpar_gpu.agrid,
Expand Down Expand Up @@ -695,10 +695,10 @@ void lb_lbfluid_print_velocity(const std::string &filename) {
Utils::Vector3i xyz;
int j;
for (j = 0; j < int(lbpar_gpu.number_of_nodes); ++j) {
xyz[0] = j % lbpar_gpu.dim_x;
auto k = j / lbpar_gpu.dim_x;
xyz[1] = k % lbpar_gpu.dim_y;
k /= lbpar_gpu.dim_y;
xyz[0] = j % lbpar_gpu.dim[0];
auto k = j / lbpar_gpu.dim[0];
xyz[1] = k % lbpar_gpu.dim[1];
k /= lbpar_gpu.dim[1];
xyz[2] = k;
fprintf(fp, "%f %f %f %f %f %f\n", (xyz[0] + 0.5) * agrid,
(xyz[1] + 0.5) * agrid, (xyz[2] + 0.5) * agrid,
Expand Down Expand Up @@ -734,21 +734,21 @@ void lb_lbfluid_save_checkpoint(const std::string &filename, bool binary) {
std::fstream cpfile(filename, std::ios::out);
cpfile << std::fixed;
cpfile.precision(8);
cpfile << lbpar_gpu.dim_x << " ";
cpfile << lbpar_gpu.dim_y << " ";
cpfile << lbpar_gpu.dim_z << "\n";
cpfile << lbpar_gpu.dim[0] << " ";
cpfile << lbpar_gpu.dim[1] << " ";
cpfile << lbpar_gpu.dim[2] << "\n";
for (int n = 0; n < (19 * int(lbpar_gpu.number_of_nodes)); n++) {
cpfile << host_checkpoint_vd[n] << "\n";
}
cpfile.close();
} else {
std::fstream cpfile(filename, std::ios::out | std::ios::binary);
cpfile.write(reinterpret_cast<char *>(&lbpar_gpu.dim_x),
sizeof(lbpar_gpu.dim_x));
cpfile.write(reinterpret_cast<char *>(&lbpar_gpu.dim_y),
sizeof(lbpar_gpu.dim_y));
cpfile.write(reinterpret_cast<char *>(&lbpar_gpu.dim_z),
sizeof(lbpar_gpu.dim_z));
cpfile.write(reinterpret_cast<char *>(&lbpar_gpu.dim[0]),
sizeof(lbpar_gpu.dim[0]));
cpfile.write(reinterpret_cast<char *>(&lbpar_gpu.dim[1]),
sizeof(lbpar_gpu.dim[1]));
cpfile.write(reinterpret_cast<char *>(&lbpar_gpu.dim[2]),
sizeof(lbpar_gpu.dim[2]));
cpfile.write(reinterpret_cast<char *>(host_checkpoint_vd.data()),
19 * sizeof(float) * lbpar_gpu.number_of_nodes);
cpfile.close();
Expand Down Expand Up @@ -818,18 +818,18 @@ void lb_lbfluid_load_checkpoint(const std::string &filename, bool binary) {
throw std::runtime_error(err_msg + "incorrectly formatted data.");
}
}
if (saved_gridsize[0] != lbpar_gpu.dim_x ||
saved_gridsize[1] != lbpar_gpu.dim_y ||
saved_gridsize[2] != lbpar_gpu.dim_z) {
if (saved_gridsize[0] != lbpar_gpu.dim[0] ||
saved_gridsize[1] != lbpar_gpu.dim[1] ||
saved_gridsize[2] != lbpar_gpu.dim[2]) {
fclose(cpfile);
throw std::runtime_error(err_msg + "grid dimensions mismatch, read [" +
std::to_string(saved_gridsize[0]) + ' ' +
std::to_string(saved_gridsize[1]) + ' ' +
std::to_string(saved_gridsize[2]) +
"], expected [" +
std::to_string(lbpar_gpu.dim_x) + ' ' +
std::to_string(lbpar_gpu.dim_y) + ' ' +
std::to_string(lbpar_gpu.dim_z) + "].");
std::to_string(lbpar_gpu.dim[0]) + ' ' +
std::to_string(lbpar_gpu.dim[1]) + ' ' +
std::to_string(lbpar_gpu.dim[2]) + "].");
}
for (int n = 0; n < (19 * int(lbpar_gpu.number_of_nodes)); n++) {
res = fscanf(cpfile, "%f", &host_checkpoint_vd[n]);
Expand All @@ -848,18 +848,18 @@ void lb_lbfluid_load_checkpoint(const std::string &filename, bool binary) {
fclose(cpfile);
throw std::runtime_error(err_msg + "incorrectly formatted data.");
}
if (saved_gridsize[0] != lbpar_gpu.dim_x ||
saved_gridsize[1] != lbpar_gpu.dim_y ||
saved_gridsize[2] != lbpar_gpu.dim_z) {
if (saved_gridsize[0] != lbpar_gpu.dim[0] ||
saved_gridsize[1] != lbpar_gpu.dim[1] ||
saved_gridsize[2] != lbpar_gpu.dim[2]) {
fclose(cpfile);
throw std::runtime_error(err_msg + "grid dimensions mismatch, read [" +
std::to_string(saved_gridsize[0]) + ' ' +
std::to_string(saved_gridsize[1]) + ' ' +
std::to_string(saved_gridsize[2]) +
"], expected [" +
std::to_string(lbpar_gpu.dim_x) + ' ' +
std::to_string(lbpar_gpu.dim_y) + ' ' +
std::to_string(lbpar_gpu.dim_z) + "].");
std::to_string(lbpar_gpu.dim[0]) + ' ' +
std::to_string(lbpar_gpu.dim[1]) + ' ' +
std::to_string(lbpar_gpu.dim[2]) + "].");
}
if (fread(host_checkpoint_vd.data(), sizeof(float),
19 * int(lbpar_gpu.number_of_nodes),
Expand Down Expand Up @@ -981,9 +981,9 @@ void lb_lbfluid_load_checkpoint(const std::string &filename, bool binary) {
Utils::Vector3i lb_lbfluid_get_shape() {
if (lattice_switch == ActiveLB::GPU) {
#ifdef CUDA
return {static_cast<int>(lbpar_gpu.dim_x),
static_cast<int>(lbpar_gpu.dim_y),
static_cast<int>(lbpar_gpu.dim_z)};
return {static_cast<int>(lbpar_gpu.dim[0]),
static_cast<int>(lbpar_gpu.dim[1]),
static_cast<int>(lbpar_gpu.dim[2])};
#endif
}
if (lattice_switch == ActiveLB::CPU) {
Expand Down
Loading

0 comments on commit d0e50f2

Please sign in to comment.