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