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/utilities.h"
|
||||||
#include "includes/chunkmask.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
|
* Class: electrosphere_FluidSim
|
||||||
@ -81,27 +80,7 @@ void Java_electrosphere_FluidSim_solveDiffuseDensity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
void advectDensity(uint32_t chunk_mask, int N, float ** d, float ** d0, float ** ur, float ** vr, float ** wr, float dt){
|
||||||
* 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){
|
|
||||||
int i, j, k, i0, j0, k0, i1, j1, k1;
|
int i, j, k, i0, j0, k0, i1, j1, k1;
|
||||||
int m,n,o;
|
int m,n,o;
|
||||||
float x, y, z, s0, t0, s1, t1, u1, u0, dtx,dty,dtz;
|
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;
|
dtx=dty=dtz=dt*N;
|
||||||
|
|
||||||
float * center_d = GET_ARR_RAW(env,d,CENTER_LOC);
|
float * center_d = GET_ARR_RAW(env,d,CENTER_LOC);
|
||||||
|
|
||||||
float * center_d0 = GET_ARR_RAW(env,d0,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(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++){
|
||||||
|
|||||||
@ -635,7 +635,7 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate(
|
|||||||
for(int i = 0; i < numChunks; i++){
|
for(int i = 0; i < numChunks; i++){
|
||||||
Chunk * currentChunk = chunks[i];
|
Chunk * currentChunk = chunks[i];
|
||||||
chunkMask = currentChunk->chunkMask;
|
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
|
//mirror densities
|
||||||
|
|||||||
@ -90,8 +90,7 @@ void Java_electrosphere_FluidSim_solveDiffuseDensity
|
|||||||
* Method: advectDensity
|
* Method: advectDensity
|
||||||
* Signature: (II[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;FFF)V
|
||||||
*/
|
*/
|
||||||
void Java_electrosphere_FluidSim_advectDensity
|
void advectDensity(uint32_t chunk_mask, int N, float ** d, float ** d0, float ** ur, float ** vr, float ** wr, float dt);
|
||||||
(int, int, float **, float **, float **, float **, float **, float, float, float);
|
|
||||||
|
|
||||||
void setBoundsToNeighborsRaw
|
void setBoundsToNeighborsRaw
|
||||||
(
|
(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user