ctest unres
[unres.git] / source / unres / src_MD-M-SAXS-homology / CMakeLists.txt
1 #
2 # CMake project file for UNRES with MD for single chains
3
4
5 enable_language (Fortran)
6
7 #================================
8 # Set source file lists
9 #================================
10 set(UNRES_MDM_SRC0 
11          add.f 
12          arcos.f
13          banach.f
14          bank.F 
15          blas.f 
16          bond_move.f 
17          cartder.F 
18          cartprint.f 
19          chainbuild.F 
20          check_bond.f 
21          checkder_p.F 
22          check_sc_distr.f
23          compare_s1.F 
24          contact.f 
25          convert.f 
26          cored.f
27          csa.f 
28          dihed_cons.F
29          diff12.f
30          distfit.f 
31          djacob.f
32          econstr_local.F
33          eigen.f 
34          elecont.f 
35          energy_split-sep.F 
36          entmcm.F
37          fitsq.f 
38          gauss.f 
39          gen_rand_conf.F
40          geomout.F 
41          gnmr1.f
42          indexx.f 
43          initialize_p.F 
44          intcartderiv.F
45          intcor.f 
46          intlocal.f 
47          int_to_cart.f 
48          kinetic_lesyng.f 
49          lagrangian_lesyng.F
50          local_move.f 
51          map.f 
52          matmult.f 
53          mc.F 
54          mcm.F 
55          MD_A-MTS.F 
56          minimize_p.F
57          minim_jlee.F 
58          minim_mcmf.F 
59          misc.f 
60          moments.f
61          MP.F 
62          MREMD.F 
63          muca_md.f 
64          newconf.f
65          parmread.F 
66          permut.F
67          pinorm.f 
68          printmat.f 
69          prng_32.F
70          q_measure.F 
71          ran.f
72          randgens.f 
73          rattle.F 
74          readpdb.F
75          readrtns_CSA.F 
76          refsys.f 
77          regularize.F
78          rescode.f 
79          rmdd.f 
80          rmsd.F 
81          sc_move.F 
82          shift.F
83          sort.f 
84          stochfric.F 
85          sumsld.f 
86          surfatom.f 
87          test.F 
88          thread.F 
89          timing.F
90          together.F
91          unres.F
92          ssMD.F
93          mygauss.f
94          econstr_qlike.F
95          econstrq-PMF.F
96          rmscalc.F
97          chain_symmetry.F
98          seq2chains.f
99          iperm.f
100          PMFprocess.F
101 )
102
103 set(UNRES_MDM_SRC3 energy_p_new_barrier.F energy_p_new-sep_barrier.F gradient_p.F )
104
105 set(UNRES_MDM_PP_SRC
106         bank.F 
107         cartder.F 
108         chainbuild.F 
109         checkder_p.F 
110         compare_s1.F
111         cored.f
112         csa.f 
113         dihed_cons.F
114         diff12.f 
115         econstr_local.F 
116         energy_p_new.F
117         energy_p_new_barrier.F 
118         energy_p_new-sep_barrier.F 
119         energy_split-sep.F 
120         entmcm.F 
121         gen_rand_conf.F
122         geomout.F 
123         gradient_p.F 
124         intcor.f
125         initialize_p.F 
126         intcartderiv.F 
127         lagrangian_lesyng.F 
128         matmult.f
129         mc.F 
130         mcm.F 
131         MD_A-MTS.F
132         minimize_p.F 
133         minim_jlee.F
134         minim_mcmf.F 
135         MP.F 
136         MREMD.F
137         newconf.f 
138         parmread.F 
139         permut.F
140         prng_32.F
141         q_measure1.F 
142         q_measure3.F 
143         q_measure.F
144         ran.f
145         rattle.F 
146         readpdb.F 
147         readrtns_CSA.F 
148         regularize.F
149         rmdd.f 
150         rmsd.F 
151         sc_move.F
152         shift.F 
153         stochfric.F
154         sumsld.f 
155         test.F 
156         thread.F 
157         timing.F
158         together.F
159         unres.F
160         ssMD.F
161         econstr_qlike.F
162         econstrq-PMF.F
163         rmscalc.F
164         chain_symmetry.F
165         PMFprocess.F
166
167
168
169 #================================================
170 # Set compiler flags for different sourcefiles  
171 #================================================
172 if (Fortran_COMPILER_NAME STREQUAL "ifort")
173   set(FFLAGS0 "-ip -w -mcmodel=medium -shared-intel" ) 
174 #  set(FFLAGS1 "-w -g -d2 -CA -CB" ) 
175 #  set(FFLAGS2 "-w -g -00 ")
176   set(FFLAGS3 "-w -ipo -mcmodel=medium -shared-intel" )
177 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
178   set(FFLAGS0 "-std=legacy -I. -mcmodel=medium" ) 
179 #  set(FFLAGS1 "-std=legacy -g -I. " ) 
180 #  set(FFLAGS2 "-std=legacy -I. ")
181   set(FFLAGS3 "-std=legacy -I. -mcmodel=medium" )
182 elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
183   set(FFLAGS0 "-mcmodel=medium -Mlarge_arrays -I. " )
184   set(FFLAGS3 "-mcmodel=medium -Mlarge_arrays -I. " )
185 else ()
186   set(FFLAGS0 "-I. -mcmodel=medium" )
187   set(FFLAGS3 "-I. -mcmodel=medium" )
188 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
189
190
191 # Add MPI compiler flags
192 if(UNRES_WITH_MPI)
193   set(FFLAGS0 "${FFLAGS0} -I${MPI_Fortran_INCLUDE_PATH}")
194 #  set(FFLAGS1 "${FFLAGS1} -I${MPI_Fortran_INCLUDE_PATH}")
195 #  set(FFLAGS2 "${FFLAGS2} -I${MPI_Fortran_INCLUDE_PATH}")
196   set(FFLAGS3 "${FFLAGS3} -I${MPI_Fortran_INCLUDE_PATH}")
197 endif(UNRES_WITH_MPI)
198
199 set_property(SOURCE ${UNRES_MDM_SRC0} APPEND PROPERTY COMPILE_FLAGS ${FFLAGS0} )
200 #set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
201 #set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
202 set_property(SOURCE ${UNRES_MDM_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
203
204 #=========================================
205 # Settings for GAB force field 
206 #=========================================
207 if(UNRES_MD_FF STREQUAL "GAB" )
208   # set preprocesor flags   
209   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
210
211 #=========================================
212 #  Settings for E0LL2Y force field
213 #=========================================
214 elseif(UNRES_MD_FF STREQUAL "E0LL2Y")
215   # set preprocesor flags   
216   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" )
217 elseif(UNRES_MD_FF STREQUAL "4P")
218   set(CPPFLAGS "UNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DSCCORPDB" )
219 endif(UNRES_MD_FF STREQUAL "GAB")
220
221
222 #=========================================
223 # System specific flags
224 #=========================================
225 if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
226   set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
227 endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
228
229
230 #=========================================
231 # Compiler specific flags
232 #=========================================
233
234 if (Fortran_COMPILER_NAME STREQUAL "ifort")
235   # Add ifort preprocessor flags
236   set(CPPFLAGS "${CPPFLAGS} -DPGI") 
237 elseif (Fortran_COMPILER_NAME STREQUAL "f95")
238   # Add new gfortran flags
239   set(CPPFLAGS "${CPPFLAGS} -DG77") 
240 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
241   # Add old gfortran flags
242   set(CPPFLAGS "${CPPFLAGS} -DG77") 
243 elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
244   set(CPPFLAGS "${CPPFLAGS} -DPGI")
245   FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
246   list(APPEND UNRES_MDM_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
247 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
248
249
250 #=========================================
251 # Add MPI preprocessor flags
252 #=========================================
253 if (UNRES_WITH_MPI)
254   set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
255 endif(UNRES_WITH_MPI)
256
257
258 #=========================================
259 # add 64-bit specific preprocessor flags
260 #=========================================
261 if (architektura STREQUAL "64")
262   set(CPPFLAGS "${CPPFLAGS} -DAMD64")
263 endif (architektura STREQUAL "64")
264
265
266
267 # Apply preprocesor flags to *.F files
268 set_property(SOURCE ${UNRES_MDM_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
269
270 # Apply preprocesor flags to proc_proc.c
271 #set_property(SOURCE proc_proc.c PROPERTY COMPILE_DEFINITIONS "SGI" )  
272
273
274 #========================================
275 #  Setting binary name
276 #========================================
277 if(UNRES_WITH_MPI) 
278   # binary with mpi
279   set(UNRES_BIN "unresMD-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
280 else(UNRES_WITH_MPI)
281   # binary without mpi
282   set(UNRES_BIN "unresMD-mult_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}.exe")
283 endif(UNRES_WITH_MPI)  
284
285 #=========================================
286 # cinfo.f workaround for cmake
287 #=========================================
288 # get the current date  
289 TODAY(DATE)
290 # generate cinfo.f
291 set(CINFO "${CMAKE_CURRENT_BINARY_DIR}/cinfo.f")
292 FILE(WRITE ${CINFO}
293 "C CMake generated file
294        subroutine cinfo
295        include 'COMMON.IOUNITS'
296        write(iout,*)'++++ Compile info ++++'
297        write(iout,*)'Version ${UNRES_MAJOR}.${UNRES_MINOR} build ${UNRES_PATCH}'
298 ")
299
300 CINFO_FORMAT(${CINFO} "Compiled" "${DATE}" )
301 CINFO_FORMAT(${CINFO} "Compiled by" "$ENV{USER}@$ENV{HOST}" )
302 CINFO_FORMAT(${CINFO} "OS name:" "${CMAKE_SYSTEM_NAME}" )
303 CINFO_FORMAT(${CINFO} "OS release:" "${CMAKE_SYSTEM}" )
304 CINFO_FORMAT(${CINFO} "Fortran Compiler:" "${CMAKE_Fortran_COMPILER}" )
305 CINFO_FORMAT(${CINFO} "MD Force field:" "${UNRES_MD_FF}" )
306 CINFO_FORMAT(${CINFO} "CPPFLAGS =" "${CPPFLAGS}")
307
308 FILE(APPEND ${CINFO} 
309 "       write(iout,*)'++++ End of compile info ++++'  
310        return 
311        end ")
312
313
314 # add include path
315 set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f PROPERTY COMPILE_FLAGS "${FFLAGS0} -I${CMAKE_CURRENT_SOURCE_DIR}")
316
317 #=========================================
318 # Set full unres MD-M sources
319 #=========================================
320 set(UNRES_MDM_SRCS ${UNRES_MDM_SRC0} ${UNRES_MDM_SRC3} ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f )
321
322 #=========================================
323 # Build the binary
324 #=========================================
325 add_executable(UNRES_BIN-MD-M ${UNRES_MDM_SRCS} )
326 set_target_properties(UNRES_BIN-MD-M PROPERTIES OUTPUT_NAME ${UNRES_BIN})
327 set_property(TARGET UNRES_BIN-MD-M PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
328 #add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
329
330 #=========================================
331 # Link libraries
332 #=========================================
333 # link MPI library (libmpich.a)  
334 if(UNRES_WITH_MPI)
335   target_link_libraries( UNRES_BIN-MD-M ${MPI_Fortran_LIBRARIES} )
336 endif(UNRES_WITH_MPI)
337 # link libxdrf.a 
338 #message("UNRES_XDRFLIB=${UNRES_XDRFLIB}")
339 target_link_libraries( UNRES_BIN-MD-M xdrf )
340
341 #=========================================
342 # Install Path
343 #=========================================
344 install(TARGETS UNRES_BIN-MD-M DESTINATION ${CMAKE_INSTALL_PREFIX}/unres/MD)
345
346 #=========================================
347 # TESTS 
348 #=========================================
349
350 #=========================================
351 # Generate data test files
352 #=========================================
353 #  test_single_ala.sh
354 #=========================================
355
356 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
357 "#!/bin/sh
358 export POT=GB
359 export PREFIX=ala10
360 #-----------------------------------------------------------------------------
361 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
362 #-----------------------------------------------------------------------------
363 DD=${CMAKE_SOURCE_DIR}/PARAM
364 export BONDPAR=$DD/bond.parm
365 export THETPAR=$DD/thetaml.5parm
366 export ROTPAR=$DD/scgauss.parm
367 export TORPAR=$DD/torsion_631Gdp.parm
368 export TORDPAR=$DD/torsion_double_631Gdp.parm
369 export ELEPAR=$DD/electr_631Gdp.parm
370 export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
371 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
372 export SCPPAR=$DD/scp.parm
373 export SCCORPAR=$DD/sccor_pdb_shelly.dat
374 export PATTERN=$DD/patterns.cart
375 #-----------------------------------------------------------------------------
376 $UNRES_BIN
377 ")
378
379 #
380 # File permissions workaround
381 #
382 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh 
383         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
384         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
385 )
386
387
388
389 #=========================================
390 #  ala10.inp
391 #=========================================
392
393 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
394 "ala10 unblocked
395 SEED=-1111333 MD ONE_LETTER rescale_mode=2 
396 nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
397 reset_moment=1000 reset_vel=1000
398 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
399 WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
400 WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
401 WVDWPP=0.11371 WHPB=1.00000                                                    &
402 CUTOFF=7.00000 WCORR4=0.00000
403 12
404 XAAAAAAAAAAX 
405  0
406  0
407    90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
408    90.0000   90.0000
409   180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
410   180.0000
411   110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
412   110.0000  110.0000
413  -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
414  -120.0000 -120.0000
415 ")
416
417 if(UNRES_CSA_FF STREQUAL "4P")
418
419 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_4P.inp
420         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
421
422 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local_4P.inp
423         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
424
425 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local_4P.CSA.native.int
426         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
427
428
429 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/csa_energy_check.sh
430         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
431         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
432 )
433
434
435 #=========================================
436 #  test_csa_4P.sh
437 #=========================================
438
439 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_4P.sh
440 "#!/bin/sh
441 export POT=GB
442 export FGPROCS=1
443 export PREFIX=$1
444 #-----------------------------------------------------------------------------
445 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
446 #-----------------------------------------------------------------------------
447 DD=${CMAKE_SOURCE_DIR}/PARAM
448 export BONDPAR=$DD/bond.parm
449 export THETPAR=$DD/thetaml.5parm
450 export ROTPAR=$DD/scgauss.parm
451 export TORPAR=$DD/torsion_631Gdp.parm
452 export TORDPAR=$DD/torsion_double_631Gdp.parm
453 export ELEPAR=$DD/electr_631Gdp.parm
454 export SIDEPAR=$DD/sc_GB_opt.4P5_iter33_3r
455 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
456 #export SCCORPAR=$DD/rotcorr_AM1.parm
457 export SCCORPAR=$DD/sccor_am1_pawel.dat
458 export SCPPAR=$DD/scp.parm
459 export PATTERN=$DD/patterns.cart
460 export PRINT_PARM=NO
461 #-----------------------------------------------------------------------------
462 echo CTEST_FULL_OUTPUT
463 $UNRES_BIN
464 ./csa_energy_check.sh $1
465 ")
466
467 #
468 # File permissions workaround
469 #
470 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_4P.sh
471         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
472         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
473 )
474 endif(UNRES_CSA_FF STREQUAL "4P")
475
476 if(UNRES_CSA_FF STREQUAL "E0LL2Y")
477
478 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa.inp
479         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
480
481 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local.inp
482         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
483
484 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local.CSA.native.int
485         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
486
487
488 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/csa_energy_check.sh
489         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
490         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
491 )
492
493
494 #=========================================
495 #  test_csa_E0LL2Y.sh
496 #=========================================
497
498 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_E0LL2Y.sh
499 "#!/bin/sh
500 export POT=GB
501 export FGPROCS=1
502 export PREFIX=$1
503 #-----------------------------------------------------------------------------
504 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
505 #-----------------------------------------------------------------------------
506 DD=${CMAKE_SOURCE_DIR}/PARAM
507 export BONDPAR=$DD/bond_AM1.parm
508 export THETPAR=$DD/theta_abinitio.parm
509 export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
510 export THETPARPDB=$DD/thetaml.5parm   
511 export ROTPARPDB=$DD/scgauss.parm
512 export TORPAR=$DD/torsion_631Gdp.parm
513 export TORDPAR=$DD/torsion_double_631Gdp.parm
514 export ELEPAR=$DD/electr_631Gdp.parm
515 export SIDEPAR=$DD/scinter_$POT.parm
516 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
517 #export SCCORPAR=$DD/rotcorr_AM1.parm
518 export SCCORPAR=$DD/sccor_am1_pawel.dat
519 export SCPPAR=$DD/scp.parm
520 export PATTERN=$DD/patterns.cart
521 export PRINT_PARM=NO
522 #-----------------------------------------------------------------------------
523 echo CTEST_FULL_OUTPUT
524 $UNRES_BIN
525 ./csa_energy_check.sh $1
526 ")
527
528 #
529 # File permissions workaround
530 #
531 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_E0LL2Y.sh
532         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
533         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
534 )
535 endif(UNRES_CSA_FF STREQUAL "E0LL2Y")
536
537
538
539 if(UNRES_MD_FF STREQUAL "E0LL2Y")
540
541 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
542         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
543
544 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
545         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
546
547 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE_m.inp
548         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
549
550 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
551         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
552
553 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
554         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
555
556 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
557         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
558
559 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
560         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
561
562 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
563         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
564
565 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
566         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
567
568 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
569         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
570
571
572 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
573         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
574
575 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
576         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
577
578 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0_min.inp
579         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
580
581 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0.pdb
582         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
583
584 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut.pdb
585         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
586
587 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut_unres.pdb
588         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
589
590 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ber.inp
591         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
592
593 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ene.inp
594         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
595
596 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-lang.inp
597         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
598
599 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-micro.inp
600         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
601
602 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-min.inp
603         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
604
605 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check_mult.sh
606         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
607         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
608 )
609
610 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_fit_hist.py
611         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
612         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
613 )
614
615 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
616         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
617         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
618 )
619
620 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
621         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
622
623 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
624         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
625
626 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-checkgrad.inp
627         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
628
629 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/homology_mult/
630       DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN "*" )
631
632
633 #=========================================
634 #  test_prota_E0LL2Y.sh
635 #=========================================
636
637 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
638 "#!/bin/sh
639 export POT=GB
640 export FGPROCS=$2
641 export PREFIX=$1
642 #-----------------------------------------------------------------------------
643 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
644 #-----------------------------------------------------------------------------
645 DD=${CMAKE_SOURCE_DIR}/PARAM
646 export BONDPAR=$DD/bond_AM1_ext_dum.parm
647 export THETPAR=$DD/theta_abinitio_old_ext.parm
648 export THETPARPDB=$DD/thetaml_ext.5parm
649 export ROTPARPDB=$DD/scgauss_ext.parm
650 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
651 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
652 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
653 export ELEPAR=$DD/electr_631Gdp_ext.parm
654 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
655 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
656 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
657 export SCPPAR=$DD/scp_ext.parm
658 export PATTERN=$DD/patterns.cart
659 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
660 #-----------------------------------------------------------------------------
661 echo CTEST_FULL_OUTPUT
662 $UNRES_BIN
663 ./prota_unres_energy_check_mult.sh $1 ${UNRES_BIN}
664 ")
665
666 #  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
667   if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
668      MESSAGE (STATUS "LAM MPI library detected")
669      set (boot_lam "-boot")
670   else()
671      set (boot_lam "")
672   endif()
673
674   if (UNRES_SRUN)
675    set (np "-n")
676    set (mpiexec "srun")
677   elseif(UNRES_MPIRUN)
678    set (np "-np")
679    set (mpiexec "mpirun")
680   else()
681    set (np "-np")
682    set (mpiexec "mpiexec")
683   endif()
684
685
686 #
687 # File permissions workaround
688 #
689 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh 
690         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
691         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
692 )
693
694 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
695 "#!/bin/sh
696 export POT=GB
697 export FGPROCS=$2
698 export PREFIX=$1
699 #-----------------------------------------------------------------------------
700 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
701 #-----------------------------------------------------------------------------
702 DD=${CMAKE_SOURCE_DIR}/PARAM
703 export BONDPAR=$DD/bond_AM1_ext_dum.parm
704 export THETPAR=$DD/theta_abinitio_old_ext.parm
705 export THETPARPDB=$DD/thetaml_ext.5parm
706 export ROTPARPDB=$DD/scgauss_ext.parm
707 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
708 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
709 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
710 export ELEPAR=$DD/electr_631Gdp_ext.parm
711 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
712 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
713 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
714 export SCPPAR=$DD/scp_ext.parm
715 export PATTERN=$DD/patterns.cart
716 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
717 #-----------------------------------------------------------------------------
718 echo CTEST_FULL_OUTPUT
719 ${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
720 ./prota_unres_energy_check_mult.sh $1 ${UNRES_BIN}
721 ")
722
723 #
724 # File permissions workaround
725 #
726 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
727         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
728         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
729 )
730
731
732 endif(UNRES_MD_FF STREQUAL "E0LL2Y")
733
734
735
736 # Add tests
737
738 if(NOT UNRES_WITH_MPI)
739                   
740   if(UNRES_MD_FF STREQUAL "GAB")
741     add_test(NAME UNRES_M_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
742   endif(UNRES_MD_FF STREQUAL "GAB")
743  
744   if(UNRES_MD_FF STREQUAL "E0LL2Y")
745     add_test(NAME UNRES_M_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE_m 1 )
746     add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
747     add_test(NAME UNRES_M_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
748     add_test(NAME UNRES_M_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
749     add_test(NAME UNRES_M_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
750     add_test(NAME UNRES_M_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
751     add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
752 #no NH in MD-M
753 #    add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
754     add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
755     add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ene 1 )
756     add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-checkgrad 1 )
757     add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-min 1 )
758     add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-micro 1 )
759     add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ber 1 )
760     add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-lang 1 )
761   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
762
763 else(NOT UNRES_WITH_MPI)
764
765   if(UNRES_CSA_FF STREQUAL "4P")
766     add_test(NAME UNRES_CSA_global COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_4P.sh 1l2y_csa_4P )
767     add_test(NAME UNRES_CSA_local COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_4P.sh 1l2y_csa_local_4P )
768   endif(UNRES_CSA_FF STREQUAL "4P")
769  
770   if(UNRES_CSA_FF STREQUAL "E0LL2Y")
771     add_test(NAME UNRES_CSA_global_E0LL2Y COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_E0LL2Y.sh 1l2y_csa )
772     add_test(NAME UNRES_CSA_local_E0LL2Y COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_E0LL2Y.sh 1l2y_csa_local )
773   endif(UNRES_CSA_FF STREQUAL "E0LL2Y")
774
775   if(UNRES_MD_FF STREQUAL "GAB")
776     add_test(NAME UNRES_M_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
777   endif(UNRES_MD_FF STREQUAL "GAB")
778
779   if(UNRES_MD_FF STREQUAL "E0LL2Y")
780 # no NH in src_MD-M code
781     add_test(NAME UNRES_M_ENE_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE_m 2 )
782     add_test(NAME UNRES_M_ENE1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE_m 1 )
783     add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh prota_CHECKGRAD 2 2 )   
784     add_test(NAME UNRES_M_CHECKGRAD1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )   
785     add_test(NAME UNRES_M_CHECKGRAD_homology COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh Ts866_checkgrad_full 2 2 )   
786     add_test(NAME UNRES_M_CHECKGRAD1_homology COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh Ts866_checkgrad_full 1 )   
787     add_test(NAME UNRES_M_MIN_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 2 )
788     add_test(NAME UNRES_M_MIN_INT COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
789     add_test(NAME UNRES_M_REGULAR COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
790     add_test(NAME UNRES_M_MD_microcanonical COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 2 )
791     add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
792 # no NH in src_MD-M code
793 ##    add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
794     add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
795     add_test(NAME UNRES_M_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
796     add_test(NAME UNRES_M_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1ei0_min 1 2 )
797 #mutlichain
798     add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 2 2 )
799     add_test(NAME UNRES_M_multi_ene1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 1 1 )
800     add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 2 2 )
801     add_test(NAME UNRES_M_multi_checkgrad1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 1 1 )
802     add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-min 2 2 )
803 #    add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-micro 2 2 )
804 #    add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ber 2 2 )
805 #    add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-lang 2 2 )
806   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
807
808 endif(NOT UNRES_WITH_MPI)
809