ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/applications/dynamicProps/DynamicProps.cpp
(Generate patch)

Comparing trunk/src/applications/dynamicProps/DynamicProps.cpp (file contents):
Revision 321 by tim, Sun Feb 13 07:25:22 2005 UTC vs.
Revision 1213 by xsun, Wed Jan 23 21:21:50 2008 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3   *
4   * The University of Notre Dame grants you ("Licensee") a
# Line 49 | Line 49
49   #include "utils/simError.h"
50  
51   #include "applications/dynamicProps/DynamicPropsCmd.h"
52 < #include "applications/dynamicProps/DCorrFunc.hpp"
52 > #include "applications/dynamicProps/DipoleCorrFunc.hpp"
53   #include "applications/dynamicProps/RCorrFunc.hpp"
54   #include "applications/dynamicProps/VCorrFunc.hpp"
55 + #include "applications/dynamicProps/LegendreCorrFunc.hpp"
56 + #include "applications/dynamicProps/RadialRCorrFunc.hpp"
57 + #include "applications/dynamicProps/ThetaCorrFunc.hpp"
58 + #include "applications/dynamicProps/DirectionalRCorrFunc.hpp"
59  
60 +
61   using namespace oopse;
62  
63   int main(int argc, char* argv[]){
64    
65 <    //register force fields
66 <    registerForceFields();
65 >  //register force fields
66 >  registerForceFields();
67  
68 <    gengetopt_args_info args_info;
68 >  gengetopt_args_info args_info;
69  
70 <    //parse the command line option
71 <    if (cmdline_parser (argc, argv, &args_info) != 0) {
72 <        exit(1) ;
73 <    }
70 >  //parse the command line option
71 >  if (cmdline_parser (argc, argv, &args_info) != 0) {
72 >    exit(1) ;
73 >  }
74  
75  
76 <    //get the dumpfile name and meta-data file name
77 <    std::string dumpFileName = args_info.input_arg;
73 <
74 <    std::string mdFileName = dumpFileName.substr(0, dumpFileName.rfind(".")) + ".md";
75 <
76 >  //get the dumpfile name and meta-data file name
77 >  std::string dumpFileName = args_info.input_arg;
78      
79 <    std::string sele1;
80 <    std::string sele2;
79 >  std::string sele1;
80 >  std::string sele2;
81  
82 <    if (args_info.sele1_given) {
83 <        sele1 = args_info.sele1_arg;
82 >  if (args_info.sele1_given) {
83 >    sele1 = args_info.sele1_arg;
84 >  }else {
85 >    char*  sele1Env= getenv("OOPSE_SELE1");
86 >    if (sele1Env) {
87 >      sele1 = sele1Env;
88      }else {
89 <        char*  sele1Env= getenv("OOPSE_SELE1");
84 <        if (sele1Env) {
85 <            sele1 = sele1Env;
86 <        }else {
87 <            sprintf( painCave.errMsg,
89 >      sprintf( painCave.errMsg,
90                 "neither --sele1 option nor $OOPSE_SELE1 is set");
91 <            painCave.severity = OOPSE_ERROR;
92 <            painCave.isFatal = 1;
93 <            simError();
92 <        }
91 >      painCave.severity = OOPSE_ERROR;
92 >      painCave.isFatal = 1;
93 >      simError();
94      }
95 +  }
96      
97 <    if (args_info.sele2_given) {
98 <        sele2 = args_info.sele2_arg;
99 <    }else {
100 <        char* sele2Env = getenv("OOPSE_SELE2");
101 <        if (sele2Env) {
102 <            sele2 = sele2Env;            
103 <        } else {
104 <            sele2 = sele1;
103 <        }
97 >  if (args_info.sele2_given) {
98 >    sele2 = args_info.sele2_arg;
99 >  }else {
100 >    char* sele2Env = getenv("OOPSE_SELE2");
101 >    if (sele2Env) {
102 >      sele2 = sele2Env;            
103 >    } else {
104 >      sele2 = sele1;
105      }
106 +  }
107  
108 <    //parse md file and set up the system
109 <    SimCreator creator;
110 <    SimInfo* info = creator.createSim(mdFileName, false);
108 >  //parse md file and set up the system
109 >  SimCreator creator;
110 >  SimInfo* info = creator.createSim(dumpFileName, false);
111  
112  
113 <    CorrelationFunction* corrFunc;
114 <    if (args_info.dcorr_given){
115 <        corrFunc = new DipoleCorrFunc(info, dumpFileName, sele1, sele2);
116 <    } else if (args_info.rcorr_given) {
117 <        corrFunc = new RCorrFunc(info, dumpFileName, sele1, sele2);
113 >  TimeCorrFunc* corrFunc;
114 >  if (args_info.dcorr_given){
115 >    corrFunc = new DipoleCorrFunc(info, dumpFileName, sele1, sele2);
116 >  } else if (args_info.rcorr_given) {
117 >    corrFunc = new RCorrFunc(info, dumpFileName, sele1, sele2);
118 >  } else if (args_info.r_rcorr_given) {
119 >    corrFunc = new RadialRCorrFunc(info, dumpFileName, sele1, sele2);
120 >  } else if (args_info.thetacorr_given) {
121 >    corrFunc = new ThetaCorrFunc(info, dumpFileName, sele1, sele2);
122 >  } else if (args_info.drcorr_given) {
123 >    corrFunc = new DirectionalRCorrFunc(info, dumpFileName, sele1, sele2);
124 >  }
125 >  else if (args_info.vcorr_given) {
126 >    corrFunc = new VCorrFunc(info, dumpFileName, sele1, sele2);
127 >  } else if (args_info.lcorr_given) {
128 >    int order;
129 >    if (args_info.order_given)
130 >        order = args_info.order_arg;
131 >    else {
132 >      sprintf( painCave.errMsg,
133 >               "--order must be set if --lcoor is set\n");
134 >      painCave.severity = OOPSE_ERROR;
135 >      painCave.isFatal = 1;
136 >      simError();
137      }
138 <    else if (args_info.vcorr_given) {
139 <        corrFunc = new VCorrFunc(info, dumpFileName, sele1, sele2);
140 <    }
138 >        
139 >    corrFunc = new LegendreCorrFunc(info, dumpFileName, sele1, sele2, order);
140 >  }
141  
142 <    if (args_info.output_given) {
143 <        corrFunc->setOutputName(args_info.output_arg);
144 <    }
142 >  if (args_info.output_given) {
143 >    corrFunc->setOutputName(args_info.output_arg);
144 >  }
145  
146  
147 <    corrFunc->doCorrelate();
147 >  corrFunc->doCorrelate();
148  
149 <    delete corrFunc;    
150 <    delete info;
149 >  delete corrFunc;    
150 >  delete info;
151  
152 <    return 0;  
152 >  return 0;  
153   }
154  
155  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines