AQUAgpusph 4.1.2
|
Splitting particles methods. More...
#include "resources/Scripts/types/types.h"
Macros | |
#define | M_ITERS 10 |
#define | CAPTURING_RADIUS 0.75f |
#define | CAPTURING_RADIUS2 (CAPTURING_RADIUS + 0.01f) |
Functions | |
__kernel void | seed_candidates (__global const unsigned int *iset, __global const int *imove, __global const unsigned int *ilevel, __global const unsigned int *level, __global const float *m0, __global int *miter, __global const vec *r, __global unsigned int *isplit, __global ivec *split_cell, __global float *split_dist, __constant float *dr_level0, unsigned int N) |
Look for all the seed candidates, i.e. all the particles which have a refinement level target lower than their current value. | |
__kernel void | seeds (__global const unsigned int *iset, __global const unsigned int *isplit_in, __global unsigned int *isplit, __global int *miter, __global const ivec *split_cell, __global const float *split_dist, __global const uint *icell, __global const uint *ihoc, unsigned int N, uivec4 n_cells) |
Get only one seed per cell. | |
__kernel void | set_isplit_in (__global const unsigned int *isplit, __global unsigned int *isplit_in, unsigned int N) |
Create a copy of isplit, where everything is 0 except the seeds, which take the value 1. Such array can be used to count the number of new particles to become generated. | |
__kernel void | children (__global const int *imove, __global const unsigned int *iset, __global const vec *r, __global const unsigned int *ilevel, __global unsigned int *isplit, __global int *miter, __global const uint *icell, __global const uint *ihoc, __constant float *dr_level0, unsigned int N, uivec4 n_cells) |
Look for all children, close enough to the seed. | |
__kernel void | weights (__global const unsigned int *iset, __global const unsigned int *ilevel, __global const vec *r, __global const unsigned int *isplit, __global float *split_weight, __global const uint *icell, __global const uint *ihoc, __constant float *dr_level0, unsigned int N, uivec4 n_cells) |
Compute the contribution weight of each children particle. | |
__kernel void | generate (__global int *imove, __global int *iset, __global const unsigned int *isplit, __global unsigned int *split_invperm, __global unsigned int *ilevel, __global unsigned int *level, __global int *miter, __global uint *mybuffer, unsigned int N, unsigned int nbuffer) |
Associate a buffer particle to a seed. | |
__kernel void | fields (__global const unsigned int *iset, __global const uint *isplit, __global const uint *mybuffer, __global const unsigned int *ilevel, __global const float *split_weight, __global float *m0, __global float *m, __global vec *r, __global vec *u, __global vec *dudt, __global float *rho, __global float *drhodt, __global const uint *icell, __global const uint *ihoc, __constant float *dr_level0, unsigned int N, uivec4 n_cells) |
Collect the children, and the seed itself, in order to compute the field values of the buffer partner particle. | |
Splitting particles methods.