tAdded darcy main file - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit c4b2713f77da7f0207bb06509c62bc102509fa28
(DIR) parent 0f90cd8e5447961a6dbb0162feba9e635a39f818
(HTM) Author: Anders Damsgaard Christensen <adc@geo.au.dk>
Date: Tue, 21 May 2013 13:47:46 +0200
Added darcy main file
Diffstat:
A src/darcy.cpp | 85 +++++++++++++++++++++++++++++++
1 file changed, 85 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/src/darcy.cpp b/src/darcy.cpp
t@@ -0,0 +1,85 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/* SPHERE source code by Anders Damsgaard Christensen, 2010-12, */
+/* a 3D Discrete Element Method algorithm with CUDA GPU acceleration. */
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+// Licence: GNU Public License (GPL) v. 3. See license.txt.
+// See doc/sphere-doc.pdf for full documentation.
+// Compile with GNU make by typing 'make' in the src/ directory.
+// SPHERE is called from the command line with './sphere_<architecture> projectname'
+
+
+// Including library files
+#include <iostream>
+#include <string>
+#include <cstdlib>
+
+// Including user files
+#include "constants.h"
+#include "datatypes.h"
+#include "sphere.h"
+
+//////////////////
+// MAIN ROUTINE //
+//////////////////
+// The main loop returns the value 0 to the shell, if the program terminated
+// successfully, and 1 if an error occured which caused the program to crash.
+int main(const int argc, const char *argv[])
+{
+ // Default values
+ int verbose = 1;
+ int dry = 0;
+
+
+ // Process input parameters
+ int i;
+ for (i=1; i<argc; ++i) { // skip argv[0]
+
+ std::string argvi = std::string(argv[i]);
+
+ // Display help if requested
+ if (argvi == "-h" || argvi == "--help") {
+ std::cout << argv[0] << ": particle dynamics simulator\n"
+ << "Usage: " << argv[0] << " [OPTION[S]]... [FILE1 ...]\nOptions:\n"
+ << "-h, --help\t\tprint help\n"
+ << "-n, --dry\t\tshow key experiment parameters and quit\n"
+ << std::endl;
+ return 0; // Exit with success
+ }
+
+ else if (argvi == "-n" || argvi == "--dry")
+ dry = 1;
+ }
+
+
+ // The rest of the values must be input binary files
+ else {
+ if (verbose == 1)
+ std::cout << argv[0] << ": processing input file: " << argvi <<
+ std::endl;
+
+ // Create DEM class, read data from input binary,
+ // do not check values, do not init cuda, do not transfer const
+ // mem
+ DEM dem(argvi, verbose, 0, dry, 0, 0);
+
+ // Otherwise, start iterating through time
+ else
+ dem.startDarcy();
+
+
+ }
+ }
+
+ // Check whether there are input files specified
+ if (!argv[0] || argc == 1 || nfiles == 0) {
+ std::cerr << argv[0] << ": missing input binary file\n"
+ << "See `" << argv[0] << " --help` for more information"
+ << std::endl;
+ return 1; // Return unsuccessful exit status
+ }
+
+ return 0; // Return successfull exit status
+}
+// END OF FILE
+// vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4