Trisurf Monte Carlo simulator
Samo Penic
2016-02-16 d0cafa2d67b4765450deb5781b08f4241d9c4d3a
src/main.c
@@ -14,6 +14,7 @@
#include "poly.h"
#include "sh.h"
#include "shcomplex.h"
#include "dumpstate.h"
/** Entrance function to the program
  * @param argv is a number of parameters used in program call (including the program name
@@ -28,18 +29,26 @@
   force_from_tape=0;
   parse_args(argv,argc); // sets global variable command_line_args (defined in io.h)
   ts_fprintf(stdout,"Starting program...\n\n");
   if(command_line_args.force_from_tape){
    if(command_line_args.dump_from_vtk[0]!=0){
      ts_fprintf(stdout,"************************************************\n");
      ts_fprintf(stdout,"***** Dumping vesicle from VTK points list *****\n");
      ts_fprintf(stdout,"************************************************\n\n");
        tape=parsetape(command_line_args.tape_fullfilename);
        vesicle=vtk2vesicle(command_line_args.dump_from_vtk,tape);
    }
   else if(command_line_args.force_from_tape){
      ts_fprintf(stdout,"************************************************\n");
      ts_fprintf(stdout,"**** Generating initial geometry from tape *****\n");
      ts_fprintf(stdout,"************************************************\n\n");
      tape=parsetape("tape");
      tape=parsetape(command_line_args.tape_fullfilename);
      vesicle=create_vesicle_from_tape(tape);
   } else {
      ts_fprintf(stdout,"**********************************************************************\n");
      ts_fprintf(stdout,"**** Recreating vesicle from dump file and continuing simulation *****\n");
      ts_fprintf(stdout,"**********************************************************************\n\n");
      tape=parsetape("tape");
      tape=parsetape(command_line_args.tape_fullfilename);
      vesicle=restore_state(&start_iteration);
        if(vesicle==NULL){
            ts_fprintf(stderr, "Dump file does not exist or is not a regular file! Did you mean to invoke trisurf with --force-from-tape option?\n\n");
@@ -90,7 +99,7 @@
   }
   run_simulation(vesicle, tape->mcsweeps, tape->inititer, tape->iterations, start_iteration);
   write_master_xml_file("test.pvd");
   write_master_xml_file(command_line_args.output_fullfilename);
   write_dout_fcompat_file(vesicle,"dout");
   vesicle_free(vesicle);
   tape_free(tape);