# | Line 57 | Line 57 | |
---|---|---|
57 | #include "applications/staticProps/GofRAngle.hpp" | |
58 | #include "applications/staticProps/GofAngle2.hpp" | |
59 | #include "applications/staticProps/GofXyz.hpp" | |
60 | + | #include "applications/staticProps/TwoDGofR.hpp" |
61 | #include "applications/staticProps/P2OrderParameter.hpp" | |
62 | #include "applications/staticProps/BondOrderParameter.hpp" | |
63 | #include "applications/staticProps/BOPofR.hpp" | |
64 | #include "applications/staticProps/RippleOP.hpp" | |
65 | #include "applications/staticProps/SCDOrderParameter.hpp" | |
66 | #include "applications/staticProps/DensityPlot.hpp" | |
67 | + | #include "applications/staticProps/ObjectCount.hpp" |
68 | #include "applications/staticProps/RhoZ.hpp" | |
69 | #include "applications/staticProps/pAngle.hpp" | |
70 | #include "applications/staticProps/BondAngleDistribution.hpp" | |
# | Line 71 | Line 73 | |
73 | #include "applications/staticProps/Hxy.hpp" | |
74 | #endif | |
75 | #include "applications/staticProps/RhoR.hpp" | |
76 | + | #include "applications/staticProps/AngleR.hpp" |
77 | + | #include "applications/staticProps/RhoAngleR.hpp" |
78 | + | #include "applications/staticProps/TetrahedralityParam.hpp" |
79 | ||
80 | using namespace OpenMD; | |
81 | ||
82 | int main(int argc, char* argv[]){ | |
83 | ||
84 | < | //register force fields |
85 | < | registerForceFields(); |
86 | < | |
87 | < | gengetopt_args_info args_info; |
88 | < | |
89 | < | //parse the command line option |
90 | < | if (cmdline_parser (argc, argv, &args_info) != 0) { |
91 | < | exit(1) ; |
92 | < | } |
93 | < | |
94 | < | //get the dumpfile name |
95 | < | std::string dumpFileName = args_info.input_arg; |
96 | < | std::string sele1; |
97 | < | std::string sele2; |
98 | < | bool userSpecifiedSelect1; |
99 | < | bool userSpecifiedSelect2; |
100 | < | |
101 | < | // check the first selection argument, or set it to the environment |
102 | < | // variable, or failing that, set it to "select all" |
103 | < | |
104 | < | if (args_info.sele1_given) { |
105 | < | sele1 = args_info.sele1_arg; |
84 | > | //register force fields |
85 | > | registerForceFields(); |
86 | > | |
87 | > | gengetopt_args_info args_info; |
88 | > | |
89 | > | //parse the command line option |
90 | > | if (cmdline_parser (argc, argv, &args_info) != 0) { |
91 | > | exit(1) ; |
92 | > | } |
93 | > | |
94 | > | //get the dumpfile name |
95 | > | std::string dumpFileName = args_info.input_arg; |
96 | > | std::string sele1; |
97 | > | std::string sele2; |
98 | > | bool userSpecifiedSelect1; |
99 | > | bool userSpecifiedSelect2; |
100 | > | |
101 | > | // check the first selection argument, or set it to the environment |
102 | > | // variable, or failing that, set it to "select all" |
103 | > | |
104 | > | if (args_info.sele1_given) { |
105 | > | sele1 = args_info.sele1_arg; |
106 | > | } else { |
107 | > | char* sele1Env= getenv("SELECTION1"); |
108 | > | if (sele1Env) { |
109 | > | sele1 = sele1Env; |
110 | } else { | |
111 | < | char* sele1Env= getenv("SELECTION1"); |
103 | < | if (sele1Env) { |
104 | < | sele1 = sele1Env; |
105 | < | } else { |
106 | < | sele1 = "select all"; |
107 | < | } |
111 | > | sele1 = "select all"; |
112 | } | |
113 | < | |
110 | < | // check the second selection argument, or set it to the environment |
111 | < | // variable, or failing that, set it to "select all" |
113 | > | } |
114 | ||
115 | < | if (args_info.sele2_given) { |
116 | < | sele2 = args_info.sele2_arg; |
117 | < | } else { |
118 | < | char* sele2Env = getenv("SELECTION1"); |
119 | < | if (sele2Env) { |
120 | < | sele2 = sele2Env; |
121 | < | } else { |
122 | < | sele2 = "select all"; |
123 | < | } |
115 | > | // check the second selection argument, or set it to the environment |
116 | > | // variable, or failing that, set it to "select all" |
117 | > | |
118 | > | if (args_info.sele2_given) { |
119 | > | sele2 = args_info.sele2_arg; |
120 | > | } else { |
121 | > | char* sele2Env = getenv("SELECTION1"); |
122 | > | if (sele2Env) { |
123 | > | sele2 = sele2Env; |
124 | > | } else { |
125 | > | sele2 = "select all"; |
126 | } | |
127 | < | |
128 | < | |
129 | < | // Problems if sele1 wasn't specified, but |
130 | < | // if (!args_info.scd_given) { |
131 | < | // sprintf( painCave.errMsg, |
132 | < | // "neither --sele1 option nor $SELECTION1 is set"); |
133 | < | // painCave.severity = OPENMD_ERROR; |
134 | < | // painCave.isFatal = 1; |
135 | < | // simError(); |
136 | < | // } |
137 | < | // } |
138 | < | |
139 | < | // Problems if sele1 wasn't specified |
140 | < | |
141 | < | // if(!args_info.scd_given && !args_info.density_given && !args_info.slab_density_given) { |
142 | < | // sprintf( painCave.errMsg, |
143 | < | // "neither --sele2 option nor $SELECTION1 is set"); |
144 | < | // painCave.severity = OPENMD_ERROR; |
145 | < | // painCave.isFatal = 1; |
146 | < | // simError(); |
147 | < | // } |
148 | < | // } |
149 | < | |
150 | < | bool batchMode; |
151 | < | if (args_info.scd_given){ |
152 | < | if (args_info.sele1_given && args_info.sele2_given && args_info.sele3_given) { |
153 | < | batchMode = false; |
154 | < | } else if (args_info.molname_given && args_info.begin_given && args_info.end_given) { |
155 | < | if (args_info.begin_arg < 0 || args_info.end_arg < 0 || args_info.begin_arg > args_info.end_arg-2) { |
156 | < | sprintf( painCave.errMsg, |
157 | < | "below conditions are not satisfied:\n" |
158 | < | "0 <= begin && 0<= end && begin <= end-2\n"); |
159 | < | painCave.severity = OPENMD_ERROR; |
160 | < | painCave.isFatal = 1; |
161 | < | simError(); |
162 | < | } |
163 | < | batchMode = true; |
164 | < | } else{ |
165 | < | sprintf( painCave.errMsg, |
166 | < | "either --sele1, --sele2, --sele3 are specified," |
167 | < | " or --molname, --begin, --end are specified\n"); |
168 | < | painCave.severity = OPENMD_ERROR; |
169 | < | painCave.isFatal = 1; |
170 | < | simError(); |
171 | < | |
172 | < | } |
127 | > | } |
128 | > | |
129 | > | |
130 | > | // Problems if sele1 wasn't specified, but |
131 | > | // if (!args_info.scd_given) { |
132 | > | // sprintf( painCave.errMsg, |
133 | > | // "neither --sele1 option nor $SELECTION1 is set"); |
134 | > | // painCave.severity = OPENMD_ERROR; |
135 | > | // painCave.isFatal = 1; |
136 | > | // simError(); |
137 | > | // } |
138 | > | // } |
139 | > | |
140 | > | // Problems if sele1 wasn't specified |
141 | > | |
142 | > | // if(!args_info.scd_given && !args_info.density_given && !args_info.slab_density_given) { |
143 | > | // sprintf( painCave.errMsg, |
144 | > | // "neither --sele2 option nor $SELECTION1 is set"); |
145 | > | // painCave.severity = OPENMD_ERROR; |
146 | > | // painCave.isFatal = 1; |
147 | > | // simError(); |
148 | > | // } |
149 | > | // } |
150 | > | |
151 | > | bool batchMode; |
152 | > | if (args_info.scd_given){ |
153 | > | if (args_info.sele1_given && args_info.sele2_given && args_info.sele3_given) { |
154 | > | batchMode = false; |
155 | > | } else if (args_info.molname_given && args_info.begin_given && args_info.end_given) { |
156 | > | if (args_info.begin_arg < 0 || args_info.end_arg < 0 || args_info.begin_arg > args_info.end_arg-2) { |
157 | > | sprintf( painCave.errMsg, |
158 | > | "below conditions are not satisfied:\n" |
159 | > | "0 <= begin && 0<= end && begin <= end-2\n"); |
160 | > | painCave.severity = OPENMD_ERROR; |
161 | > | painCave.isFatal = 1; |
162 | > | simError(); |
163 | > | } |
164 | > | batchMode = true; |
165 | > | } else{ |
166 | > | sprintf( painCave.errMsg, |
167 | > | "either --sele1, --sele2, --sele3 are specified," |
168 | > | " or --molname, --begin, --end are specified\n"); |
169 | > | painCave.severity = OPENMD_ERROR; |
170 | > | painCave.isFatal = 1; |
171 | > | simError(); |
172 | > | |
173 | } | |
174 | + | } |
175 | + | |
176 | + | //parse md file and set up the system |
177 | + | SimCreator creator; |
178 | + | std::cout << "dumpFile = " << dumpFileName << "\n"; |
179 | + | SimInfo* info = creator.createSim(dumpFileName); |
180 | ||
181 | < | //parse md file and set up the system |
182 | < | SimCreator creator; |
183 | < | std::cout << "dumpFile = " << dumpFileName << "\n"; |
184 | < | SimInfo* info = creator.createSim(dumpFileName); |
185 | < | |
186 | < | RealType maxLen; |
187 | < | RealType zmaxLen; |
188 | < | if (args_info.length_given) { |
189 | < | maxLen = args_info.length_arg; |
190 | < | if (args_info.zlength_given){ |
191 | < | zmaxLen = args_info.zlength_arg; |
192 | < | } |
181 | > | RealType maxLen; |
182 | > | RealType zmaxLen; |
183 | > | if (args_info.length_given) { |
184 | > | maxLen = args_info.length_arg; |
185 | > | if (args_info.zlength_given){ |
186 | > | zmaxLen = args_info.zlength_arg; |
187 | > | } |
188 | > | } else { |
189 | > | Mat3x3d hmat = info->getSnapshotManager()->getCurrentSnapshot()->getHmat(); |
190 | > | maxLen = std::min(std::min(hmat(0, 0), hmat(1, 1)), hmat(2, 2)) /2.0; |
191 | > | zmaxLen = hmat(2,2); |
192 | > | } |
193 | > | |
194 | > | StaticAnalyser* analyser; |
195 | > | if (args_info.gofr_given){ |
196 | > | analyser= new GofR(info, dumpFileName, sele1, sele2, maxLen, |
197 | > | args_info.nbins_arg); |
198 | > | } else if (args_info.gofz_given) { |
199 | > | analyser= new GofZ(info, dumpFileName, sele1, sele2, maxLen, |
200 | > | args_info.nbins_arg); |
201 | > | } else if (args_info.r_z_given) { |
202 | > | analyser = new GofRZ(info, dumpFileName, sele1, sele2, maxLen, zmaxLen, |
203 | > | args_info.nbins_arg, args_info.nbins_z_arg); |
204 | > | } else if (args_info.r_theta_given) { |
205 | > | analyser = new GofRTheta(info, dumpFileName, sele1, sele2, maxLen, |
206 | > | args_info.nbins_arg, args_info.nanglebins_arg); |
207 | > | } else if (args_info.r_omega_given) { |
208 | > | analyser = new GofROmega(info, dumpFileName, sele1, sele2, maxLen, |
209 | > | args_info.nbins_arg, args_info.nanglebins_arg); |
210 | > | } else if (args_info.theta_omega_given) { |
211 | > | analyser = new GofAngle2(info, dumpFileName, sele1, sele2, |
212 | > | args_info.nanglebins_arg); |
213 | > | } else if (args_info.gxyz_given) { |
214 | > | if (args_info.refsele_given) { |
215 | > | analyser= new GofXyz(info, dumpFileName, sele1, sele2,args_info.refsele_arg, |
216 | > | maxLen, args_info.nbins_arg); |
217 | } else { | |
218 | < | Mat3x3d hmat = info->getSnapshotManager()->getCurrentSnapshot()->getHmat(); |
219 | < | maxLen = std::min(std::min(hmat(0, 0), hmat(1, 1)), hmat(2, 2)) /2.0; |
220 | < | zmaxLen = hmat(2,2); |
218 | > | sprintf( painCave.errMsg, |
219 | > | "--refsele must set when --gxyz is used"); |
220 | > | painCave.severity = OPENMD_ERROR; |
221 | > | painCave.isFatal = 1; |
222 | > | simError(); |
223 | > | } |
224 | > | } else if (args_info.twodgofr_given){ |
225 | > | if (args_info.dz_given) { |
226 | > | analyser= new TwoDGofR(info, dumpFileName, sele1, sele2, maxLen, |
227 | > | args_info.dz_arg, args_info.nbins_arg); |
228 | > | } else { |
229 | > | sprintf( painCave.errMsg, |
230 | > | "A slab width (dz) must be specified when calculating TwoDGofR"); |
231 | > | painCave.severity = OPENMD_ERROR; |
232 | > | painCave.isFatal = 1; |
233 | > | simError(); |
234 | } | |
235 | < | |
236 | < | StaticAnalyser* analyser; |
237 | < | if (args_info.gofr_given){ |
238 | < | analyser= new GofR(info, dumpFileName, sele1, sele2, maxLen, |
239 | < | args_info.nbins_arg); |
240 | < | } else if (args_info.gofz_given) { |
241 | < | analyser= new GofZ(info, dumpFileName, sele1, sele2, maxLen, |
242 | < | args_info.nbins_arg); |
243 | < | } else if (args_info.r_z_given) { |
244 | < | analyser = new GofRZ(info, dumpFileName, sele1, sele2, maxLen, zmaxLen, |
245 | < | args_info.nbins_arg, args_info.nbins_z_arg); |
246 | < | } else if (args_info.r_theta_given) { |
247 | < | analyser = new GofRTheta(info, dumpFileName, sele1, sele2, maxLen, |
248 | < | args_info.nbins_arg, args_info.nanglebins_arg); |
249 | < | } else if (args_info.r_omega_given) { |
250 | < | analyser = new GofROmega(info, dumpFileName, sele1, sele2, maxLen, |
251 | < | args_info.nbins_arg, args_info.nanglebins_arg); |
252 | < | } else if (args_info.theta_omega_given) { |
253 | < | analyser = new GofAngle2(info, dumpFileName, sele1, sele2, |
254 | < | args_info.nanglebins_arg); |
255 | < | } else if (args_info.gxyz_given) { |
256 | < | if (args_info.refsele_given) { |
257 | < | analyser= new GofXyz(info, dumpFileName, sele1, sele2,args_info.refsele_arg, |
258 | < | maxLen, args_info.nbins_arg); |
259 | < | } else { |
260 | < | sprintf( painCave.errMsg, |
261 | < | "--refsele must set when --gxyz is used"); |
262 | < | painCave.severity = OPENMD_ERROR; |
263 | < | painCave.isFatal = 1; |
264 | < | simError(); |
265 | < | } |
266 | < | } else if (args_info.p2_given) { |
267 | < | analyser = new P2OrderParameter(info, dumpFileName, sele1, sele2); |
268 | < | } else if (args_info.rp2_given){ |
269 | < | analyser = new RippleOP(info, dumpFileName, sele1, sele2); |
270 | < | } else if (args_info.bo_given){ |
271 | < | if (args_info.rcut_given) { |
272 | < | analyser = new BondOrderParameter(info, dumpFileName, sele1, |
273 | < | args_info.rcut_arg, |
274 | < | args_info.nbins_arg); |
275 | < | } else { |
276 | < | sprintf( painCave.errMsg, |
277 | < | "A cutoff radius (rcut) must be specified when calculating Bond Order Parameters"); |
278 | < | painCave.severity = OPENMD_ERROR; |
279 | < | painCave.isFatal = 1; |
280 | < | simError(); |
281 | < | } |
282 | < | } else if (args_info.bor_given){ |
283 | < | if (args_info.rcut_given) { |
284 | < | analyser = new BOPofR(info, dumpFileName, sele1, args_info.rcut_arg, |
285 | < | args_info.nbins_arg, maxLen); |
286 | < | } else { |
287 | < | sprintf( painCave.errMsg, |
288 | < | "A cutoff radius (rcut) must be specified when calculating Bond Order Parameters"); |
289 | < | painCave.severity = OPENMD_ERROR; |
290 | < | painCave.isFatal = 1; |
291 | < | simError(); |
292 | < | } |
293 | < | } else if (args_info.bad_given){ |
294 | < | if (args_info.rcut_given) { |
295 | < | analyser = new BondAngleDistribution(info, dumpFileName, sele1, args_info.rcut_arg, |
296 | < | args_info.nbins_arg); |
297 | < | } else { |
298 | < | sprintf( painCave.errMsg, |
299 | < | "A cutoff radius (rcut) must be specified when calculating Bond Angle Distributions"); |
300 | < | painCave.severity = OPENMD_ERROR; |
301 | < | painCave.isFatal = 1; |
302 | < | simError(); |
303 | < | } |
304 | < | } else if (args_info.scd_given) { |
305 | < | if (batchMode) { |
306 | < | analyser = new SCDOrderParameter(info, dumpFileName, args_info.molname_arg, |
307 | < | args_info.begin_arg, args_info.end_arg); |
308 | < | } else{ |
309 | < | std::string sele3 = args_info.sele3_arg; |
310 | < | analyser = new SCDOrderParameter(info, dumpFileName, sele1, sele2, sele3); |
311 | < | } |
312 | < | }else if (args_info.density_given) { |
313 | < | analyser= new DensityPlot(info, dumpFileName, sele1, sele2, maxLen, |
267 | < | args_info.nbins_arg); |
268 | < | } else if (args_info.slab_density_given) { |
269 | < | analyser = new RhoZ(info, dumpFileName, sele1, args_info.nbins_arg); |
270 | < | } else if (args_info.p_angle_given) { |
271 | < | analyser = new pAngle(info, dumpFileName, sele1, args_info.nbins_arg); |
235 | > | } else if (args_info.p2_given) { |
236 | > | if (args_info.sele1_given) { |
237 | > | if (args_info.sele2_given) |
238 | > | analyser = new P2OrderParameter(info, dumpFileName, sele1, sele2); |
239 | > | else |
240 | > | analyser = new P2OrderParameter(info, dumpFileName, sele1); |
241 | > | } else { |
242 | > | sprintf( painCave.errMsg, |
243 | > | "At least one selection script (--sele1) must be specified when calculating P2 order parameters"); |
244 | > | painCave.severity = OPENMD_ERROR; |
245 | > | painCave.isFatal = 1; |
246 | > | simError(); |
247 | > | } |
248 | > | } else if (args_info.rp2_given){ |
249 | > | analyser = new RippleOP(info, dumpFileName, sele1, sele2); |
250 | > | } else if (args_info.bo_given){ |
251 | > | if (args_info.rcut_given) { |
252 | > | analyser = new BondOrderParameter(info, dumpFileName, sele1, |
253 | > | args_info.rcut_arg, |
254 | > | args_info.nbins_arg); |
255 | > | } else { |
256 | > | sprintf( painCave.errMsg, |
257 | > | "A cutoff radius (rcut) must be specified when calculating Bond Order Parameters"); |
258 | > | painCave.severity = OPENMD_ERROR; |
259 | > | painCave.isFatal = 1; |
260 | > | simError(); |
261 | > | } |
262 | > | |
263 | > | } else if (args_info.tet_param_given) { |
264 | > | if (args_info.rcut_given) { |
265 | > | analyser = new TetrahedralityParam(info, dumpFileName, sele1, |
266 | > | args_info.rcut_arg, |
267 | > | args_info.nbins_arg); |
268 | > | } else { |
269 | > | sprintf( painCave.errMsg, |
270 | > | "A cutoff radius (rcut) must be specified when calculating Tetrahedrality Parameters"); |
271 | > | painCave.severity = OPENMD_ERROR; |
272 | > | painCave.isFatal = 1; |
273 | > | simError(); |
274 | > | } |
275 | > | } else if (args_info.bor_given){ |
276 | > | if (args_info.rcut_given) { |
277 | > | analyser = new BOPofR(info, dumpFileName, sele1, args_info.rcut_arg, |
278 | > | args_info.nbins_arg, maxLen); |
279 | > | } else { |
280 | > | sprintf( painCave.errMsg, |
281 | > | "A cutoff radius (rcut) must be specified when calculating Bond Order Parameters"); |
282 | > | painCave.severity = OPENMD_ERROR; |
283 | > | painCave.isFatal = 1; |
284 | > | simError(); |
285 | > | } |
286 | > | } else if (args_info.bad_given){ |
287 | > | if (args_info.rcut_given) { |
288 | > | analyser = new BondAngleDistribution(info, dumpFileName, sele1, args_info.rcut_arg, |
289 | > | args_info.nbins_arg); |
290 | > | } else { |
291 | > | sprintf( painCave.errMsg, |
292 | > | "A cutoff radius (rcut) must be specified when calculating Bond Angle Distributions"); |
293 | > | painCave.severity = OPENMD_ERROR; |
294 | > | painCave.isFatal = 1; |
295 | > | simError(); |
296 | > | } |
297 | > | } else if (args_info.scd_given) { |
298 | > | if (batchMode) { |
299 | > | analyser = new SCDOrderParameter(info, dumpFileName, args_info.molname_arg, |
300 | > | args_info.begin_arg, args_info.end_arg); |
301 | > | } else{ |
302 | > | std::string sele3 = args_info.sele3_arg; |
303 | > | analyser = new SCDOrderParameter(info, dumpFileName, sele1, sele2, sele3); |
304 | > | } |
305 | > | }else if (args_info.density_given) { |
306 | > | analyser= new DensityPlot(info, dumpFileName, sele1, sele2, maxLen, |
307 | > | args_info.nbins_arg); |
308 | > | } else if (args_info.count_given) { |
309 | > | analyser = new ObjectCount(info, dumpFileName, sele1 ); |
310 | > | } else if (args_info.slab_density_given) { |
311 | > | analyser = new RhoZ(info, dumpFileName, sele1, args_info.nbins_arg); |
312 | > | } else if (args_info.p_angle_given) { |
313 | > | analyser = new pAngle(info, dumpFileName, sele1, args_info.nbins_arg); |
314 | #if defined(HAVE_FFTW_H) || defined(HAVE_DFFTW_H) || defined(HAVE_FFTW3_H) | |
315 | < | }else if (args_info.hxy_given) { |
316 | < | analyser = new Hxy(info, dumpFileName, sele1, args_info.nbins_x_arg, |
317 | < | args_info.nbins_y_arg, args_info.nbins_arg); |
315 | > | }else if (args_info.hxy_given) { |
316 | > | analyser = new Hxy(info, dumpFileName, sele1, args_info.nbins_x_arg, |
317 | > | args_info.nbins_y_arg, args_info.nbins_arg); |
318 | #endif | |
319 | < | }else if (args_info.rho_r_given) { |
320 | < | if (args_info.radius_given){ |
321 | < | analyser = new RhoR(info, dumpFileName, sele1, maxLen,args_info.nbins_arg,args_info.radius_arg); |
322 | < | }else{ |
323 | < | sprintf( painCave.errMsg, |
324 | < | "A particle radius (radius) must be specified when calculating Rho(r)"); |
325 | < | painCave.severity = OPENMD_ERROR; |
326 | < | painCave.isFatal = 1; |
327 | < | simError(); |
286 | < | } |
287 | < | }else if (args_info.hullvol_given) { |
288 | < | analyser = new NanoVolume(info, dumpFileName, sele1); |
319 | > | }else if (args_info.rho_r_given) { |
320 | > | if (args_info.radius_given){ |
321 | > | analyser = new RhoR(info, dumpFileName, sele1, maxLen,args_info.nbins_arg,args_info.radius_arg); |
322 | > | }else{ |
323 | > | sprintf( painCave.errMsg, |
324 | > | "A particle radius (radius) must be specified when calculating Rho(r)"); |
325 | > | painCave.severity = OPENMD_ERROR; |
326 | > | painCave.isFatal = 1; |
327 | > | simError(); |
328 | } | |
329 | + | } else if (args_info.hullvol_given) { |
330 | + | analyser = new NanoVolume(info, dumpFileName, sele1); |
331 | + | } else if (args_info.angle_r_given) { |
332 | + | analyser = new AngleR(info, dumpFileName, sele1, maxLen,args_info.nbins_arg); |
333 | + | } |
334 | + | |
335 | + | if (args_info.output_given) { |
336 | + | analyser->setOutputName(args_info.output_arg); |
337 | + | } |
338 | + | if (args_info.step_given) { |
339 | + | analyser->setStep(args_info.step_arg); |
340 | + | } |
341 | ||
342 | < | if (args_info.output_given) { |
343 | < | analyser->setOutputName(args_info.output_arg); |
344 | < | } |
345 | < | if (args_info.step_given) { |
295 | < | analyser->setStep(args_info.step_arg); |
296 | < | } |
342 | > | analyser->process(); |
343 | > | |
344 | > | delete analyser; |
345 | > | delete info; |
346 | ||
347 | < | analyser->process(); |
299 | < | |
300 | < | delete analyser; |
301 | < | delete info; |
302 | < | |
303 | < | return 0; |
347 | > | return 0; |
348 | } | |
349 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |