Example #1
0
int main()
{        
    // Initialize Variables
    
    Sim sim = loadInit();    
    DataExporter de(outpath, sim);
    
    // If init file missing, write template init file. Otherwise, simulate.
    
    if (!loaded)
    {    
        cout << "No valid init file exists. Creating template init file..." << endl;
        writeTemplateInit();
    }    
    else // Simulate
    {        
        de.start();    
        cout << endl << "Simulating..." << endl;
        while (sim.t < end_t)
        {
            sim.advance(dt);
            de.log();
        }    
        de.write();
    }
    return 0;
}
Example #2
0
/** Runs the simulation with different starting positions for
 * ball 2, printing the final velocity angles of each ball for
 * each iteration. Used to find a set of initial conditions
 * corresponding with those stipulated in a sample problem.
 */
void bruteForceAngles(int coord, double start, double step, int n)
{
    for (int i = 0; i < n; i++)
    {
        Sim sim = loadInit();
        sim.balls[1].s[coord] = start + i * step;
        while (sim.t < end_t)
            sim.advance(dt);
        cout << "b2.s[" << coord <<"] " << start + i * step << " ; theta 1 =  " << 180 / M_PI * atan(sim.balls[0].v[1] / sim.balls[0].v[0]);
        cout << " theta 2 = " << 180 / M_PI * atan(sim.balls[1].v[1] / sim.balls[1].v[0]) << endl;        
    }
    
}