parallel DFA_D DFA_T DFA_N
[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         dfa.F 
208         proc_proc.c 
209
210
211 #================================================
212 # Set comipiler flags for different sourcefiles  
213 #================================================
214 if (Fortran_COMPILER_NAME STREQUAL "ifort")
215   set(FFLAGS0 "-ip -w" ) 
216   set(FFLAGS1 "-w -g -d2 -CA -CB" ) 
217   set(FFLAGS2 "-w -g -00 ")
218   #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
219   set(FFLAGS3 "-w -ipo " )
220 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
221   set(FFLAGS0 "-std=legacy -I. " ) 
222   set(FFLAGS1 "-std=legacy -g -I. " ) 
223   set(FFLAGS2 "-std=legacy -I. ")
224   #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
225   set(FFLAGS3 "-std=legacy -I. " )
226 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
227
228
229 # Add MPI compiler flags
230 if(UNRES_WITH_MPI)
231   set(FFLAGS0 "${FFLAGS0} -I${MPI_Fortran_INCLUDE_PATH}")
232   set(FFLAGS1 "${FFLAGS1} -I${MPI_Fortran_INCLUDE_PATH}")
233   set(FFLAGS2 "${FFLAGS2} -I${MPI_Fortran_INCLUDE_PATH}")
234   set(FFLAGS3 "${FFLAGS3} -I${MPI_Fortran_INCLUDE_PATH}")
235 endif(UNRES_WITH_MPI)
236
237 set_property(SOURCE ${UNRES_MD_SRC0} APPEND PROPERTY COMPILE_FLAGS ${FFLAGS0} )
238 #set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
239 #set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
240 set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
241
242 #=========================================
243 # Settings for GAB force field 
244 #=========================================
245 if(UNRES_MD_FF STREQUAL "GAB" )
246   # set preprocesor flags   
247   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC")
248
249 #=========================================
250 #  Settings for E0LL2Y force field
251 #=========================================
252 elseif(UNRES_MD_FF STREQUAL "E0LL2Y")
253   # set preprocesor flags   
254   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" )
255 elseif(UNRES_MD_FF STREQUAL "4P")
256   set(CPPFLAGS "UNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DSCCORPDB" )
257 endif(UNRES_MD_FF STREQUAL "GAB")
258
259 if(UNRES_DFA)
260  set(CPPFLAGS "${CPPFLAGS} -DDFA")
261 endif(UNRES_DFA)
262
263 #=========================================
264 # System specific flags
265 #=========================================
266 if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
267   set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
268 endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
269
270 #=========================================
271 # Compiler specific flags
272 #=========================================
273
274 if (Fortran_COMPILER_NAME STREQUAL "ifort")
275   # Add ifort preprocessor flags
276   set(CPPFLAGS "${CPPFLAGS} -DPGI") 
277 elseif (Fortran_COMPILER_NAME STREQUAL "f95")
278   # Add new gfortran flags
279   set(CPPFLAGS "${CPPFLAGS} -DG77") 
280 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
281   # Add old gfortran flags
282   set(CPPFLAGS "${CPPFLAGS} -DG77") 
283 elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
284   set(CPPFLAGS "${CPPFLAGS} -DPGI")
285   FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
286   list(APPEND UNRES_MD_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
287 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
288
289 #=========================================
290 # Add MPI preprocessor flags
291 #=========================================
292 if (UNRES_WITH_MPI)
293   set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
294 endif(UNRES_WITH_MPI)
295
296 #=========================================
297 # Add 64-bit specific preprocessor flags
298 #=========================================
299 if (architektura STREQUAL "64")
300   set(CPPFLAGS "${CPPFLAGS} -DAMD64")
301 endif (architektura STREQUAL "64")
302
303 #=========================================
304 # Apply preprocesor flags to *.F files
305 #=========================================
306 set_property(SOURCE ${UNRES_MD_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
307
308
309 #========================================
310 #  Setting binary name
311 #========================================
312 if(UNRES_WITH_MPI) 
313   # binary with mpi
314   if(UNRES_DFA)
315    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}_DFA.exe")
316   else(UNRES_DFA)
317    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
318   endif(UNRES_DFA)
319 else(UNRES_WITH_MPI)
320   # binary without mpi
321   if(UNRES_DFA)
322    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}_DFA.exe")
323   else(UNRES_DFA)
324    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}.exe")
325   endif(UNRES_DFA)
326 endif(UNRES_WITH_MPI)  
327
328 #=========================================
329 # cinfo.f workaround for cmake
330 #=========================================
331 # get the current date  
332 TODAY(DATE)
333 # generate cinfo.f
334
335 set(CINFO "${CMAKE_CURRENT_BINARY_DIR}/cinfo.f")
336 FILE(WRITE ${CINFO}
337 "C CMake generated file
338        subroutine cinfo
339        include 'COMMON.IOUNITS'
340        write(iout,*)'++++ Compile info ++++'
341        write(iout,*)'Version ${UNRES_MAJOR}.${UNRES_MINOR} build ${UNRES_PATCH}'
342 ")
343
344 CINFO_FORMAT(${CINFO} "Compiled" "${DATE}" )
345 CINFO_FORMAT(${CINFO} "Compiled by" "$ENV{USER}@$ENV{HOST}" )
346 CINFO_FORMAT(${CINFO} "OS name:" "${CMAKE_SYSTEM_NAME}" )
347 CINFO_FORMAT(${CINFO} "OS release:" "${CMAKE_SYSTEM}" )
348 CINFO_FORMAT(${CINFO} "Fortran Compiler:" "${CMAKE_Fortran_COMPILER}" )
349 CINFO_FORMAT(${CINFO} "MD Force field:" "${UNRES_MD_FF}" )
350 CINFO_FORMAT(${CINFO} "CPPFLAGS =" "${CPPFLAGS}")
351
352 FILE(APPEND ${CINFO} 
353 "       write(iout,*)'++++ End of compile info ++++'  
354        return 
355        end ")
356
357 # add include path
358 set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f PROPERTY COMPILE_FLAGS "${FFLAGS0} -I${CMAKE_CURRENT_SOURCE_DIR}")
359
360 #=========================================
361 # Set full unres MD sources
362 #=========================================
363 set(UNRES_MD_SRCS ${UNRES_MD_SRC0} ${UNRES_MD_SRC3} ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f )
364
365
366 #=========================================
367 # Build the binary
368 #=========================================
369 add_executable(UNRES_BIN-MD ${UNRES_MD_SRCS} )
370 set_target_properties(UNRES_BIN-MD PROPERTIES OUTPUT_NAME ${UNRES_BIN})
371 set_property(TARGET UNRES_BIN-MD PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
372 #add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
373
374
375 #=========================================
376 # Link libraries
377 #=========================================
378 # link MPI library (libmpich.a)  
379 if(UNRES_WITH_MPI)
380   target_link_libraries( UNRES_BIN-MD ${MPI_Fortran_LIBRARIES} )
381 endif(UNRES_WITH_MPI)
382 # link libxdrf.a 
383 #message("UNRES_XDRFLIB=${UNRES_XDRFLIB}")
384 target_link_libraries( UNRES_BIN-MD xdrf )
385
386 #=========================================
387 # Install Path
388 #=========================================
389 install(TARGETS UNRES_BIN-MD DESTINATION ${CMAKE_INSTALL_PREFIX}/unres/MD) 
390
391 #=========================================
392 # TESTS 
393 #=========================================
394
395 #-- Copy all the data files from the test directory into the source directory
396 #SET(UNRES_TEST_FILES
397 #       ala10.inp
398 #    )
399
400 #FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
401 #      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
402 #      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
403 #      ADD_CUSTOM_COMMAND (
404 #          TARGET     ${UNRES_BIN}
405 #          POST_BUILD
406 #          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
407 #      )
408 #ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
409
410 #=========================================
411 # Generate data test files
412 #=========================================
413 #  test_single_ala.sh
414 #=========================================
415
416 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
417 "#!/bin/sh
418 export POT=GB
419 export PREFIX=ala10
420 #-----------------------------------------------------------------------------
421 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
422 #-----------------------------------------------------------------------------
423 DD=${CMAKE_SOURCE_DIR}/PARAM
424 export BONDPAR=$DD/bond.parm
425 export THETPAR=$DD/thetaml.5parm
426 export ROTPAR=$DD/scgauss.parm
427 export TORPAR=$DD/torsion_631Gdp.parm
428 export TORDPAR=$DD/torsion_double_631Gdp.parm
429 export ELEPAR=$DD/electr_631Gdp.parm
430 export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
431 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
432 export SCPPAR=$DD/scp.parm
433 export SCCORPAR=$DD/sccor_pdb_shelly.dat
434 export PATTERN=$DD/patterns.cart
435 #-----------------------------------------------------------------------------
436 $UNRES_BIN
437 ")
438
439 #
440 # File permissions workaround
441 #
442 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh 
443         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
444         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
445 )
446
447
448
449 #=========================================
450 #  ala10.inp
451 #=========================================
452
453 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
454 "ala10 unblocked
455 SEED=-1111333 MD ONE_LETTER rescale_mode=2 
456 nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
457 reset_moment=1000 reset_vel=1000
458 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
459 WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
460 WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
461 WVDWPP=0.11371 WHPB=1.00000                                                    &
462 CUTOFF=7.00000 WCORR4=0.00000
463 12
464 XAAAAAAAAAAX 
465  0
466  0
467    90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
468    90.0000   90.0000
469   180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
470   180.0000
471   110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
472   110.0000  110.0000
473  -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
474  -120.0000 -120.0000
475 ")
476
477 if(UNRES_MD_FF STREQUAL "E0LL2Y")
478
479 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
480         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
481
482 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
483         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
484
485 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE.inp
486         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
487
488 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
489         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
490
491 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
492         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
493
494 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
495         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
496
497 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
498         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
499
500 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
501         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
502
503 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
504         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
505
506 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
507         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
508
509
510 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
511         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
512
513 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
514         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
515
516 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0_min.inp
517         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
518
519 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0.pdb
520         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
521
522 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check.sh
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_fit_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/matplotlib_hist.py
533         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
534         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
535 )
536
537 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
538         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
539
540 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
541         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
542
543 if(UNRES_DFA)
544 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/dfa
545         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
546
547 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
548         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/dfa )
549
550 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
551         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/dfa )
552
553
554 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check.sh
555         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/dfa
556         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
557 )
558
559 endif()
560
561 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/homology/
562       DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN "*" )
563
564
565 #=========================================
566 #  test_prota_E0LL2Y.sh
567 #=========================================
568
569 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
570 "#!/bin/sh
571 export POT=GB
572 export FGPROCS=$2
573 export PREFIX=$1
574 #-----------------------------------------------------------------------------
575 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
576 #-----------------------------------------------------------------------------
577 DD=${CMAKE_SOURCE_DIR}/PARAM
578 export BONDPAR=$DD/bond_AM1.parm
579 export THETPAR=$DD/theta_abinitio.parm
580 export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
581 export TORPAR=$DD/torsion_631Gdp.parm
582 export TORDPAR=$DD/torsion_double_631Gdp.parm
583 export ELEPAR=$DD/electr_631Gdp.parm
584 export SIDEPAR=$DD/scinter_$POT.parm
585 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
586 export SCPPAR=$DD/scp.parm
587 export SCCORPAR=$DD/sccor_am1_pawel.dat
588 export THETPARPDB=$DD/thetaml.5parm
589 export ROTPARPDB=$DD/scgauss.parm
590 export PATTERN=$DD/patterns.cart
591 #-----------------------------------------------------------------------------
592 echo CTEST_FULL_OUTPUT
593 $UNRES_BIN
594 ./prota_unres_energy_check.sh $1 ${UNRES_BIN}
595 ")
596
597 #
598 # File permissions workaround
599 #
600 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh 
601         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
602         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
603 )
604 if(UNRES_DFA)
605 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh 
606         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/dfa
607         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
608 )
609 endif()
610
611 #  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
612   if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
613      MESSAGE (STATUS "LAM MPI library detected")
614      set (boot_lam "-boot")
615   else()
616      set (boot_lam "")
617   endif()
618
619   if (UNRES_SRUN)
620    set (np "-n")
621    set (mpiexec "srun")
622   elseif(UNRES_MPIRUN)
623    set (np "-np")
624    set (mpiexec "mpirun")
625   else()
626    set (np "-np")
627    set (mpiexec "mpiexec")
628   endif()
629           
630
631 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
632 "#!/bin/sh
633 export POT=GB
634 export FGPROCS=$2
635 export PREFIX=$1
636 #-----------------------------------------------------------------------------
637 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
638 #-----------------------------------------------------------------------------
639 DD=${CMAKE_SOURCE_DIR}/PARAM
640 export BONDPAR=$DD/bond_AM1.parm
641 export THETPAR=$DD/theta_abinitio.parm
642 export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
643 export TORPAR=$DD/torsion_631Gdp.parm
644 export TORDPAR=$DD/torsion_double_631Gdp.parm
645 export ELEPAR=$DD/electr_631Gdp.parm
646 export SIDEPAR=$DD/scinter_$POT.parm
647 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
648 export SCPPAR=$DD/scp.parm
649 export SCCORPAR=$DD/sccor_am1_pawel.dat
650 export THETPARPDB=$DD/thetaml.5parm
651 export ROTPARPDB=$DD/scgauss.parm
652 export PATTERN=$DD/patterns.cart
653 #-----------------------------------------------------------------------------
654 echo CTEST_FULL_OUTPUT
655 ${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
656 ./prota_unres_energy_check.sh $1 ${UNRES_BIN}
657 ")
658
659 #
660 # File permissions workaround
661 #
662 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
663         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
664         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
665 )
666
667 if(UNRES_DFA)
668 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
669         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/dfa
670         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
671 )
672 endif()
673
674
675 endif(UNRES_MD_FF STREQUAL "E0LL2Y")
676
677
678
679 # Add tests
680
681 if(NOT UNRES_WITH_MPI)
682                   
683   if(UNRES_MD_FF STREQUAL "GAB")
684     add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
685   endif(UNRES_MD_FF STREQUAL "GAB")
686  
687   if(UNRES_MD_FF STREQUAL "E0LL2Y")
688     add_test(NAME UNRES_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
689     add_test(NAME UNRES_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
690     add_test(NAME UNRES_CHECKGRAD_homology COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh Ts866_checkgrad_full 1 )
691     if(UNRES_DFA)
692      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)
693     endif()
694     add_test(NAME UNRES_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
695     add_test(NAME UNRES_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
696     add_test(NAME UNRES_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
697     add_test(NAME UNRES_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
698     add_test(NAME UNRES_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
699     add_test(NAME UNRES_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
700     add_test(NAME UNRES_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
701     add_test(NAME UNRES_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1ei0_min 1 )
702   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
703
704 else(NOT UNRES_WITH_MPI)
705
706
707   if(UNRES_MD_FF STREQUAL "GAB")
708     add_test(NAME UNRES_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
709   endif(UNRES_MD_FF STREQUAL "GAB")
710
711   if(UNRES_MD_FF STREQUAL "E0LL2Y")
712     add_test(NAME UNRES_ENE_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 2 )
713     add_test(NAME UNRES_ENE1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
714     add_test(NAME UNRES_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh prota_CHECKGRAD 2 2 )   
715     add_test(NAME UNRES_CHECKGRAD1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )   
716     add_test(NAME UNRES_CHECKGRAD_homology COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh Ts866_checkgrad_full 2 2 )   
717     add_test(NAME UNRES_CHECKGRAD1_homology COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh Ts866_checkgrad_full 1 )   
718     if(UNRES_DFA)
719      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)
720      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 )
721     endif()
722     add_test(NAME UNRES_MIN_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 2 )
723     add_test(NAME UNRES_MIN_INT COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
724     add_test(NAME UNRES_REGULAR COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
725     add_test(NAME UNRES_MD_microcanonical COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 2 )
726     add_test(NAME UNRES_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
727     add_test(NAME UNRES_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
728     add_test(NAME UNRES_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
729     add_test(NAME UNRES_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
730     add_test(NAME UNRES_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1ei0_min 1 2 )
731   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
732
733 endif(NOT UNRES_WITH_MPI)
734