Work in Progress 2D PT MPI v3
This commit is contained in:
		@@ -71,7 +71,7 @@ int main (int argc, char** argv)
 | 
			
		||||
        adaptUV(&solver);
 | 
			
		||||
 | 
			
		||||
        /* Added function for particle tracing. Will inject and advance particles as per timePeriod */
 | 
			
		||||
        trace(&particletracer, &solver, solver.u, solver.v, t);
 | 
			
		||||
        trace(&particletracer, solver.u, solver.v, t);
 | 
			
		||||
 | 
			
		||||
        t += solver.dt;
 | 
			
		||||
        nt++;
 | 
			
		||||
 
 | 
			
		||||
@@ -111,9 +111,9 @@ void freeParticles(ParticleTracer* particletracer)
 | 
			
		||||
    free(particletracer->linSpaceLine);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void writeParticles(ParticleTracer* particletracer, Solver* solver)
 | 
			
		||||
void writeParticles(ParticleTracer* particletracer)
 | 
			
		||||
{
 | 
			
		||||
    VtkOptions opts = { .solver = solver, .particletracer = particletracer };
 | 
			
		||||
    VtkOptions opts = { .particletracer = particletracer };
 | 
			
		||||
 | 
			
		||||
    char filename[50];
 | 
			
		||||
    snprintf(filename, 50, "vtk_files/particles%d.vtk", ts);
 | 
			
		||||
@@ -197,7 +197,7 @@ void printParticleTracerParameters(ParticleTracer* particletracer)
 | 
			
		||||
    printf("\tdt : %.2f, dx : %.2f, dy : %.2f\n", particletracer->dt, particletracer->dx, particletracer->dy);
 | 
			
		||||
}   
 | 
			
		||||
 | 
			
		||||
void trace(ParticleTracer* particletracer, Solver* solver, double* u, double* v, double time)
 | 
			
		||||
void trace(ParticleTracer* particletracer, double* u, double* v, double time)
 | 
			
		||||
{
 | 
			
		||||
    if (time >= particletracer->startTime)
 | 
			
		||||
    {
 | 
			
		||||
@@ -209,7 +209,7 @@ void trace(ParticleTracer* particletracer, Solver* solver, double* u, double* v,
 | 
			
		||||
        }
 | 
			
		||||
        if( (time - particletracer->lastWriteTime) >= particletracer->writeTimePeriod)
 | 
			
		||||
        {
 | 
			
		||||
            writeParticles(particletracer, solver);
 | 
			
		||||
            writeParticles(particletracer);
 | 
			
		||||
            particletracer->lastWriteTime = time;
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
@@ -237,5 +237,6 @@ void compress(ParticleTracer* particletracer)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    particletracer->totalParticles = totalParticles;
 | 
			
		||||
    particletracer->pointer        = totalParticles + 1;
 | 
			
		||||
    memcpy(particletracer->particlePool, tempPool, totalParticles*sizeof(Particle));
 | 
			
		||||
}
 | 
			
		||||
@@ -40,7 +40,7 @@ void initParticleTracer(ParticleTracer*, Parameter*);
 | 
			
		||||
void injectParticles(ParticleTracer*);
 | 
			
		||||
void advanceParticles(ParticleTracer*, double* , double*, double);
 | 
			
		||||
void freeParticles(ParticleTracer*);
 | 
			
		||||
void writeParticles(ParticleTracer*, Solver*);
 | 
			
		||||
void writeParticles(ParticleTracer*);
 | 
			
		||||
void printParticleTracerParameters(ParticleTracer*);
 | 
			
		||||
void printParticles(ParticleTracer*);
 | 
			
		||||
void trace(ParticleTracer*, Solver*, double* , double* , double );
 | 
			
		||||
 
 | 
			
		||||
@@ -61,8 +61,8 @@ void vtkParticle(VtkOptions* o, char* name)
 | 
			
		||||
{
 | 
			
		||||
    Particle* particlePool = o->particletracer->particlePool;
 | 
			
		||||
 | 
			
		||||
    int imax = o->solver->imax;
 | 
			
		||||
    int jmax = o->solver->jmax;
 | 
			
		||||
    int imax = o->particletracer->imax;
 | 
			
		||||
    int jmax = o->particletracer->jmax;
 | 
			
		||||
 | 
			
		||||
    if (o->fh == NULL) {
 | 
			
		||||
        printf("vtkWriter not initialize! Call vtkOpen first!\n");
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,6 @@ typedef enum VtkFormat { ASCII = 0, BINARY } VtkFormat;
 | 
			
		||||
typedef struct VtkOptions {
 | 
			
		||||
    VtkFormat fmt;
 | 
			
		||||
    FILE* fh;
 | 
			
		||||
    Solver* solver;
 | 
			
		||||
    ParticleTracer* particletracer;
 | 
			
		||||
} VtkOptions;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user