#include "utilf.h"#include <readSIunits.h>#include "markers.h"#include "extra.h"#include "stresses.h"#include "global.h"#include "printxplot.h"#include "momentum.h"#include "make_bc.h"Include dependency graph for time_step.simple.c:

Go to the source code of this file.
Functions | |
| void | timestep (int t) |
Variables | |
| FILE * | interu |
| FILE * | interv |
|
|
Definition at line 16 of file time_step.simple.c. References curvature_write(), dp(), findmax(), findmin(), findninf(), fmodmax(), gnuvectors(), interface_advect(), interface_redis(), interface_splines(), interface_to_c(), interfaces_axivolume(), interu, interv, NOTENSION, NULGRAD, NULGRAD2, printxpl(), real, sq, and sumfield(). Referenced by main().
00017 {
00018 int imax = 0, jmax = 0, i, j;
00019 real velmax, h, hi2;
00020 static real pe, pext, pg;
00021 #ifdef SONO
00022 static real R, Rp, pR;
00023 real a;
00024 #endif
00025 real diameter;
00026 FILE *msgptr;
00027
00028 h = 1.0 / (num.nx - 2);
00029 hi2 = 1.0 / (h * h);
00030
00031 /* ---------------------------------------------------------------
00032 Control CFL condition
00033 ---------------------------------------------------------------- */
00034 #if 0
00035 if(t % 1 == 0) {
00036 velmax = findninf(u, v, num.nx, num.ny, &imax, &jmax);
00037 if (velmax > 0.5)
00038 {
00039 printf("Warning> t=%d velmax=%g x=%d y=%d\n", t,
00040 velmax, imax, jmax);
00041 printf("CFL number too large. Try smaller tau\n");
00042 exit(1);
00043 }
00044 }
00045 #endif
00046
00047 /* ---------------------------------------------------------------
00048 Outputs
00049 ---------------------------------------------------------------- */
00050 if (t % out.txplot == 0)
00051 printxpl(t / out.txplot, u, v, cc, p,
00052 num.nx, num.ny, num.tau, num.du, num.dp);
00053
00054 if (t % out.tprint == 0)
00055 {
00056 gnuvectors(u, a1, v, a2, num.nx, num.ny, "vectors");
00057
00058 if (t == 0)
00059 msgptr = fopen("msg", "wt");
00060 else
00061 msgptr = fopen("msg", "at");
00062
00063 printf("t=%d velmax=%g\n", t, velmax);
00064 printf("t=%d ncycle=%d npre=%d npost=%d div max before=%g %d %d div mean before=%g\n",
00065 t , num.cycles, num.npre, num.npost,
00066 fmodmax(divs, num.nx, num.ny, &imax, &jmax)/h, imax, jmax,
00067 fmean(divs, 0.0, 1, num.nx, num.ny)/h);
00068 printf("t=%d div max=%g %d %d div mean=%g\n",
00069 t ,
00070 fmodmax(work, num.nx, num.ny, &imax, &jmax)/h, imax, jmax,
00071 fmean(work, 0.0, 1, num.nx, num.ny)/h);
00072 fprintf(msgptr, "%d %g %g %g %g %g %g %g %g %g %g\n",
00073 t,
00074 phys.t,
00075 velmax * h / num.tau * num.du,
00076 interfaces_axivolume(interfaces, Nint),
00077 findmax(cc, num.nx, num.ny, &imax, &jmax),
00078 fmodmax(work, num.nx, num.ny, &imax, &jmax)/h,
00079 num.tau,
00080 interfaces_x_amp(interfaces, Nint)/(num.nx - 2),
00081 interfaces_y_amp(interfaces, Nint)/(num.ny - 2),
00082 pg*num.dp,
00083 pe*num.dp);
00084 printf("mass=%g\n", sumfield(cc, num.nx, num.ny));
00085 printf("min c: %g max c: %g\n", findmin(cc, num.nx, num.ny,
00086 &imax, &jmax),
00087 findmax(cc, num.nx, num.ny,
00088 &imax, &jmax));
00089 printf("dp (SI): %g\n",
00090 dp(p, cc, num.nx, num.ny) * h * h / sq(num.tau) * num.dp);
00091 fflush(stdout);
00092 fclose(msgptr);
00093 }
00094
00095 if (t % out.tmark == 0)
00096 {
00097 if (t == 0)
00098 msgptr = fopen("markers.xmgr", "wt");
00099 else
00100 msgptr = fopen("markers.xmgr", "at");
00101 printf("volume: %g Nint: %d\n", interfaces_axivolume(interfaces, Nint),
00102 Nint);
00103 for (i = 0; i < Nint; i++)
00104 interface_write(interfaces[i], msgptr, 100);
00105 fclose(msgptr);
00106
00107 if (t == 0)
00108 msgptr = fopen("curvature.xmgr", "wt");
00109 else
00110 msgptr = fopen("curvature.xmgr", "at");
00111 for (i = 0; i < Nint; i++)
00112 curvature_write(interfaces[i], msgptr);
00113 fclose(msgptr);
00114
00115 if (t == 0)
00116 msgptr = fopen("ipressure.xmgr", "wt");
00117 else
00118 msgptr = fopen("ipressure.xmgr", "at");
00119 for (i = 0; i < Nint; i++) {
00120 fprintf(msgptr, "\n");
00121 for (j = 0; j < interfaces[i].n - 1; j++)
00122 fprintf(msgptr, "%g\n", interfaces[i].t[j]);
00123 }
00124 fclose(msgptr);
00125 }
00126
00127 /* ---------------------------------------------------------------
00128 Iteration
00129 ---------------------------------------------------------------- */
00130 interu = fopen("interu", "wt");
00131 interv = fopen("interv", "wt");
00132 /*------------------- Advection ------------------- */
00133 for (i = 0; i < Nint; i++) {
00134 interface_advect(interfaces[i], u, v, a1, a2, cc, num.nx, num.ny);
00135 interface_splines(interfaces[i], num.nx, num.ny, AXIS);
00136 #ifndef NOREDIS
00137 interface_redis(&interfaces[i], num.lredis);
00138 interface_splines(interfaces[i], num.nx, num.ny, AXIS);
00139 #endif
00140 }
00141 fclose(interu); fclose(interv);
00142
00143 interface_to_c(interfaces, Nint,
00144 intersection, S12, cc, 0.0, 0.0, num.nx, num.ny,
00145 NOTENSION, NULL, NULL, 0.0, 0.0);
00146 interface_to_c(interfaces, Nint,
00147 intersection, S12, a1, 0.5, 0.0, num.nx, num.ny,
00148 NOTENSION, NULL, NULL, 0.0, 0.0);
00149 interface_to_c(interfaces, Nint,
00150 intersection, S12, a2, 0.0, 0.5, num.nx, num.ny,
00151 NOTENSION, NULL, NULL, 0.0, 0.0);
00152 bc_scalar(a1, num.nx, num.ny, NULGRAD);
00153 bc_scalar(a2, num.nx, num.ny, NULGRAD2);
00154 bc_scalar(cc, num.nx, num.ny, NULGRAD);
00155 }
|
|
|
Definition at line 14 of file time_step.simple.c. Referenced by timestep(). |
|
|
Definition at line 14 of file time_step.simple.c. Referenced by timestep(). |
1.2.18