This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Functions | |
void | inidroplet (interface **in, int *nin, real2D u, real2D v, real2D p, real sigma, real tau, real xvel, int nx, int ny) |
void | inidroplets (interface **in, int *nin, real2D u, real2D v, real2D p, real sigma, real tau, real xvel, int nx, int ny) |
void | inifusion (interface *in, int nx, int ny) |
void | ini_impact (interface *in, real2D u, real2D v, real xvel, real tau, int nx, int ny) |
void | inifile (interface *in, int nx, int ny, char *file) |
void | inbubble (interface **in, int *nin, real2D u, real2D v, real2D p, real sigma, real tau, real xvel, real po, int nx, int ny) |
void | iniwave (interface **in, int *nin, real2D u, real2D v, real2D p, real tau, real xvel, int nx, int ny) |
void | initorus (interface *in, real2D u, real2D v, real2D p, real tau, real xvel, int nx, int ny) |
void | inijet (interface *in, real2D u, real2D v, real2D p, real tau, real xvel, int nx, int ny) |
void | ini_impact2 (interface *in, real2D u, real2D v, real xvel, real tau, int nx, int ny) |
|
|
|
Definition at line 187 of file ini_conditions.c. References AXIBOTH, interface::bc, interface::n, real, real2D, realreadSI, interface::spx, interface::spy, sq, interface::t, interface::x, interface::y, and YMIN.
00189 { 00190 real h, tpi, r; 00191 real diameter = 0.2, thickness = 0.3, xc1, xc2; 00192 int i, j; 00193 real width = 2.0, height = 4.0, theta; 00194 00195 h = 1.0 / (nx - 2); 00196 00197 realreadSI("diameter", &diameter, stdin); 00198 realreadSI("thickness", &thickness, stdin); 00199 00200 printf("------- Initialisation parameters ------\n"); 00201 printf("Impact: D=%g thickness=%g xvel=%g\n", diameter, thickness, xvel); 00202 00203 diameter *= 0.5 * (nx - 2); 00204 printf("radius: %f\n", diameter); 00205 xc1 = thickness*(nx - 2) + 2.0 + diameter + width/2; 00206 xc2 = thickness*(nx - 2) + 2.0 - diameter - width/2; 00207 theta = (height + width/2.)/diameter; 00208 00209 #if 0 00210 for (i = 2; i < nx; i++) 00211 for (j = 2; j < ny; j++) { 00212 r = sqrt(sq((real)i - xc1) + sq((real)j - 1.5)); 00213 if (r <= diameter) 00214 u[i][j] = xvel*tau/h; 00215 } 00216 #else 00217 for (i = 2 /* xc1 - diameter */ ; i < nx; i++) 00218 for (j = 2; j < ny; j++) 00219 u[i][j] = xvel*tau/h; 00220 #endif 00221 00222 in->n = nx*5 + 1; 00223 in->x = (real *)malloc(in->n * sizeof(real)); 00224 in->y = (real *)malloc(in->n * sizeof(real)); 00225 in->t = (real *)malloc(in->n * sizeof(real)); 00226 in->spx = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00227 in->spy = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00228 in->p = (real *)malloc(in->n * sizeof(real)); 00229 00230 for (i = 0; i < (in->n - 1)/2; i++) { 00231 tpi = (PI - theta)*i/((in->n - 1)/2 - 1); 00232 in->x[i] = xc1 + diameter*cos(tpi); 00233 in->y[i] = YMIN + diameter*sin(tpi); 00234 } 00235 in->x[(in->n - 1)/2] = (xc1 + xc2)/2.; 00236 in->y[(in->n - 1)/2] = YMIN + height; 00237 for (i = (in->n - 1)/2 + 1; i < in->n; i++) { 00238 in->x[i] = xc2 + diameter; 00239 in->y[i] = YMIN + height + width/2. + (i - (in->n - 1)/2 - 1)*((real)ny - 2. - height - width/2.)/(real)(in->n - 2 - (in->n - 1)/2); 00240 } 00241 in->y[in->n - 1] = 0.001 + (real)ny; 00242 in->bc = AXIBOTH; 00243 #if 0 00244 for (i = 0; i < in->n/2; i++) { 00245 double tmp; 00246 tmp = in->x[i]; 00247 in->x[i] = in->x[in->n - 1 - i]; 00248 in->x[in->n - 1 - i] = tmp; 00249 00250 tmp = in->y[i]; 00251 in->y[i] = in->y[in->n - 1 - i]; 00252 in->y[in->n - 1 - i] = tmp; 00253 } 00254 #endif 00255 #if 0 00256 for (i=0; i<=in->n-1; i++) 00257 in->x[i] = (real)nx - in->x[i] + 0.05; 00258 #endif 00259 } |
|
Definition at line 548 of file ini_conditions.c. References AXIBOTH, interface::bc, interface::n, real, real2D, realreadSI, interface::spx, interface::spy, sq, interface::t, interface::x, interface::y, and YMIN.
00550 { 00551 real h, tpi, r; 00552 real diameter = 0.2, thickness = 0.3, xc1, xc2; 00553 int i, j; 00554 real width = 4.0, height = 4.0, theta; 00555 00556 h = 1.0 / (nx - 2); 00557 00558 realreadSI("diameter", &diameter, stdin); 00559 realreadSI("thickness", &thickness, stdin); 00560 00561 printf("------- Initialisation parameters ------\n"); 00562 printf("Impact: D=%g thickness=%g xvel=%g\n", diameter, thickness, xvel); 00563 00564 diameter *= 0.5 * (nx - 2); 00565 printf("radius: %f\n", diameter); 00566 xc1 = thickness*(nx - 2) + 2.0 + diameter + width/2; 00567 xc2 = thickness*(nx - 2) + 2.0 - diameter - width/2; 00568 theta = (height + width/2.)/diameter; 00569 00570 #if 0 00571 for (i = 2; i < nx; i++) 00572 for (j = 2; j < ny; j++) { 00573 r = sqrt(sq((real)i - xc1) + sq((real)j - 1.5)); 00574 if (r <= diameter) 00575 u[i][j] = xvel*tau/h; 00576 } 00577 #else 00578 for (i = 2 /* xc1 - diameter */ ; i < nx; i++) 00579 for (j = 2; j < ny; j++) 00580 u[i][j] = xvel*tau/h; 00581 #endif 00582 00583 in->n = nx*5 + 1; 00584 in->x = (real *)malloc(in->n * sizeof(real)); 00585 in->y = (real *)malloc(in->n * sizeof(real)); 00586 in->t = (real *)malloc(in->n * sizeof(real)); 00587 in->spx = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00588 in->spy = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00589 in->p = (real *)malloc(in->n * sizeof(real)); 00590 00591 for (i = 0; i < (in->n - 1)/2; i++) { 00592 tpi = (PI - theta)*i/((in->n - 1)/2 - 1); 00593 in->x[i] = xc1 + diameter*cos(tpi); 00594 in->y[i] = YMIN + diameter*sin(tpi); 00595 } 00596 in->x[(in->n - 1)/2] = (xc1 + xc2)/2.; 00597 in->y[(in->n - 1)/2] = YMIN + height; 00598 for (i = (in->n - 1)/2 + 1; i < in->n; i++) { 00599 in->x[i] = xc2 + diameter; 00600 in->y[i] = YMIN + height + width/2. + (i - (in->n - 1)/2 - 1)*((real)ny - 2. - height - width/2.)/(real)(in->n - 2 - (in->n - 1)/2); 00601 } 00602 in->y[in->n - 1] = 0.001 + (real)ny; 00603 in->bc = AXIBOTH; 00604 #if 0 00605 for (i = 0; i < in->n/2; i++) { 00606 double tmp; 00607 tmp = in->x[i]; 00608 in->x[i] = in->x[in->n - 1 - i]; 00609 in->x[in->n - 1 - i] = tmp; 00610 00611 tmp = in->y[i]; 00612 in->y[i] = in->y[in->n - 1 - i]; 00613 in->y[in->n - 1 - i] = tmp; 00614 } 00615 #endif 00616 #if 1 00617 for (i=0; i<=in->n-1; i++) 00618 in->x[i] = (real)nx - in->x[i] + 0.05; 00619 #endif 00620 } |
|
Definition at line 84 of file ini_conditions.c. References real, real2D, and realreadSI.
00091 { 00092 real diameter, xc, eps = 0.0; 00093 int mode = 1; 00094 00095 diameter = 0.5; xc = 0.5; 00096 00097 realreadSI("diameter", &diameter, stdin); 00098 realreadSI("xc", &xc, stdin); 00099 intread("mode", &mode, stdin); 00100 realreadSI("eps", &eps, stdin); 00101 00102 *in = (interface *)malloc(sizeof(interface)); 00103 *nin = 1; 00104 00105 inidrop(*in, u, v, p, sigma, tau, xvel, xc, diameter, eps, mode, nx, ny); 00106 } |
|
Definition at line 109 of file ini_conditions.c. References real, real2D, and realreadSI.
00116 { 00117 real diameter, xc, yc, eps = 0.0; 00118 int mode = 1; 00119 00120 diameter = 0.5; xc = 0.5; yc = 0.5; 00121 00122 realreadSI("diameter", &diameter, stdin); 00123 realreadSI("xc", &xc, stdin); 00124 realreadSI("yc", &yc, stdin); 00125 intread("mode", &mode, stdin); 00126 realreadSI("eps", &eps, stdin); 00127 00128 *in = (interface *)malloc(2 * sizeof(interface)); 00129 *nin = 2; 00130 inidrop(&(*in)[0], u, v, p, sigma, tau, xvel, 00131 xc - 0.6*diameter, 00132 diameter, eps, mode, nx, ny); 00133 inidrop(&(*in)[1], u, v, p, sigma, tau, -xvel, xc + 0.6*diameter, 00134 diameter, eps, mode, nx, ny); 00135 } |
|
Definition at line 262 of file ini_conditions.c. References AXIBOTH, interface::bc, interface::n, real, interface::spx, interface::spy, interface::t, interface::x, interface::y, and YMIN. Referenced by initialize().
00263 { 00264 FILE *fptr = fopen(file, "rt"); 00265 int i, n = 0; 00266 float x, y; 00267 00268 if (!fptr) { 00269 fprintf(stderr, "inifile(): cannot open file `%s'\n", file); 00270 exit(1); 00271 } 00272 while (fscanf(fptr, "%f %f", &x, &y) == 2) 00273 n++; 00274 printf("------- Initialisation parameters ------\n"); 00275 printf("File: %s, npoints: %d\n", file, n); 00276 in->n = n; 00277 in->x = (real *)malloc(in->n * sizeof(real)); 00278 in->y = (real *)malloc(in->n * sizeof(real)); 00279 in->t = (real *)malloc(in->n * sizeof(real)); 00280 in->spx = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00281 in->spy = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00282 in->p = (real *)malloc(in->n * sizeof(real)); 00283 00284 rewind(fptr); 00285 for (i = 0; i < n; i++) { 00286 fscanf(fptr, "%f %f", &x, &y); 00287 in->x[i] = (real)(nx - 2)*x + 2.; 00288 in->y[i] = (real)(nx - 2)*y + YMIN; 00289 } 00290 /*cld*/ 00291 in->bc = AXIBOTH; 00292 /*cld*/ 00293 /*in->bc = AXITRUE*/ 00294 fclose(fptr); 00295 } |
|
Definition at line 138 of file ini_conditions.c. References AXITRUE, interface::bc, interface::n, real, realreadSI, sphericalY(), interface::spx, interface::spy, interface::t, interface::x, interface::y, and YMIN.
00139 { 00140 real h, r, tpi; 00141 real diameter = 0.4, eps = 0.0, xc1, xc2; 00142 int mode = 1; 00143 int i; 00144 real width = 3.0, height = 2.0, theta; 00145 00146 h = 1.0 / (nx - 2); 00147 00148 realreadSI("diameter", &diameter, stdin); 00149 intread("mode", &mode, stdin); 00150 realreadSI("eps", &eps, stdin); 00151 00152 printf("------- Initialisation parameters ------\n"); 00153 printf("Fusion: D=%g, mode=%d, eps=%g\n", diameter, mode, eps); 00154 00155 diameter *= 0.5 * (nx - 2); 00156 printf("radius: %f\n", diameter); 00157 xc1 = 0.5*(nx - 2) + 2.0 + diameter + width/2; 00158 xc2 = 0.5*(nx - 2) + 2.0 - diameter - width/2; 00159 theta = (height + width/2.)/diameter; 00160 00161 in->n = nx*5 + 1; 00162 in->x = (real *)malloc(in->n * sizeof(real)); 00163 in->y = (real *)malloc(in->n * sizeof(real)); 00164 in->t = (real *)malloc(in->n * sizeof(real)); 00165 in->spx = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00166 in->spy = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00167 in->p = (real *)malloc(in->n * sizeof(real)); 00168 00169 for (i = 0; i < (in->n - 1)/2; i++) { 00170 tpi = (PI - theta)*i/((in->n - 1)/2 - 1); 00171 r = diameter*(1. + eps*sphericalY(mode, 0, tpi)); 00172 in->x[i] = xc1 + r*cos(tpi); 00173 in->y[i] = YMIN + r*sin(tpi); 00174 } 00175 in->x[(in->n - 1)/2] = nx/2 + 1; 00176 in->y[(in->n - 1)/2] = YMIN + height; 00177 for (i = (in->n - 1)/2 + 1; i < in->n; i++) { 00178 tpi = theta + (PI - theta)*(i - (in->n - 1)/2 - 1)/((in->n - 3)/2); 00179 r = diameter*(1. + eps*sphericalY(mode, 0, tpi)); 00180 in->x[i] = xc2 + r*cos(tpi); 00181 in->y[i] = YMIN + r*sin(tpi); 00182 } 00183 in->bc = AXITRUE; 00184 } |
|
Definition at line 510 of file ini_conditions.c. References AXITRUE, interface::bc, interface::n, real, real2D, interface::spx, interface::spy, sq, interface::t, interface::x, interface::y, and YMIN.
00515 { 00516 real h = 1.0/(nx - 2); 00517 int i, j; 00518 00519 for (i = nx/3; i <= nx; i++) 00520 for (j = 2; j < 10; j++) 00521 u[i][j] = xvel*tau/h*sq(10 - j)/sq(8); 00522 00523 in->n = 4; 00524 in->x = (real *)malloc(in->n * sizeof(real)); 00525 in->y = (real *)malloc(in->n * sizeof(real)); 00526 in->t = (real *)malloc(in->n * sizeof(real)); 00527 in->spx = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00528 in->spy = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00529 in->p = (real *)malloc(in->n * sizeof(real)); 00530 00531 in->x[0] = (nx - 2)/4. + 2.2; in->y[0] = YMIN; 00532 in->x[1] = (nx - 2)/2. + 2.; in->y[1] = (ny - 2)/2. + 2.; 00533 in->x[2] = 3.*(nx - 2)/4. + 2.; in->y[2] = (ny - 2)/4. + 2.; 00534 in->x[3] = (nx - 2)/3. + 2.; in->y[3] = YMIN; 00535 in->bc = AXITRUE; 00536 } |
|
Definition at line 462 of file ini_conditions.c. References interface::bc, interface::n, real, real2D, realreadSI, sphericalY(), interface::spx, interface::spy, interface::t, TRUE_PERIODIC, interface::x, and interface::y.
00467 { 00468 real h, r, tpi; 00469 real xc, yc, diameter, eps; 00470 int mode; 00471 int i, j; 00472 00473 h = 1.0 / (nx - 2); 00474 00475 realreadSI("diameter", &diameter, stdin); 00476 realreadSI("xc", &xc, stdin); 00477 realreadSI("yc", &yc, stdin); 00478 intread("mode", &mode, stdin); 00479 realreadSI("eps", &eps, stdin); 00480 00481 printf("------- Initialisation parameters ------\n"); 00482 printf("torus: C=(%g,%g), d=%g, mode=%d, eps=%g\n", 00483 xc, yc, diameter, mode, eps); 00484 00485 diameter *= 0.5 * (nx - 2); 00486 printf("radius: %f\n", diameter); 00487 xc = xc*(nx - 2) + 2.0; 00488 yc = yc*(ny - 2) + 2.0; 00489 00490 in->n = 10*nx; 00491 in->x = (real *)malloc(in->n * sizeof(real)); 00492 in->y = (real *)malloc(in->n * sizeof(real)); 00493 in->t = (real *)malloc(in->n * sizeof(real)); 00494 in->spx = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00495 in->spy = (polynom3 *)malloc((in->n - 1) * sizeof(polynom3)); 00496 in->p = (real *)malloc(in->n * sizeof(real)); 00497 00498 for (i = 0; i < in->n; i++) { 00499 tpi = 2.*PI*(in->n - 1 - i)/(in->n - 1); 00500 r = diameter*(1. + eps*sphericalY(mode, 0, tpi)); 00501 in->x[i] = xc + r*cos(tpi); 00502 in->y[i] = yc + r*sin(tpi); 00503 } 00504 in->x[in->n - 1] = in->x[0]; 00505 in->y[in->n - 1] = in->y[0]; 00506 in->bc = TRUE_PERIODIC; 00507 } |
|
Definition at line 381 of file ini_conditions.c. References real, real2D, and realreadSI.
00387 { 00388 real h, x, y, ampli = 0.1, wavenr = 1.0, position = 0.5; 00389 int i; 00390 00391 realreadSI("amplitude", &li, stdin); 00392 realreadSI("wavenr", &wavenr, stdin); 00393 realreadSI("position", &position, stdin); 00394 printf("------- Initialisation parameters ------\n"); 00395 printf("Wave: wavenr=%g amplitude=%g position=%g\n", 00396 wavenr, ampli, position); 00397 00398 ampli *= ny - 2; 00399 h = 1.0 / (nx - 2); 00400 00401 *in = (interface *)malloc(sizeof(interface)); 00402 *nin = 1; 00403 (*in)->n = 10*nx; 00404 (*in)->x = (real *)malloc((*in)->n * sizeof(real)); 00405 (*in)->y = (real *)malloc((*in)->n * sizeof(real)); 00406 (*in)->t = (real *)malloc((*in)->n * sizeof(real)); 00407 (*in)->spx = (polynom3 *)malloc(((*in)->n - 1) * sizeof(polynom3)); 00408 (*in)->spy = (polynom3 *)malloc(((*in)->n - 1) * sizeof(polynom3)); 00409 (*in)->p = (real *)malloc((*in)->n * sizeof(real)); 00410 00411 for (i = 0; i < (*in)->n - 1; i++) { 00412 x = (real)i * (real)(nx - 2.0) / (real)((*in)->n - 1) + 2.1; 00413 y = ampli*cos((x - 2.0)*2.0*PI*wavenr/(real)(nx - 2.0)) 00414 + position*ny + 1.501; 00415 (*in)->x[i] = x; 00416 (*in)->y[i] = y; 00417 } 00418 (*in)->x[(*in)->n - 1] = (*in)->x[0] + nx - 2.0; 00419 (*in)->y[(*in)->n - 1] = (*in)->y[0]; 00420 } |