forked from moebiusband/NuSiF-Solver
		
	Synchronize and Update variants. Prepare Assigment codes.
This commit is contained in:
		@@ -68,18 +68,18 @@ static void createBulkArrays(Solver* s, double* pg, double* ug, double* vg, doub
 | 
			
		||||
int main(int argc, char** argv)
 | 
			
		||||
{
 | 
			
		||||
    double timeStart, timeStop;
 | 
			
		||||
    Parameter params;
 | 
			
		||||
    Parameter p;
 | 
			
		||||
    Solver s;
 | 
			
		||||
    initParameter(¶ms);
 | 
			
		||||
    initParameter(&p);
 | 
			
		||||
 | 
			
		||||
    if (argc != 2) {
 | 
			
		||||
        printf("Usage: %s <configFile>\n", argv[0]);
 | 
			
		||||
        exit(EXIT_SUCCESS);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    readParameter(¶ms, argv[1]);
 | 
			
		||||
    printParameter(¶ms);
 | 
			
		||||
    initSolver(&s, ¶ms);
 | 
			
		||||
    readParameter(&p, argv[1]);
 | 
			
		||||
    printParameter(&p);
 | 
			
		||||
    initSolver(&s, &p);
 | 
			
		||||
#ifndef VERBOSE
 | 
			
		||||
    initProgress(s.te);
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -41,13 +41,19 @@ static void printConfig(Solver* s)
 | 
			
		||||
        s->grid.xlength,
 | 
			
		||||
        s->grid.ylength,
 | 
			
		||||
        s->grid.zlength);
 | 
			
		||||
    printf("\tCells (x, y, z): %d, %d, %d\n", s->grid.imax, s->grid.jmax, s->grid.kmax);
 | 
			
		||||
    printf("\tCell size (dx, dy, dz): %f, %f, %f\n", s->grid.dx, s->grid.dy, s->grid.dz);
 | 
			
		||||
        printf("\tCells (x, y, z): %d, %d, %d\n",
 | 
			
		||||
            s->grid.imax,
 | 
			
		||||
            s->grid.jmax,
 | 
			
		||||
            s->grid.kmax);
 | 
			
		||||
        printf("\tCell size (dx, dy, dz): %f, %f, %f\n",
 | 
			
		||||
            s->grid.dx,
 | 
			
		||||
            s->grid.dy,
 | 
			
		||||
            s->grid.dz);
 | 
			
		||||
    printf("Timestep parameters:\n");
 | 
			
		||||
    printf("\tDefault stepsize: %.2f, Final time %.2f\n", s->dt, s->te);
 | 
			
		||||
    printf("\tdt bound: %.6f\n", s->dtBound);
 | 
			
		||||
    printf("\tTau factor: %.2f\n", s->tau);
 | 
			
		||||
    printf("Iterative s parameters:\n");
 | 
			
		||||
        printf("Iterative parameters:\n");
 | 
			
		||||
    printf("\tMax iterations: %d\n", s->itermax);
 | 
			
		||||
    printf("\tepsilon (stopping tolerance) : %f\n", s->eps);
 | 
			
		||||
    printf("\tgamma factor: %f\n", s->gamma);
 | 
			
		||||
@@ -63,6 +69,7 @@ void initSolver(Solver* s, Parameter* params)
 | 
			
		||||
    s->bcTop        = params->bcTop;
 | 
			
		||||
    s->bcFront      = params->bcFront;
 | 
			
		||||
    s->bcBack       = params->bcBack;
 | 
			
		||||
 | 
			
		||||
    s->grid.imax    = params->imax;
 | 
			
		||||
    s->grid.jmax    = params->jmax;
 | 
			
		||||
    s->grid.kmax    = params->kmax;
 | 
			
		||||
@@ -72,6 +79,7 @@ void initSolver(Solver* s, Parameter* params)
 | 
			
		||||
    s->grid.dx      = params->xlength / params->imax;
 | 
			
		||||
    s->grid.dy      = params->ylength / params->jmax;
 | 
			
		||||
    s->grid.dz      = params->zlength / params->kmax;
 | 
			
		||||
 | 
			
		||||
    s->eps          = params->eps;
 | 
			
		||||
    s->omega        = params->omg;
 | 
			
		||||
    s->itermax      = params->itermax;
 | 
			
		||||
@@ -129,6 +137,7 @@ void computeRHS(Solver* s)
 | 
			
		||||
    double idy  = 1.0 / s->grid.dy;
 | 
			
		||||
    double idz  = 1.0 / s->grid.dz;
 | 
			
		||||
    double idt  = 1.0 / s->dt;
 | 
			
		||||
 | 
			
		||||
    double* rhs = s->rhs;
 | 
			
		||||
    double* f   = s->f;
 | 
			
		||||
    double* g   = s->g;
 | 
			
		||||
@@ -151,6 +160,7 @@ void solve(Solver* s)
 | 
			
		||||
    int imax      = s->grid.imax;
 | 
			
		||||
    int jmax      = s->grid.jmax;
 | 
			
		||||
    int kmax      = s->grid.kmax;
 | 
			
		||||
 | 
			
		||||
    double eps    = s->eps;
 | 
			
		||||
    int itermax   = s->itermax;
 | 
			
		||||
    double dx2    = s->grid.dx * s->grid.dx;
 | 
			
		||||
@@ -159,6 +169,7 @@ void solve(Solver* s)
 | 
			
		||||
    double idx2   = 1.0 / dx2;
 | 
			
		||||
    double idy2   = 1.0 / dy2;
 | 
			
		||||
    double idz2   = 1.0 / dz2;
 | 
			
		||||
 | 
			
		||||
    double factor = s->omega * 0.5 * (dx2 * dy2 * dz2) /
 | 
			
		||||
                    (dy2 * dz2 + dx2 * dz2 + dx2 * dy2);
 | 
			
		||||
    double* p    = s->p;
 | 
			
		||||
@@ -340,6 +351,7 @@ void computeTimestep(Solver* s)
 | 
			
		||||
    double dx   = s->grid.dx;
 | 
			
		||||
    double dy   = s->grid.dy;
 | 
			
		||||
    double dz   = s->grid.dz;
 | 
			
		||||
 | 
			
		||||
    double umax = maxElement(s, s->u);
 | 
			
		||||
    double vmax = maxElement(s, s->v);
 | 
			
		||||
    double wmax = maxElement(s, s->w);
 | 
			
		||||
@@ -604,9 +616,9 @@ void computeFG(Solver* s)
 | 
			
		||||
    double gx    = s->gx;
 | 
			
		||||
    double gy    = s->gy;
 | 
			
		||||
    double gz    = s->gz;
 | 
			
		||||
    double gamma = s->gamma;
 | 
			
		||||
    double dt    = s->dt;
 | 
			
		||||
 | 
			
		||||
    double gamma     = s->gamma;
 | 
			
		||||
    double inverseRe = 1.0 / s->re;
 | 
			
		||||
    double inverseDx = 1.0 / s->grid.dx;
 | 
			
		||||
    double inverseDy = 1.0 / s->grid.dy;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user