diff --git a/src/main/c/fluidsim.c b/src/main/c/fluidsim.c index 85444a1..bfa5a32 100644 --- a/src/main/c/fluidsim.c +++ b/src/main/c/fluidsim.c @@ -183,12 +183,12 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate( chunkJRaw, DIM, chunkMask, - u, - v, - w, - u0, - v0, - w0, + currentChunk->u, + currentChunk->v, + currentChunk->w, + currentChunk->u0, + currentChunk->v0, + currentChunk->w0, DIFFUSION_CONSTANT, VISCOSITY_CONSTANT, timestep @@ -694,6 +694,19 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate( Java_electrosphere_FluidSim_copyNeighbors(env,chunkJRaw,DIM,chunkMask,0,3,w0); } } + + + + + ///------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + ///------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + ///------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + ///------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + ///------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + + + + //add density { for(int i = 0; i < numChunks; i++){ diff --git a/src/main/c/includes/mainFunctions.h b/src/main/c/includes/mainFunctions.h index 11b309d..639588d 100644 --- a/src/main/c/includes/mainFunctions.h +++ b/src/main/c/includes/mainFunctions.h @@ -17,7 +17,7 @@ JNIEXPORT jint JNICALL Java_electrosphere_FluidSim_calculateChunkMask * Signature: (II[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;FFF)V */ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_addSourceToVectors - (JNIEnv *, jobject, jint, jint, jobjectArray, jobjectArray, jobjectArray, jobjectArray, jobjectArray, jobjectArray, jfloat, jfloat, jfloat); + (JNIEnv *, jobject, jint, jint, float **, float **, float **, float **, float **, float **, jfloat, jfloat, jfloat); /* * Class: electrosphere_FluidSim diff --git a/src/main/c/velocitystep.c b/src/main/c/velocitystep.c index 6942e2e..721cc3b 100644 --- a/src/main/c/velocitystep.c +++ b/src/main/c/velocitystep.c @@ -27,18 +27,18 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_addSourceToVectors jobject this, jint N, jint chunk_mask, - jobjectArray jru, - jobjectArray jrv, - jobjectArray jrw, - jobjectArray jru0, - jobjectArray jrv0, - jobjectArray jrw0, + float ** jru, + float ** jrv, + float ** jrw, + float ** jru0, + float ** jrv0, + float ** jrw0, jfloat DIFFUSION_CONST, jfloat VISCOSITY_CONST, jfloat dt){ - add_source(N,GET_ARR(env,jru,CENTER_LOC),GET_ARR(env,jru0,CENTER_LOC),dt); - add_source(N,GET_ARR(env,jrv,CENTER_LOC),GET_ARR(env,jrv0,CENTER_LOC),dt); - add_source(N,GET_ARR(env,jrw,CENTER_LOC),GET_ARR(env,jrw0,CENTER_LOC),dt); + add_source(N,GET_ARR_RAW(env,jru,CENTER_LOC),GET_ARR_RAW(env,jru0,CENTER_LOC),dt); + add_source(N,GET_ARR_RAW(env,jrv,CENTER_LOC),GET_ARR_RAW(env,jrv0,CENTER_LOC),dt); + add_source(N,GET_ARR_RAW(env,jrw,CENTER_LOC),GET_ARR_RAW(env,jrw0,CENTER_LOC),dt); } void add_source(int N, float * x, float * s, float dt){