7c769b1867081b5c1a2e7f3dba4c807658b908a4
[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 elseif(UNRES_MD_FF STREQUAL "NEWCORR")
220   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DNEWCORR -DCORRCD" )
221 endif(UNRES_MD_FF STREQUAL "GAB")
222
223
224 #=========================================
225 # System specific flags
226 #=========================================
227 if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
228   set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
229 endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
230
231
232 #=========================================
233 # Compiler specific flags
234 #=========================================
235
236 if (Fortran_COMPILER_NAME STREQUAL "ifort")
237   # Add ifort preprocessor flags
238   set(CPPFLAGS "${CPPFLAGS} -DPGI") 
239 elseif (Fortran_COMPILER_NAME STREQUAL "f95")
240   # Add new gfortran flags
241   set(CPPFLAGS "${CPPFLAGS} -DG77") 
242 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
243   # Add old gfortran flags
244   set(CPPFLAGS "${CPPFLAGS} -DG77") 
245 elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
246   set(CPPFLAGS "${CPPFLAGS} -DPGI")
247   FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
248   list(APPEND UNRES_MDM_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
249 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
250
251
252 #=========================================
253 # Add MPI preprocessor flags
254 #=========================================
255 if (UNRES_WITH_MPI)
256   set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
257 endif(UNRES_WITH_MPI)
258
259
260 #=========================================
261 # add 64-bit specific preprocessor flags
262 #=========================================
263 if (architektura STREQUAL "64")
264   set(CPPFLAGS "${CPPFLAGS} -DAMD64")
265 endif (architektura STREQUAL "64")
266
267
268
269 # Apply preprocesor flags to *.F files
270 set_property(SOURCE ${UNRES_MDM_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
271
272 # Apply preprocesor flags to proc_proc.c
273 #set_property(SOURCE proc_proc.c PROPERTY COMPILE_DEFINITIONS "SGI" )  
274
275
276 #========================================
277 #  Setting binary name
278 #========================================
279 if(UNRES_WITH_MPI) 
280   # binary with mpi
281   set(UNRES_BIN "unresMD-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
282 else(UNRES_WITH_MPI)
283   # binary without mpi
284   set(UNRES_BIN "unresMD-mult_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}.exe")
285 endif(UNRES_WITH_MPI)  
286
287 #=========================================
288 # cinfo.f workaround for cmake
289 #=========================================
290 # get the current date  
291 TODAY(DATE)
292 # generate cinfo.f
293 set(CINFO "${CMAKE_CURRENT_BINARY_DIR}/cinfo.f")
294 FILE(WRITE ${CINFO}
295 "C CMake generated file
296        subroutine cinfo
297        include 'COMMON.IOUNITS'
298        write(iout,*)'++++ Compile info ++++'
299        write(iout,*)'Version ${UNRES_MAJOR}.${UNRES_MINOR} build ${UNRES_PATCH}'
300 ")
301
302 CINFO_FORMAT(${CINFO} "Compiled" "${DATE}" )
303 CINFO_FORMAT(${CINFO} "Compiled by" "$ENV{USER}@$ENV{HOST}" )
304 CINFO_FORMAT(${CINFO} "OS name:" "${CMAKE_SYSTEM_NAME}" )
305 CINFO_FORMAT(${CINFO} "OS release:" "${CMAKE_SYSTEM}" )
306 CINFO_FORMAT(${CINFO} "Fortran Compiler:" "${CMAKE_Fortran_COMPILER}" )
307 CINFO_FORMAT(${CINFO} "MD Force field:" "${UNRES_MD_FF}" )
308 CINFO_FORMAT(${CINFO} "CPPFLAGS =" "${CPPFLAGS}")
309
310 FILE(APPEND ${CINFO} 
311 "       write(iout,*)'++++ End of compile info ++++'  
312        return 
313        end ")
314
315
316 # add include path
317 set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f PROPERTY COMPILE_FLAGS "${FFLAGS0} -I${CMAKE_CURRENT_SOURCE_DIR}")
318
319 #=========================================
320 # Set full unres MD-M sources
321 #=========================================
322 set(UNRES_MDM_SRCS ${UNRES_MDM_SRC0} ${UNRES_MDM_SRC3} ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f )
323
324 #=========================================
325 # Build the binary
326 #=========================================
327 add_executable(UNRES_BIN-MD-M ${UNRES_MDM_SRCS} )
328 set_target_properties(UNRES_BIN-MD-M PROPERTIES OUTPUT_NAME ${UNRES_BIN})
329 set_property(TARGET UNRES_BIN-MD-M PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
330 #add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
331
332 #=========================================
333 # Link libraries
334 #=========================================
335 # link MPI library (libmpich.a)  
336 if(UNRES_WITH_MPI)
337   target_link_libraries( UNRES_BIN-MD-M ${MPI_Fortran_LIBRARIES} )
338 endif(UNRES_WITH_MPI)
339 # link libxdrf.a 
340 #message("UNRES_XDRFLIB=${UNRES_XDRFLIB}")
341 target_link_libraries( UNRES_BIN-MD-M xdrf )
342
343 #=========================================
344 # Install Path
345 #=========================================
346 install(TARGETS UNRES_BIN-MD-M DESTINATION ${CMAKE_INSTALL_PREFIX}/unres/MD)
347
348 #=========================================
349 # TESTS 
350 #=========================================
351
352 #=========================================
353 # Generate data test files
354 #=========================================
355 #  test_single_ala.sh
356 #=========================================
357
358 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
359 "#!/bin/sh
360 export POT=GB
361 export PREFIX=ala10
362 #-----------------------------------------------------------------------------
363 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
364 #-----------------------------------------------------------------------------
365 DD=${CMAKE_SOURCE_DIR}/PARAM
366 export BONDPAR=$DD/bond.parm
367 export THETPAR=$DD/thetaml.5parm
368 export ROTPAR=$DD/scgauss.parm
369 export TORPAR=$DD/torsion_631Gdp.parm
370 export TORDPAR=$DD/torsion_double_631Gdp.parm
371 export ELEPAR=$DD/electr_631Gdp.parm
372 export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
373 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
374 export SCPPAR=$DD/scp.parm
375 export SCCORPAR=$DD/sccor_pdb_shelly.dat
376 export PATTERN=$DD/patterns.cart
377 #-----------------------------------------------------------------------------
378 $UNRES_BIN
379 ")
380
381 #
382 # File permissions workaround
383 #
384 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh 
385         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
386         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
387 )
388
389
390
391 #=========================================
392 #  ala10.inp
393 #=========================================
394
395 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
396 "ala10 unblocked
397 SEED=-1111333 MD ONE_LETTER rescale_mode=2 
398 nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
399 reset_moment=1000 reset_vel=1000
400 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
401 WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
402 WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
403 WVDWPP=0.11371 WHPB=1.00000                                                    &
404 CUTOFF=7.00000 WCORR4=0.00000
405 12
406 XAAAAAAAAAAX 
407  0
408  0
409    90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
410    90.0000   90.0000
411   180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
412   180.0000
413   110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
414   110.0000  110.0000
415  -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
416  -120.0000 -120.0000
417 ")
418
419 if(UNRES_CSA_FF STREQUAL "4P")
420
421 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_4P.inp
422         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
423
424 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local_4P.inp
425         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
426
427 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local_4P.CSA.native.int
428         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
429
430
431 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/csa_energy_check.sh
432         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
433         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
434 )
435
436
437 #=========================================
438 #  test_csa_4P.sh
439 #=========================================
440
441 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_4P.sh
442 "#!/bin/sh
443 export POT=GB
444 export FGPROCS=1
445 export PREFIX=$1
446 #-----------------------------------------------------------------------------
447 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
448 #-----------------------------------------------------------------------------
449 DD=${CMAKE_SOURCE_DIR}/PARAM
450 export BONDPAR=$DD/bond.parm
451 export THETPAR=$DD/thetaml.5parm
452 export ROTPAR=$DD/scgauss.parm
453 export TORPAR=$DD/torsion_631Gdp.parm
454 export TORDPAR=$DD/torsion_double_631Gdp.parm
455 export ELEPAR=$DD/electr_631Gdp.parm
456 export SIDEPAR=$DD/sc_GB_opt.4P5_iter33_3r
457 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
458 #export SCCORPAR=$DD/rotcorr_AM1.parm
459 export SCCORPAR=$DD/sccor_am1_pawel.dat
460 export SCPPAR=$DD/scp.parm
461 export PATTERN=$DD/patterns.cart
462 export PRINT_PARM=NO
463 #-----------------------------------------------------------------------------
464 echo CTEST_FULL_OUTPUT
465 $UNRES_BIN
466 ./csa_energy_check.sh $1
467 ")
468
469 #
470 # File permissions workaround
471 #
472 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_4P.sh
473         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
474         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
475 )
476 endif(UNRES_CSA_FF STREQUAL "4P")
477
478 if(UNRES_CSA_FF STREQUAL "E0LL2Y")
479
480 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa.inp
481         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
482
483 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local.inp
484         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
485
486 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local.CSA.native.int
487         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
488
489
490 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/csa_energy_check.sh
491         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
492         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
493 )
494
495
496 #=========================================
497 #  test_csa_E0LL2Y.sh
498 #=========================================
499
500 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_E0LL2Y.sh
501 "#!/bin/sh
502 export POT=GB
503 export FGPROCS=1
504 export PREFIX=$1
505 #-----------------------------------------------------------------------------
506 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
507 #-----------------------------------------------------------------------------
508 DD=${CMAKE_SOURCE_DIR}/PARAM
509 export BONDPAR=$DD/bond_AM1_ext_dum.parm
510 export THETPAR=$DD/theta_abinitio_old_ext.parm
511 export THETPARPDB=$DD/thetaml_ext.5parm
512 export ROTPARPDB=$DD/scgauss_ext.parm
513 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
514 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
515 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
516 export ELEPAR=$DD/electr_631Gdp_ext.parm
517 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
518 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
519 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
520 export SCPPAR=$DD/scp_ext.parm
521 export PATTERN=$DD/patterns.cart
522 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
523 export PRINT_PARM=NO
524 #-----------------------------------------------------------------------------
525 echo CTEST_FULL_OUTPUT
526 $UNRES_BIN |grep -v GenSide
527 ./csa_energy_check.sh $1
528 ")
529
530 #
531 # File permissions workaround
532 #
533 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_E0LL2Y.sh
534         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
535         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
536 )
537 endif(UNRES_CSA_FF STREQUAL "E0LL2Y")
538
539
540
541 if(UNRES_MD_FF STREQUAL "E0LL2Y")
542
543 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
544         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
545
546 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
547         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
548
549 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE_m.inp
550         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
551
552 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
553         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
554
555 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
556         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
557
558 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
559         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
560
561 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
562         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
563
564 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
565         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
566
567 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
568         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
569
570 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
571         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
572
573
574 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
575         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
576
577 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
578         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
579
580 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0_min.inp
581         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
582
583 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0.pdb
584         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
585
586 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut.pdb
587         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
588
589 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut_unres.pdb
590         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
591
592 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ber.inp
593         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
594
595 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ene.inp
596         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
597
598 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-lang.inp
599         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
600
601 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-micro.inp
602         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
603
604 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-min.inp
605         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
606
607 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check_mult.sh
608         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
609         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
610 )
611
612 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_fit_hist.py
613         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
614         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
615 )
616
617 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
618         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
619         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
620 )
621
622 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_plot.py
623         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
624         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
625 )
626
627 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
628         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
629
630 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
631         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
632
633 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-checkgrad.inp
634         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
635
636 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/homology_mult/
637       DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN "*" )
638
639
640 #=========================================
641 #  test_prota_E0LL2Y.sh
642 #=========================================
643
644 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
645 "#!/bin/sh
646 export POT=GB
647 export FGPROCS=$2
648 export PREFIX=$1
649 #-----------------------------------------------------------------------------
650 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
651 #-----------------------------------------------------------------------------
652 DD=${CMAKE_SOURCE_DIR}/PARAM
653 export BONDPAR=$DD/bond_AM1_ext_dum.parm
654 export THETPAR=$DD/theta_abinitio_old_ext.parm
655 export THETPARPDB=$DD/thetaml_ext.5parm
656 export ROTPARPDB=$DD/scgauss_ext.parm
657 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
658 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
659 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
660 export ELEPAR=$DD/electr_631Gdp_ext.parm
661 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
662 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
663 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
664 export SCPPAR=$DD/scp_ext.parm
665 export PATTERN=$DD/patterns.cart
666 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
667 #-----------------------------------------------------------------------------
668 echo CTEST_FULL_OUTPUT
669 $UNRES_BIN
670 ./prota_unres_energy_check_mult.sh $1 ${UNRES_BIN}
671 ")
672
673 #  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
674   if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
675      MESSAGE (STATUS "LAM MPI library detected")
676      set (boot_lam "-boot")
677   else()
678      set (boot_lam "")
679   endif()
680
681   if (UNRES_SRUN)
682    set (np "-n")
683    set (mpiexec "srun")
684   elseif(UNRES_MPIRUN)
685    set (np "-np")
686    set (mpiexec "mpirun")
687   else()
688    set (np "-np")
689    set (mpiexec "mpiexec")
690   endif()
691
692
693 #
694 # File permissions workaround
695 #
696 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh 
697         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
698         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
699 )
700
701 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
702 "#!/bin/sh
703 export POT=GB
704 export FGPROCS=$2
705 export PREFIX=$1
706 #-----------------------------------------------------------------------------
707 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
708 #-----------------------------------------------------------------------------
709 DD=${CMAKE_SOURCE_DIR}/PARAM
710 export BONDPAR=$DD/bond_AM1_ext_dum.parm
711 export THETPAR=$DD/theta_abinitio_old_ext.parm
712 export THETPARPDB=$DD/thetaml_ext.5parm
713 export ROTPARPDB=$DD/scgauss_ext.parm
714 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
715 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
716 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
717 export ELEPAR=$DD/electr_631Gdp_ext.parm
718 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
719 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
720 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
721 export SCPPAR=$DD/scp_ext.parm
722 export PATTERN=$DD/patterns.cart
723 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
724 #-----------------------------------------------------------------------------
725 echo CTEST_FULL_OUTPUT
726 ${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
727 ./prota_unres_energy_check_mult.sh $1 ${UNRES_BIN}
728 ")
729
730 #
731 # File permissions workaround
732 #
733 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
734         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
735         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
736 )
737
738
739 endif(UNRES_MD_FF STREQUAL "E0LL2Y")
740
741
742
743 # Add tests
744
745 if(NOT UNRES_WITH_MPI)
746                   
747   if(UNRES_MD_FF STREQUAL "GAB")
748     add_test(NAME UNRES_M_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
749   endif(UNRES_MD_FF STREQUAL "GAB")
750  
751   if(UNRES_MD_FF STREQUAL "E0LL2Y")
752     add_test(NAME UNRES_M_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE_m 1 )
753     add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
754     add_test(NAME UNRES_M_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
755     add_test(NAME UNRES_M_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
756     add_test(NAME UNRES_M_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
757     add_test(NAME UNRES_M_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
758     add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
759 #no NH in MD-M
760 #    add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
761     add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
762     add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ene 1 )
763     add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-checkgrad 1 )
764     add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-min 1 )
765     add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-micro 1 )
766     add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ber 1 )
767     add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-lang 1 )
768   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
769
770 else(NOT UNRES_WITH_MPI)
771
772   if(UNRES_CSA_FF STREQUAL "4P")
773     add_test(NAME UNRES_CSA_global COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_4P.sh 1l2y_csa_4P )
774     add_test(NAME UNRES_CSA_local COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_4P.sh 1l2y_csa_local_4P )
775   endif(UNRES_CSA_FF STREQUAL "4P")
776  
777   if(UNRES_CSA_FF STREQUAL "E0LL2Y")
778 #    add_test(NAME UNRES_CSA_global_E0LL2Y COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_E0LL2Y.sh 1l2y_csa )
779 #    add_test(NAME UNRES_CSA_local_E0LL2Y COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_E0LL2Y.sh 1l2y_csa_local )
780   endif(UNRES_CSA_FF STREQUAL "E0LL2Y")
781
782   if(UNRES_MD_FF STREQUAL "GAB")
783     add_test(NAME UNRES_M_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
784   endif(UNRES_MD_FF STREQUAL "GAB")
785
786   if(UNRES_MD_FF STREQUAL "E0LL2Y")
787 # no NH in src_MD-M code
788     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 )
789     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 )
790     add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh prota_CHECKGRAD 2 2 )   
791     add_test(NAME UNRES_M_CHECKGRAD1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )   
792     add_test(NAME UNRES_M_CHECKGRAD_homology COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh Ts866_checkgrad_full 2 2 )   
793     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 )   
794     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 )
795     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 )
796     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 )
797     add_test(NAME UNRES_M_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1l2y_micro 2 2 )
798     add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
799 # no NH in src_MD-M code
800 ##    add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
801     add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
802     add_test(NAME UNRES_M_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
803     add_test(NAME UNRES_M_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1ei0_min 1 2 )
804 #mutlichain
805     add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 2 2 )
806     add_test(NAME UNRES_M_multi_ene1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 1 1 )
807     add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 2 2 )
808     add_test(NAME UNRES_M_multi_checkgrad1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 1 1 )
809     add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-min 2 2 )
810 #    add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-micro 2 2 )
811 #    add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ber 2 2 )
812 #    add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-lang 2 2 )
813   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
814
815 endif(NOT UNRES_WITH_MPI)
816