From 763c84739fcf152b173007b5ca4d8ffb7dcddcd6 Mon Sep 17 00:00:00 2001 From: afonsofrancof Date: Mon, 16 Oct 2023 19:51:28 +0100 Subject: [PATCH] gcc flags changed --- Makefile | 2 +- out/MD | Bin 77280 -> 80464 bytes src/MD.cpp | 1062 ++++++++++++++++++++++++++-------------------------- 3 files changed, 526 insertions(+), 538 deletions(-) diff --git a/Makefile b/Makefile index d6466e6..25e47df 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ ts := $(shell /usr/bin/date "+%d-%m__%H_%M_%S") .DEFAULT_GOAL = MD MD: $(SRC)/MD.cpp - $(CC) $(CFLAGS) $(SRC)MD.cpp -lm -O2 -ftree-vectorize -funroll-loops -pg -g -o ./out/MD + $(CC) $(CFLAGS) $(SRC)MD.cpp -lm -march=native -mavx -O2 -ftree-vectorize -funroll-loops -pg -g -o ./out/MD MDorig: $(SRC)/MD-original.cpp $(CC) $(CFLAGS) $(SRC)MD-original.cpp -lm -O2 -pg -o ./out/MD-original diff --git a/out/MD b/out/MD index 28c74964ee8e683b98544118d25c836eb0384d4c..43cdfc432a923bc79cda4640566c7d20cd06334f 100755 GIT binary patch literal 80464 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 T{gAJI^C(&Jtegrtm&Shs!N{e1 literal 77280 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 pdu{(|xX`+bpm!}EB= MAXPART) { + // Limiting N to MAXPART for practical reasons + if (N >= MAXPART) { - printf ("\n\n\n MAXIMUM NUMBER OF PARTICLES IS %i\n\n PLEASE " - "ADJUST YOUR " - "INPUT FILE ACCORDINGLY \n\n", - MAXPART); - exit (0); - } - // Check to see if the volume makes sense - is it too small? - // Remember VDW radius of the particles is 1 natural unit of length - // and volume = L*L*L, so if V = N*L*L*L = N, then all the particles - // will be initialized with an interparticle separation equal to 2xVDW - // radius - if (Vol < N) { + printf("\n\n\n MAXIMUM NUMBER OF PARTICLES IS %i\n\n PLEASE " + "ADJUST YOUR " + "INPUT FILE ACCORDINGLY \n\n", + MAXPART); + exit(0); + } + // Check to see if the volume makes sense - is it too small? + // Remember VDW radius of the particles is 1 natural unit of length + // and volume = L*L*L, so if V = N*L*L*L = N, then all the particles + // will be initialized with an interparticle separation equal to 2xVDW + // radius + if (Vol < N) { - printf ("\n\n\n YOUR DENSITY IS VERY HIGH!\n\n"); - printf (" THE NUMBER OF PARTICLES IS %i AND THE AVAILABLE VOLUME " - "IS %f " - "NATURAL UNITS\n", - N, Vol); - printf (" SIMULATIONS WITH DENSITY GREATER THAN 1 PARTCICLE/(1 " - "Natural " - "Unit of Volume) MAY DIVERGE\n"); - printf (" PLEASE ADJUST YOUR INPUT FILE ACCORDINGLY AND RETRY\n\n"); - exit (0); - } - // Vol = L*L*L; - // Length of the box in natural units: - L = pow (Vol, (1. / 3)); + printf("\n\n\n YOUR DENSITY IS VERY HIGH!\n\n"); + printf(" THE NUMBER OF PARTICLES IS %i AND THE AVAILABLE VOLUME " + "IS %f " + "NATURAL UNITS\n", + N, Vol); + printf(" SIMULATIONS WITH DENSITY GREATER THAN 1 PARTCICLE/(1 " + "Natural " + "Unit of Volume) MAY DIVERGE\n"); + printf(" PLEASE ADJUST YOUR INPUT FILE ACCORDINGLY AND RETRY\n\n"); + exit(0); + } + // Vol = L*L*L; + // Length of the box in natural units: + L = pow(Vol, (1. / 3)); - // Files that we can write different quantities to - tfp = fopen (tfn, "w"); // The MD trajectory, coordinates of every - // particle at each timestep - ofp = fopen (ofn, - "w"); // Output of other quantities (T, P, gc, etc) at every timestep - afp = fopen (afn, "w"); // Average T, P, gc, etc from the simulation + // Files that we can write different quantities to + tfp = fopen(tfn, "w"); // The MD trajectory, coordinates of every + // particle at each timestep + ofp = fopen( + ofn, + "w"); // Output of other quantities (T, P, gc, etc) at every timestep + afp = fopen(afn, "w"); // Average T, P, gc, etc from the simulation - int NumTime; - if (strcmp (atype, "He") == 0) { + int NumTime; + if (strcmp(atype, "He") == 0) { - // dt in natural units of time s.t. in SI it is 5 f.s. for all - // other gasses - dt = 0.2e-14 / timefac; - // We will run the simulation for NumTime timesteps. - // The total time will be NumTime*dt in natural units - // And NumTime*dt multiplied by the appropriate conversion factor - // for time in seconds - NumTime = 50000; - } else { - dt = 0.5e-14 / timefac; - NumTime = 200; - } + // dt in natural units of time s.t. in SI it is 5 f.s. for all + // other gasses + dt = 0.2e-14 / timefac; + // We will run the simulation for NumTime timesteps. + // The total time will be NumTime*dt in natural units + // And NumTime*dt multiplied by the appropriate conversion factor + // for time in seconds + NumTime = 50000; + } else { + dt = 0.5e-14 / timefac; + NumTime = 200; + } - // Put all the atoms in simple crystal lattice and give them random - // velocities that corresponds to the initial temperature we have - // specified - initialize (); + // Put all the atoms in simple crystal lattice and give them random + // velocities that corresponds to the initial temperature we have + // specified + initialize(); - // Based on their positions, calculate the ininial intermolecular forces - // The accellerations of each particle will be defined from the forces and - // their mass, and this will allow us to update their positions via - // Newton's law - computeAccelerations (); + // Based on their positions, calculate the ininial intermolecular forces + // The accellerations of each particle will be defined from the forces and + // their mass, and this will allow us to update their positions via + // Newton's law + computeAccelerations(); - // Print number of particles to the trajectory file - fprintf (tfp, "%i\n", N); + // Print number of particles to the trajectory file + fprintf(tfp, "%i\n", N); - // We want to calculate the average Temperature and Pressure for the - // simulation The variables need to be set to zero initially - Pavg = 0; - Tavg = 0; + // We want to calculate the average Temperature and Pressure for the + // simulation The variables need to be set to zero initially + Pavg = 0; + Tavg = 0; - int tenp = floor (NumTime / 10); - fprintf (ofp, " time (s) T(t) (K) P(t) (Pa) " - "Kinetic En. (n.u.) Potential En. (n.u.) Total En. (n.u.)\n"); - printf (" PERCENTAGE OF CALCULATION COMPLETE:\n ["); - for (i = 0; i < NumTime + 1; i++) { + int tenp = floor(NumTime / 10); + fprintf(ofp, + " time (s) T(t) (K) P(t) (Pa) " + "Kinetic En. (n.u.) Potential En. (n.u.) Total En. (n.u.)\n"); + printf(" PERCENTAGE OF CALCULATION COMPLETE:\n ["); + for (i = 0; i < NumTime + 1; i++) { - // This just prints updates on progress of the calculation for the - // users convenience - if (i == tenp) - printf (" 10 |"); - else if (i == 2 * tenp) - printf (" 20 |"); - else if (i == 3 * tenp) - printf (" 30 |"); - else if (i == 4 * tenp) - printf (" 40 |"); - else if (i == 5 * tenp) - printf (" 50 |"); - else if (i == 6 * tenp) - printf (" 60 |"); - else if (i == 7 * tenp) - printf (" 70 |"); - else if (i == 8 * tenp) - printf (" 80 |"); - else if (i == 9 * tenp) - printf (" 90 |"); - else if (i == 10 * tenp) - printf (" 100 ]\n"); - fflush (stdout); + // This just prints updates on progress of the calculation for the + // users convenience + if (i == tenp) + printf(" 10 |"); + else if (i == 2 * tenp) + printf(" 20 |"); + else if (i == 3 * tenp) + printf(" 30 |"); + else if (i == 4 * tenp) + printf(" 40 |"); + else if (i == 5 * tenp) + printf(" 50 |"); + else if (i == 6 * tenp) + printf(" 60 |"); + else if (i == 7 * tenp) + printf(" 70 |"); + else if (i == 8 * tenp) + printf(" 80 |"); + else if (i == 9 * tenp) + printf(" 90 |"); + else if (i == 10 * tenp) + printf(" 100 ]\n"); + fflush(stdout); - // This updates the positions and velocities using Newton's Laws - // Also computes the Pressure as the sum of momentum changes from - // wall collisions / timestep which is a Kinetic Theory of gasses - // concept of Pressure - Press = VelocityVerlet (dt, i + 1, &PE, tfp); - Press *= PressFac; + // This updates the positions and velocities using Newton's Laws + // Also computes the Pressure as the sum of momentum changes from + // wall collisions / timestep which is a Kinetic Theory of gasses + // concept of Pressure + Press = VelocityVerlet(dt, i + 1, &PE, tfp); + Press *= PressFac; - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Now we would like to calculate somethings about the system: - // Instantaneous mean velocity squared, Temperature, Pressure - // Potential, and Kinetic Energy - // We would also like to use the IGL to try to see if we can - // extract the gas constant - mvs = MeanSquaredVelocity (); - KE = Kinetic (); + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + // Now we would like to calculate somethings about the system: + // Instantaneous mean velocity squared, Temperature, Pressure + // Potential, and Kinetic Energy + // We would also like to use the IGL to try to see if we can + // extract the gas constant + mvs = MeanSquaredVelocity(); + KE = Kinetic(); - // Temperature from Kinetic Theory - Temp = m * mvs / (3 * kB) * TempFac; + // Temperature from Kinetic Theory + Temp = m * mvs / (3 * kB) * TempFac; - // Instantaneous gas constant and compressibility - not well - // defined because pressure may be zero in some instances because - // there will be zero wall collisions, pressure may be very high in - // some instances because there will be a number of collisions - gc = NA * Press * (Vol * VolFac) / (N * Temp); - Z = Press * (Vol * VolFac) / (N * kBSI * Temp); + // Instantaneous gas constant and compressibility - not well + // defined because pressure may be zero in some instances because + // there will be zero wall collisions, pressure may be very high in + // some instances because there will be a number of collisions + gc = NA * Press * (Vol * VolFac) / (N * Temp); + Z = Press * (Vol * VolFac) / (N * kBSI * Temp); - Tavg += Temp; - Pavg += Press; + Tavg += Temp; + Pavg += Press; - fprintf (ofp, " %8.4e %20.12f %20.12f %20.12f %20.12f %20.12f \n", i * dt * timefac, - Temp, Press, KE, PE, KE + PE); - } + fprintf(ofp, " %8.4e %20.12f %20.12f %20.12f %20.12f %20.12f \n", + i * dt * timefac, Temp, Press, KE, PE, KE + PE); + } - // Because we have calculated the instantaneous temperature and pressure, - // we can take the average over the whole simulation here - Pavg /= NumTime; - Tavg /= NumTime; - Z = Pavg * (Vol * VolFac) / (N * kBSI * Tavg); - gc = NA * Pavg * (Vol * VolFac) / (N * Tavg); - fprintf (afp, " Total Time (s) T (K) P (Pa) PV/nT " - "(J/(mol K)) Z V (m^3) N\n"); - fprintf (afp, " -------------- ----------- --------------- " - "-------------- --------------- ------------ -----------\n"); - fprintf (afp, - " %8.4e %15.5f %15.5f %10.5f %10.5f %10.5e " - " %i\n", - i * dt * timefac, Tavg, Pavg, gc, Z, Vol * VolFac, N); + // Because we have calculated the instantaneous temperature and pressure, + // we can take the average over the whole simulation here + Pavg /= NumTime; + Tavg /= NumTime; + Z = Pavg * (Vol * VolFac) / (N * kBSI * Tavg); + gc = NA * Pavg * (Vol * VolFac) / (N * Tavg); + fprintf(afp, " Total Time (s) T (K) P (Pa) PV/nT " + "(J/(mol K)) Z V (m^3) N\n"); + fprintf(afp, + " -------------- ----------- --------------- " + "-------------- --------------- ------------ -----------\n"); + fprintf(afp, + " %8.4e %15.5f %15.5f %10.5f %10.5f %10.5e " + " %i\n", + i * dt * timefac, Tavg, Pavg, gc, Z, Vol * VolFac, N); - printf ("\n TO ANIMATE YOUR SIMULATION, OPEN THE FILE \n '%s' WITH VMD " - "AFTER THE SIMULATION COMPLETES\n", - tfn); - printf ("\n TO ANALYZE INSTANTANEOUS DATA ABOUT YOUR MOLECULE, OPEN THE FILE " - "\n " - " '%s' WITH YOUR FAVORITE TEXT EDITOR OR IMPORT THE DATA INTO EXCEL\n", - ofn); - printf ("\n THE FOLLOWING THERMODYNAMIC AVERAGES WILL BE COMPUTED AND " - "WRITTEN TO THE FILE \n '%s':\n", - afn); - printf ("\n AVERAGE TEMPERATURE (K): %15.5f\n", Tavg); - printf ("\n AVERAGE PRESSURE (Pa): %15.5f\n", Pavg); - printf ("\n PV/nT (J * mol^-1 K^-1): %15.5f\n", gc); - printf ("\n PERCENT ERROR of pV/nT AND GAS CONSTANT: %15.5f\n", - 100 * fabs (gc - 8.3144598) / 8.3144598); - printf ("\n THE COMPRESSIBILITY (unitless): %15.5f \n", Z); - printf ("\n TOTAL VOLUME (m^3): %10.5e \n", Vol * VolFac); - printf ("\n NUMBER OF PARTICLES (unitless): %i \n", N); + printf("\n TO ANIMATE YOUR SIMULATION, OPEN THE FILE \n '%s' WITH VMD " + "AFTER THE SIMULATION COMPLETES\n", + tfn); + printf("\n TO ANALYZE INSTANTANEOUS DATA ABOUT YOUR MOLECULE, OPEN THE FILE " + "\n " + " '%s' WITH YOUR FAVORITE TEXT EDITOR OR IMPORT THE DATA INTO EXCEL\n", + ofn); + printf("\n THE FOLLOWING THERMODYNAMIC AVERAGES WILL BE COMPUTED AND " + "WRITTEN TO THE FILE \n '%s':\n", + afn); + printf("\n AVERAGE TEMPERATURE (K): %15.5f\n", Tavg); + printf("\n AVERAGE PRESSURE (Pa): %15.5f\n", Pavg); + printf("\n PV/nT (J * mol^-1 K^-1): %15.5f\n", gc); + printf("\n PERCENT ERROR of pV/nT AND GAS CONSTANT: %15.5f\n", + 100 * fabs(gc - 8.3144598) / 8.3144598); + printf("\n THE COMPRESSIBILITY (unitless): %15.5f \n", Z); + printf("\n TOTAL VOLUME (m^3): %10.5e \n", + Vol * VolFac); + printf("\n NUMBER OF PARTICLES (unitless): %i \n", N); - fclose (tfp); - fclose (ofp); - fclose (afp); + fclose(tfp); + fclose(ofp); + fclose(afp); - return 0; + return 0; } -void -initialize () { - int n, p, i, j, k; - double pos; +void initialize() { + int n, p, i, j, k; + double pos; - // Number of atoms in each direction - n = int (ceil (pow (N, 1.0 / 3))); + // Number of atoms in each direction + n = int(ceil(pow(N, 1.0 / 3))); - // spacing between atoms along a given direction - pos = L / n; + // spacing between atoms along a given direction + pos = L / n; - // index for number of particles assigned positions - p = 0; - // initialize positions - for (i = 0; i < n; i++) { - for (j = 0; j < n; j++) { - for (k = 0; k < n; k++) { - if (p < N) { + // index for number of particles assigned positions + p = 0; + // initialize positions + for (i = 0; i < n; i++) { + for (j = 0; j < n; j++) { + for (k = 0; k < n; k++) { + if (p < N) { - r[p][0] = (i + 0.5) * pos; - r[p][1] = (j + 0.5) * pos; - r[p][2] = (k + 0.5) * pos; - } - p++; - } - } - } + r[p][0] = (i + 0.5) * pos; + r[p][1] = (j + 0.5) * pos; + r[p][2] = (k + 0.5) * pos; + } + p++; + } + } + } - // Call function to initialize velocities - initializeVelocities (); + // Call function to initialize velocities + initializeVelocities(); - /*********************************************** - * Uncomment if you want to see what the initial positions and velocities - are printf(" Printing initial positions!\n"); for (i=0; i= L) { - v[i][j] *= -1.; //- elastic walls - psum += 2 * m * fabs (v[i][j]) / dt; // contribution to pressure - // from "right" walls - } - } - } + // Elastic walls + for (i = 0; i < N; i++) { + for (j = 0; j < 3; j++) { + if (r[i][j] < 0.) { + v[i][j] *= -1.; //- elastic walls + psum += 2 * m * fabs(v[i][j]) / dt; // contribution to pressure + // from "left" walls + } + if (r[i][j] >= L) { + v[i][j] *= -1.; //- elastic walls + psum += 2 * m * fabs(v[i][j]) / dt; // contribution to pressure + // from "right" walls + } + } + } - /* removed, uncomment to save atoms positions */ - /*for (i=0; i= 1.0 || rsq == 0.0); +double gaussdist() { + static bool available = false; + static double gset; + double fac, rsq, v1, v2; + if (!available) { + do { + v1 = 2.0 * rand() / double(RAND_MAX) - 1.0; + v2 = 2.0 * rand() / double(RAND_MAX) - 1.0; + rsq = v1 * v1 + v2 * v2; + } while (rsq >= 1.0 || rsq == 0.0); - fac = sqrt (-2.0 * log (rsq) / rsq); - gset = v1 * fac; - available = true; + fac = sqrt(-2.0 * log(rsq) / rsq); + gset = v1 * fac; + available = true; - return v2 * fac; - } else { + return v2 * fac; + } else { - available = false; - return gset; - } + available = false; + return gset; + } }