refactor add density func
All checks were successful
studiorailgun/fluid-sim/pipeline/head This commit looks good
All checks were successful
studiorailgun/fluid-sim/pipeline/head This commit looks good
This commit is contained in:
parent
7a1da2d29c
commit
69a803fb3f
@ -5,7 +5,6 @@
|
||||
#include "includes/utilities.h"
|
||||
#include "includes/chunkmask.h"
|
||||
|
||||
void advectDensity(uint32_t chunk_mask, int N, int b, float ** d, float ** d0, float * u, float * v, float * w, float dt);
|
||||
|
||||
/*
|
||||
* Class: electrosphere_FluidSim
|
||||
@ -81,27 +80,7 @@ void Java_electrosphere_FluidSim_solveDiffuseDensity
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: electrosphere_FluidSim
|
||||
* Method: advectDensity
|
||||
* Signature: (II[Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;FFF)V
|
||||
*/
|
||||
void Java_electrosphere_FluidSim_advectDensity
|
||||
(
|
||||
int N,
|
||||
int chunk_mask,
|
||||
float ** d,
|
||||
float ** d0,
|
||||
float ** jru,
|
||||
float ** jrv,
|
||||
float ** jrw,
|
||||
float DIFFUSION_CONST,
|
||||
float VISCOSITY_CONST,
|
||||
float dt){
|
||||
advectDensity(chunk_mask,N,3,d,d0,GET_ARR_RAW(env,jru,CENTER_LOC),GET_ARR_RAW(env,jrv,CENTER_LOC),GET_ARR_RAW(env,jrw,CENTER_LOC),dt);
|
||||
}
|
||||
|
||||
void advectDensity(uint32_t chunk_mask, int N, int b, float ** d, float ** d0, float * u, float * v, float * w, float dt){
|
||||
void advectDensity(uint32_t chunk_mask, int N, float ** d, float ** d0, float ** ur, float ** vr, float ** wr, float dt){
|
||||
int i, j, k, i0, j0, k0, i1, j1, k1;
|
||||
int m,n,o;
|
||||
float x, y, z, s0, t0, s1, t1, u1, u0, dtx,dty,dtz;
|
||||
@ -109,9 +88,12 @@ void advectDensity(uint32_t chunk_mask, int N, int b, float ** d, float ** d0, f
|
||||
dtx=dty=dtz=dt*N;
|
||||
|
||||
float * center_d = GET_ARR_RAW(env,d,CENTER_LOC);
|
||||
|
||||
float * center_d0 = GET_ARR_RAW(env,d0,CENTER_LOC);
|
||||
|
||||
float * u = GET_ARR_RAW(env,ur,CENTER_LOC);
|
||||
float * v = GET_ARR_RAW(env,vr,CENTER_LOC);
|
||||
float * w = GET_ARR_RAW(env,wr,CENTER_LOC);
|
||||
|
||||
for(k=1; k<N-1; k++){
|
||||
for(j=1; j<N-1; j++){
|
||||
for(i=1; i<N-1; i++){
|
||||
|
||||
@ -635,7 +635,7 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate(
|
||||
for(int i = 0; i < numChunks; i++){
|
||||
Chunk * currentChunk = chunks[i];
|
||||
chunkMask = currentChunk->chunkMask;
|
||||
Java_electrosphere_FluidSim_advectDensity(DIM,chunkMask,currentChunk->d,currentChunk->d0,currentChunk->u,currentChunk->v,currentChunk->w,DIFFUSION_CONSTANT,VISCOSITY_CONSTANT,timestep);
|
||||
advectDensity(chunkMask,DIM,currentChunk->d,currentChunk->d0,currentChunk->u,currentChunk->v,currentChunk->w,timestep);
|
||||
}
|
||||
}
|
||||
//mirror densities
|
||||
|
||||
@ -90,8 +90,7 @@ void Java_electrosphere_FluidSim_solveDiffuseDensity
|
||||
* Method: advectDensity
|
||||
* Signature: (II[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;FFF)V
|
||||
*/
|
||||
void Java_electrosphere_FluidSim_advectDensity
|
||||
(int, int, float **, float **, float **, float **, float **, float, float, float);
|
||||
void advectDensity(uint32_t chunk_mask, int N, float ** d, float ** d0, float ** ur, float ** vr, float ** wr, float dt);
|
||||
|
||||
void setBoundsToNeighborsRaw
|
||||
(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user