swap adding forces

This commit is contained in:
unknown 2024-03-10 17:48:37 -04:00
parent 6afbbd7e2a
commit 52e853f8ad
3 changed files with 29 additions and 16 deletions

View File

@ -183,12 +183,12 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate(
chunkJRaw, chunkJRaw,
DIM, DIM,
chunkMask, chunkMask,
u, currentChunk->u,
v, currentChunk->v,
w, currentChunk->w,
u0, currentChunk->u0,
v0, currentChunk->v0,
w0, currentChunk->w0,
DIFFUSION_CONSTANT, DIFFUSION_CONSTANT,
VISCOSITY_CONSTANT, VISCOSITY_CONSTANT,
timestep timestep
@ -694,6 +694,19 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate(
Java_electrosphere_FluidSim_copyNeighbors(env,chunkJRaw,DIM,chunkMask,0,3,w0); Java_electrosphere_FluidSim_copyNeighbors(env,chunkJRaw,DIM,chunkMask,0,3,w0);
} }
} }
///------------------------------------------------------------------------------------------------------------------------------------------------------------------------
///------------------------------------------------------------------------------------------------------------------------------------------------------------------------
///------------------------------------------------------------------------------------------------------------------------------------------------------------------------
///------------------------------------------------------------------------------------------------------------------------------------------------------------------------
///------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//add density //add density
{ {
for(int i = 0; i < numChunks; i++){ for(int i = 0; i < numChunks; i++){

View File

@ -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 * 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 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 * Class: electrosphere_FluidSim

View File

@ -27,18 +27,18 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_addSourceToVectors
jobject this, jobject this,
jint N, jint N,
jint chunk_mask, jint chunk_mask,
jobjectArray jru, float ** jru,
jobjectArray jrv, float ** jrv,
jobjectArray jrw, float ** jrw,
jobjectArray jru0, float ** jru0,
jobjectArray jrv0, float ** jrv0,
jobjectArray jrw0, float ** jrw0,
jfloat DIFFUSION_CONST, jfloat DIFFUSION_CONST,
jfloat VISCOSITY_CONST, jfloat VISCOSITY_CONST,
jfloat dt){ jfloat dt){
add_source(N,GET_ARR(env,jru,CENTER_LOC),GET_ARR(env,jru0,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(env,jrv,CENTER_LOC),GET_ARR(env,jrv0,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(env,jrw,CENTER_LOC),GET_ARR(env,jrw0,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){ void add_source(int N, float * x, float * s, float dt){