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