More setup for multiple chunks
This commit is contained in:
parent
651435bd19
commit
d55ee5ac89
@ -415,6 +415,7 @@ void advect(JNIEnv * env, uint32_t chunk_mask, int N, int b, jobjectArray jrd, f
|
|||||||
for(k=1; k<N-1; k++){
|
for(k=1; k<N-1; k++){
|
||||||
for(j=1; j<N-1; j++){
|
for(j=1; j<N-1; j++){
|
||||||
for(i=1; i<N-1; i++){
|
for(i=1; i<N-1; i++){
|
||||||
|
sampleArr = d0;
|
||||||
//calculate location to pull from
|
//calculate location to pull from
|
||||||
x = i-dtx*u[IX(i,j,k)];
|
x = i-dtx*u[IX(i,j,k)];
|
||||||
y = j-dty*v[IX(i,j,k)];
|
y = j-dty*v[IX(i,j,k)];
|
||||||
@ -531,11 +532,39 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_setBoundsToNeighbors
|
|||||||
jobjectArray neighborArray){
|
jobjectArray neighborArray){
|
||||||
int DIM = N;
|
int DIM = N;
|
||||||
float * target = GET_ARR(env,neighborArray,CENTER_LOC);
|
float * target = GET_ARR(env,neighborArray,CENTER_LOC);
|
||||||
|
float * source;
|
||||||
|
// if(ARR_EXISTS(chunk_mask,0,1,1)){
|
||||||
|
// source = GET_ARR(env,neighborArray,CK(0,1,1));
|
||||||
|
// for(int x=1; x < DIM-1; x++){
|
||||||
|
// for(int y = 1; y < DIM-1; y++){
|
||||||
|
// target[IX(0,x,y)] = source[IX(DIM-2,x,y)];
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
for(int x=1; x < DIM-1; x++){
|
||||||
|
for(int y = 1; y < DIM-1; y++){
|
||||||
|
target[IX(0,x,y)] = vector_dir==BOUND_DIR_U ? -target[IX(1,x,y)] : target[IX(1,x,y)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if(ARR_EXISTS(chunk_mask,2,1,1)){
|
||||||
|
// source = GET_ARR(env,neighborArray,CK(2,1,1));
|
||||||
|
// for(int x=1; x < DIM-1; x++){
|
||||||
|
// for(int y = 1; y < DIM-1; y++){
|
||||||
|
// target[IX(DIM-1,x,y)] = source[IX(1,x,y)];
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
for(int x=1; x < DIM-1; x++){
|
||||||
|
for(int y = 1; y < DIM-1; y++){
|
||||||
|
target[IX(DIM-1,x,y)] = vector_dir==BOUND_DIR_U ? -target[IX(DIM-2,x,y)] : target[IX(DIM-2,x,y)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// }
|
||||||
for(int x=1; x < DIM-1; x++){
|
for(int x=1; x < DIM-1; x++){
|
||||||
for(int y = 1; y < DIM-1; y++){
|
for(int y = 1; y < DIM-1; y++){
|
||||||
//((x)+(DIM)*(y) + (DIM)*(DIM)*(z))
|
//((x)+(DIM)*(y) + (DIM)*(DIM)*(z))
|
||||||
target[IX(0,x,y)] = vector_dir==BOUND_DIR_U ? -target[IX(1,x,y)] : target[IX(1,x,y)];
|
|
||||||
target[IX(DIM-1,x,y)] = vector_dir==BOUND_DIR_U ? -target[IX(DIM-2,x,y)] : target[IX(DIM-2,x,y)];
|
|
||||||
target[IX(x,0,y)] = vector_dir==BOUND_DIR_V ? -target[IX(x,1,y)] : target[IX(x,1,y)];
|
target[IX(x,0,y)] = vector_dir==BOUND_DIR_V ? -target[IX(x,1,y)] : target[IX(x,1,y)];
|
||||||
target[IX(x,DIM-1,y)] = vector_dir==BOUND_DIR_V ? -target[IX(x,DIM-2,y)] : target[IX(x,DIM-2,y)];
|
target[IX(x,DIM-1,y)] = vector_dir==BOUND_DIR_V ? -target[IX(x,DIM-2,y)] : target[IX(x,DIM-2,y)];
|
||||||
target[IX(x,y,0)] = vector_dir==BOUND_DIR_W ? -target[IX(x,y,1)] : target[IX(x,y,1)];
|
target[IX(x,y,0)] = vector_dir==BOUND_DIR_W ? -target[IX(x,y,1)] : target[IX(x,y,1)];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user