// sim00.cc (Main Code) // 2D Numerical Simulation Program for // Collision of a Bulk and a Bullet // Copyright (C) 1988,2000 Yukinori NAGATANI // #include "bulk.h" //// Main Code //// void main (int nArgc, char *pszArgv[]) { cerr << "bulk by Y.Nagatani\n" "2D Numerical Simulation Program for " "Collision of a Bulk and a Bullet" << endl; List LS; Real dt = 0.001; int nSubLoop = 1000, nMainLoop = 1000; nArgc--; pszArgv++; for (; nArgc > 0 && (*pszArgv)[0] == '-' ; nArgc--, pszArgv++) { if (!strcmp (*pszArgv, "-dt")) { nArgc--; pszArgv++; if (nArgc <= 0) Error ("bad argument."); dt = atof (*pszArgv); continue; } if (!strcmp (*pszArgv, "-SL")) { nArgc--; pszArgv++; if (nArgc <= 0) Error ("bad argument."); nSubLoop = atoi (*pszArgv); continue; } if (!strcmp (*pszArgv, "-ML")) { nArgc--; pszArgv++; if (nArgc <= 0) Error ("bad argument."); nMainLoop = atoi (*pszArgv); continue; } Error ("bad argument."); } //// Bulk setup //// for (int y = -3 ; y <= 2 ; y++) { for (int x = -15 ; x <= 15 ; x++) { LS.add (BindObj ((x + 0.5*(y%2)), (sqrt(3)/2*y), 0, 0, 1, 1)); } } //// Bullet setup //// LS.add (BindObj ( 0, 10, -0.0, -0.3, 2, 2)); //// Main //// PutPrologue (); for (int n = 0 ;; n++) { cerr << " " << n; PutPageHead (n); LS.put (); PutPageTail (); if (n >= nMainLoop) break; for (int m = 0 ; m < nSubLoop ; m++) LS.step (dt, 1.0); } PutEpilogue (); cerr << endl; }