Merge release-4-6 into master
authorRoland Schulz <roland@utk.edu>
Tue, 26 Feb 2013 19:06:06 +0000 (14:06 -0500)
committerRoland Schulz <roland@utk.edu>
Tue, 26 Feb 2013 19:10:05 +0000 (14:10 -0500)
Conflicts:
share/top/gurgle.dat
src/contrib/addquote.c (deleted)
src/programs/mdrun/pme_loadbal.c

Took for all python files the version with the new copyright:
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_128_fma_double/make_nb_kernel_avx_128_fma_double.py
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_128_fma_single/make_nb_kernel_avx_128_fma_single.py
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_256_double/make_nb_kernel_avx_256_double.py
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_256_single/make_nb_kernel_avx_256_single.py
src/gromacs/gmxlib/nonbonded/nb_kernel_c/make_nb_kernel_c.py
src/gromacs/gmxlib/nonbonded/nb_kernel_sse2_double/make_nb_kernel_sse2_double.py
src/gromacs/gmxlib/nonbonded/nb_kernel_sse2_single/make_nb_kernel_sse2_single.py
src/gromacs/gmxlib/nonbonded/nb_kernel_sse4_1_double/make_nb_kernel_sse4_1_double.py
src/gromacs/gmxlib/nonbonded/nb_kernel_sse4_1_single/make_nb_kernel_sse4_1_single.py

Change-Id: I8f9181d7d04d9da635ccb2a85f9d5c6255fcdb73

43 files changed:
CMakeLists.txt
cmake/gmxManageMPI.cmake
share/top/bromacs.dat
share/top/gurgle.dat
src/contrib/addquote.c [deleted file]
src/gromacs/gmxlib/copyrite.c
src/gromacs/gmxlib/nonbonded/nb_free_energy.c
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_128_fma_double/make_nb_kernel_avx_128_fma_double.py
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_128_fma_double/nb_kernel_avx_128_fma_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_128_fma_single/make_nb_kernel_avx_128_fma_single.py
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_128_fma_single/nb_kernel_avx_128_fma_single.c
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_256_double/make_nb_kernel_avx_256_double.py
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_256_double/nb_kernel_avx_256_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_256_single/make_nb_kernel_avx_256_single.py
src/gromacs/gmxlib/nonbonded/nb_kernel_avx_256_single/nb_kernel_avx_256_single.c
src/gromacs/gmxlib/nonbonded/nb_kernel_c/make_nb_kernel_c.py
src/gromacs/gmxlib/nonbonded/nb_kernel_c/nb_kernel_ElecGB_VdwLJ_GeomP1P1_c.c
src/gromacs/gmxlib/nonbonded/nb_kernel_c/nb_kernel_c.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sse2_double/make_nb_kernel_sse2_double.py
src/gromacs/gmxlib/nonbonded/nb_kernel_sse2_double/nb_kernel_sse2_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sse2_single/make_nb_kernel_sse2_single.py
src/gromacs/gmxlib/nonbonded/nb_kernel_sse2_single/nb_kernel_sse2_single.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sse4_1_double/make_nb_kernel_sse4_1_double.py
src/gromacs/gmxlib/nonbonded/nb_kernel_sse4_1_double/nb_kernel_sse4_1_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sse4_1_single/make_nb_kernel_sse4_1_single.py
src/gromacs/gmxlib/nonbonded/nb_kernel_sse4_1_single/nb_kernel_sse4_1_single.c
src/gromacs/gmxlib/nonbonded/nonbonded.c
src/gromacs/gmxpreprocess/readir.c
src/gromacs/legacyheaders/gmx_simd_macros.h
src/gromacs/legacyheaders/thread_mpi/atomic/xlc_ppc.h
src/gromacs/legacyheaders/types/nbnxn_pairlist.h
src/gromacs/mdlib/forcerec.c
src/gromacs/mdlib/nbnxn_atomdata.c
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.cu
src/gromacs/mdlib/nbnxn_kernels/nbnxn_kernel_ref_outer.h
src/gromacs/mdlib/nbnxn_search.c
src/gromacs/mdlib/vsite.c
src/programs/mdrun/md.c
src/programs/mdrun/pme_loadbal.c
src/programs/mdrun/pme_loadbal.h
src/tools/gmx_dipoles.c
src/tools/gmx_order.c
src/tools/gmx_tune_pme.c

index 43dffd9933c76488ea62482c4a81b86c7968ff0e..f663aa6bd133d978b7eb53c7de093d3a8cff2066 100644 (file)
@@ -29,7 +29,7 @@ mark_as_advanced(CUSTOM_VERSION_STRING)
 if (CUSTOM_VERSION_STRING)
     set(PROJECT_VERSION ${CUSTOM_VERSION_STRING})
 endif (CUSTOM_VERSION_STRING)
-set(SOVERSION 6)
+set(SOVERSION 8)
 # It is a bit irritating, but this has to be set separately for now!
 SET(CPACK_PACKAGE_VERSION_MAJOR "5")
 SET(CPACK_PACKAGE_VERSION_MINOR "0")
@@ -262,6 +262,10 @@ if (CMAKE_C_COMPILER_ID STREQUAL "PGI")
     message(WARNING "All tested PGI compiler versions (up to 12.9.0) generate binaries which produce incorrect results, or even fail to compile Gromacs. Highly recommended to use a different compiler. If you choose to use PGI, make sure to run the regressiontests.")
 endif()
 
+if(CMAKE_C_COMPILER_ID MATCHES "Intel" AND C_COMPILER_VERSION VERSION_LESS "12.0.0")
+    message(WARNING "Intel compilers before 12.0.0 are not routinely tested, so there may be problems. Version 11.1 with SSE4.1 is known to produce incorrect results. It is highly recommended to use a more up-to-date compiler. If you choose to use this version, make sure you run the regressiontests.")
+endif()
+
 ########################################################################
 # Set up binary and library suffixing 
 ########################################################################
@@ -731,6 +735,9 @@ elseif(${GMX_CPU_ACCELERATION} STREQUAL "SSE4.1")
       message(STATUS "Enabling SSE4.1 Gromacs acceleration, and it will help compiler optimization.")
     endif()
 
+    if(CMAKE_C_COMPILER_ID MATCHES "Intel" AND C_COMPILER_VERSION VERSION_EQUAL "11.1")
+        message(FATAL_ERROR "You are using Intel compiler version 11.1, and that compiler is known to produce incorrect results with SSE4.1 acceleration. You need to use another compiler (e.g. icc 12 or newer) or different acceleration (probably slower simulations).")
+    endif()
 elseif(${GMX_CPU_ACCELERATION} STREQUAL "AVX_128_FMA" OR ${GMX_CPU_ACCELERATION} STREQUAL "AVX_256")
 
     # Set the AVX compiler flag for both these choices!
index 36defad2f52a8c919f629596f61aa5dde0d4006e..279397d74a73233e6d25a2d4292cc91f2eba60a5 100644 (file)
@@ -109,6 +109,14 @@ if(GMX_MPI)
     endif()
     unset(MPINAME_BIN CACHE)
 
+    # Using find_file() runs the CMake standard module
+    # GetPrerequisites.cmake, which adds the file_cmd
+    # variable to the top-level CMake namespace. This is
+    # fixed in CMake 2.8.10. Meanwhile, clean up for it.
+    if(CMAKE_VERSION VERSION_LESS "2.8.10")
+        mark_as_advanced(file_cmd)
+    endif()
+
   else(MPI_FOUND)
     if (CMAKE_VERSION VERSION_LESS "2.8.5")
       message(FATAL_ERROR
index fc39b24ab3076b08448c3f4983f7e5de4d5a6a31..f8a8ffe705769005161239f078458b69af8b2357 100644 (file)
@@ -1,27 +1,27 @@
 26
-����ߘ�����߰��߲����߾�������߼����߬����
-������ߐ�߰������߲��������ߖ�߾�����ߙ��߬������
-�������߰��߲����ߚ�߼�����߬����
-����߭�����߲�����߾�߼��������߬����
-�����߭��߰���߲���߾����ߐ�߬����
-���������߲������ߙ��߼�������߬���������
-�����ߐ�߲�����ߞ��߼������߬������
-�������߲������ߞ��߬�������
-�������߲�������߾��߼������߬������
-�����߭��߰�������߲����߾��߼�������߬���
-����߭������߲����߾����ߙ��߼��������߬������
-�������߭���߲�������߾��߼����߬����
-��߼�߾�߲�߰�߭�߸
-�����߭�����߰�������߲������ߙ��߾߼�������߬����
-�������߭���߰�߲���ߐ�߾��߼�������߬������
-������߭���߲�����
-�����߭��߰�����߲������߾����߼���߬������
-���������߲������ߐ�߾������ߞ��߼���������߬������
-������߭�������߰����߲��߾����߼������߬��������
-���߭����߰���߲�������߾�������߼�����ߞ��߬���
-��߭�����߰�����߲���߾����߼������߬�����ߔ������
-�������߭�������߰�����߲��������߾����߼�����߬������
-�������ߞ�������ߏ������߲���������߾������߼������߬�����
-������߭���߰����߲���߾������߼���������߬����
-�������ߋ��߭����߰�����߲����ߑ�߾��������ߖ�߼����������߬����
-�������߭���߰��߲����������߾�߼���������߬�����
+Good gRace! Old Maple Actually Chews Slate
+GRoups of Organic Molecules in ACtion for Science
+GRowing Old MAkes el Chrono Sweat
+Gyas ROwers Mature At Cryogenic Speed
+Great Red Owns Many ACres of Sand 
+GROningen MAchine for Chemical Simulation
+GROup of MAchos and Cynical Suckers
+GROtesk MACabre and Sinister
+GROwing Monsters And Cloning Shrimps
+Great Red Oystrich Makes All Chemists Sane
+Good ROcking Metal Altar for Chronical Sinners
+Gnomes, ROck Monsters And Chili Sauce
+S  C  A  M  O  R  G
+Giant Rising Ordinary Mutants for A Clerical Setup
+Gromacs Runs On Most of All Computer Systems
+Grunge ROck MAChoS
+Green Red Orange Magenta Azure Cyan Skyblue
+GROningen Mixture of Alchemy and Childrens' Stories
+Guyana Rwanda Oman Macau Angola Cameroon Senegal
+God Rules Over Mankind, Animals, Cosmos and Such
+Georgetown Riga Oslo Madrid Amsterdam Chisinau Stockholm
+Gallium Rubidium Oxygen Manganese Argon Carbon Silicon
+Glycine aRginine prOline Methionine Alanine Cystine Serine
+Gravel Rubs Often Many Awfully Cauterized Sores
+Getting the Right Output Means no Artefacts in Calculating Stuff
+Gromacs Runs One Microsecond At Cannonball Speeds
index 3ce0c579b4c533cb7c6ec416bb643d21851c5c7e..69661e9fabcdfd119fc57e73c035bb5e5c6ddfb2 100644 (file)
-366
-��ߦ��ߨ���߬��������߻���ߦ��߷���ߋ�߻�߶�ߦ��������׷���������߶��
-�߳���ߋ��߳���߫���ߨ���߫���߻���׫������
-�����߽����߲�߷������ײ��������
-�������߾������߲����߽�����ߦ����ߺ�������׾�������߻�����������
-����߶��ջ����߸�ߨ���ߨ���ߋ��߼�������׽������߽����
-��߼��߻����߳���߶���߯���׭��߷��߼����߯�������
-��،߬�߳�����ߨ���ߦ��߻��؋ߺ���ߴ���ߦ��������׭��߷��߼����߯�������
-��ߋ��߻��߰�ߋ��߸������׭��߷��߼����߯�������
-���؋߯���߲��߼����߶ؒ߼����ߋ�ߋ��ߺ����׫������
-���؋߯���߲��߼����߶ؒ߼����ߋ�ߋ��ߺ����׸����������߹�����
-���߬������߻�߽��߬������߻�߽��߬������߻�߽���׭�߬����������
-���،߱��߽���߬��،ߵ���߸����������߲����׼������߽���������
-�����߸����ߖ�߱��߬�߸����׭��߷��߼����߯�������
-��߳���߬����ߵ����߭������߫����،߬��������ߦ��؉�߹���������ޠײ����߯������
-����߯�������ߖ�߾��������ײ��߶�߽�����
-���؋߸�������߸���ߞߨ�������ޠײ����߯������
-����߻�������߲�߽����ޠ׫��߾����
-�߼��������߲�߽����������ׯѵ�߷������
-���߬�����߬����߳���߲���߶�،߲���ߺ�����߰�ߦ���߼������������׽������߽����
-���؍�߶�������������׫������
-�����ߦ���߰������ׯ�߾��������
-����ߴ���߰�߸���ߞ��ߦ���߾�������׹�ߥ�����
-�߷��߬�߲���߯�������ߞ��߫���߶߸��߲�ߞߨ�������׹�߽�����
-�߼�����߶�߶�ߋ��߹����ׯѵ�߷������
-��ߦ��߫����߲��ߦ��ؓ�߸��߬�������׽������߽����
-����߯���߬�����߳���߽����׳����
-���߹��߾���߬����߲����߹��߸���߬�������߼��
-�������ߦ������ߦ����߫���،ߞ߸���߶����߶߳���߫���Ѡׯ���߹�������
-�߲��߱����ߞ߲����ױ�ߦ�����
-��߰��߼����߹������ߋ��ߺ��߫���߼���߬�߹����׬������
-����߼����߫���ߖ�ߞ߭�������ׯ���߹�������
-����ߞ߳�����߯��������ױ���߼����
-��ߞ߻���߻���ߨ����ױ���߼����
-�ؒ߰���߹�����ߨ���߶߸��߶�߭�����׬�����������
-�������߷���߾�����߹���������߲��׬������
-�����،߱�߭���߹��ߋ��ߨ����׵��߻��������
-���ߨ���ߞ��߱�߯���߲����ߵ���ߞ߻���߽���׫��߬�������
-����ߨ���߬�߮����߾����߶��ׯ������
-�����߸��ߞ߼�����ߋ�ߴ���߾���׫��߾����
-�����ߞߨ����߰�ߞߵ����׹�߽�����
-��،߫���ߋ�߲���߰��׹�߽�����
-��ؓ�߼���ߦ���߾�����߫���ޠ׹�ߥ�����
-���߰�߭�������߬�����ת��֠ש��
-���ߋ��߹����߽�ߨ���ߦ���׬���ߨ����
-���߫��ߋ�߭��ߋ��ߪ��������׫������
-����߲��߼���߾�ߞ߬�����׹�߽�����
-�ߨ������߬�����߶߸��ߪ���Ѡ׵�߳������
-�߾�߫������ߦ���߸���߲������׭��߷��߼����߯�������
-������߶�߫��߲��������׼������߷����
-���߼����߲���߲���߲����߾�ߞ߽�������׹�ߥ�����
-�ؓ�߲�����ߦ���߳��������ߞ��߶�ߋ��߲�������߶ؓ�߼�����߲�߰���׫������
-���߬��������߲���߽�߹��߫���ߦ����׭��߷��߼����߯�������
-�ؒߞߨ�������ߞ��߶߽ؒ��������ׯ������
-���߫����߫���ߦ��؍�߽�����ߨ���ߦ��߹���ߋ��ߩ����ת����߻����߬�����
-���߶�߸���ߞ߳�����߬��������߳���߫����׫��߫����
-�������ߦ��ߖ�߳���ߴ������߸������׫�������߲�����
-���߳���߽�����ߪ�����߻����׫�������߲�����
-��������߰�߯���߬������׭��߷��߼����߯�������
-�߼����߫���ߦ��߷���ߞ��߾����ߦ���ײ��������
-����߰���߷����߽����ת����߻����߬�����
-���߳����߲�߻���ׯѵ�߷������
-�����ߦ��߳���ߋ�߽�ߋ��߲������߫��������׼������߽���������
-����߲�߾�ߋ��߼�����߬����׭��߷��߼����߯�������
-���߬���߬��߼��؋߸�߷���ߨ������ߞ߼���������׺�߼��������
-����ߦ���߬����ߞ��߬����߰��߯������׹�ߥ�����
-����߶�߱���߰�ߦ���߻�����߼���߫�����׺�߼��������
-����ߞ߲��ߞ߹����׾�������߻�����������
-���ߨ�����߰�ߋ��߽��߸�߭����ߞ��߭�����׵�߭�������
-������߼����ߞ߭�����׽�����
-�ߨ���ߋ�ߴ���߭����߱���ײ��������
-����،ߦ���߻���������߰�߻������׸�߲�������
-����،ߋ��ߨ��߶�߲����ߺ���׸�߲�������
-��������ߋ��߳���߽�������ߋ��߳���׵����߯������
-����߽������ߋ��߬��ߨ����ߞ߯����߶�ߋ��߬���׹�ߥ�����
-��������߷�����߰����ׯѵ�߷������
-���߼����ߺ����ײ����߯������
-�߬����߳���ߨ������ת����߻����߬�����
-����߰�߳���߼�����������ת����߻����߬�����
-��߼����߫��߲���߶�߶�߼����ߞ߳���ײ��������
-�����߬����ߖ�߬������ײ����߯������
-���������߳��߻���߰�ߋ��߹����ߞ��ߴ���߼����״���
-����ߖ�߳���߲���߻����߸��߼�����ߞ��߸��߬���߰���ת����߻����߬�����
-���؋߹�����߲�߷����׫�������߲�����
-���߽�����߲���߻���ױ���߼����
-�߻��؋ߨ���ߋ�߼���߻����׫�������߲�����
-��؍�߸����߷��ߦ��߷������׬������
-�����߽������߰�ߨ�����߻���߲�߫������׫�������߲�����
-��،߽������߰�ߋ��߲�����߬������ׯ���߹�������
-�߻��؋ߨ���ߋ�߼����߾������߱��߻�������Ѡײ����߯������
-����߻����؋߬����߶�،ߞ߽����߷����ޠ״Ѿ�߹��������
-���߲�߻�߫����ת����߻����߬�����
-�߼��؋߬����߶��׻�������ߵ��
-����߾����߳��߲�߻�߫����ת����߻����߬�����
-�������߫���ߦ��؍�߷������߯������׫���
-��������ׯ���߹�������
-����߰��ת����߻����߬�����
-��������ߨ���߹������߼�������׫���
-���ߪ�������ߖ�߬��������߶�߷����׵ѸѺѲ�߹�������
-���؍�߾����ߋ�߷���߬��������׵����ߵ����
-�߬�����߽�ߋ��߯���߰�ߋ��ߦ����ת����߻����߬�����
-�����߼��؋߬���ߦ���߫�����߶�،߱���ߋ�߫����߷�߫�����׽����߼������
-��߷����ߖ�ߵ���ߞ߲�����߶�ߞ߼������׹�߽�����
-����߾�����߽�����ׯ���߹�������
-���ߨ����ߖ�ߞ߹�������߯�����ײ��������
-���������߳���ߖ�߰�������׽����߼������
-����ߦ���߲����������ߞ��߯�����������ߞ��߭��߶�ߪ�ߦ���߬�����׹�ߥ�����
-�����ߋ��߽������߶�ߦ���߷����׫��߽��������
-���߰��ߋ��߬���׫�������߲�����
-�߱���ߞ߳�����߯������׫�������߲�����
-����߲�����߶���ߋ��߽���߽���ׯѵ�߷������
-�߳���߬�����߷��߳����׼�߲���������
-����������߲����߲�����߹������׫��߽��������
-��������������ׯ���߹�������
-�߻��؋߳���߻����׫��߽��������
-�����߰��ߋ��߸����ׯ���߹�������
-���߼����߽�ߞ߬������׫��߽��������
-��ߦ��؍�߬�߬������ߨ��ߞ���؋ߦ��߻�����׫��߽��������
-���߯���߰�ߋ��߭��������߲��ߖ�߽����߰�߾��߬����ߨ���ߋ��߶���������߰�ߋ��߬������ߞ��ߋ��߫������߰�ߺ���߲��Ѡׯ���߹�������
-�������ߖ�߷�ߨ��߶�ߋ��߱���߰�߼������ߞ��߸���ߨ���߬��������ߋ��ߨ���߫������ߋ��ߩ�����߰�߻��������߹��߷�ߖ�߫����߷��߽������،ߴ�����ߞ��ߋ��߹�����߰�߳���߼�������Ѡׯ���߹�������
-���߶ߨ���߬�����߻���ߪ���߫���ߨ���߸����ߩ��������ߞ��ߨ���߹������߾����߫����ߨ��߾������ߋ�߯�����ߞ��߻������߲�߽�������Ѡׯ���߹�������
-���ߦ��ߨ���ߴ���߫���߲�߱���ߖ�ߋ��߳���ߨ���߶߳��߲�ߩ��������ߪ���߫���Ѡׯ���߹�������
-����߰�ߋ��߽��������ߪ���������
-���߻��؋ߨ����ߴ����ׯ���߹�������
-���߻����߬������ߦ��؍�߰�߾�����׫��߽��������
-���،ߞ߸���߬�����߽�����ײ����߯������
-�ؒ߸����߸��߲�������߰�ߦ���߾���ׯ���߹�������
-�����߳�����߹�������ׯ���߹�������
-��،߱��ߦ���߹�����ׯ���߹�������
-���ߨ���߽�߬��������߾�ߨ���߭������߶�ߦ���߶������׾�������߻�����������
-���߼��������߸���߽���߽����׫��߽��������
-���������ߨ����ߋ�߽�߱����ߞ��߹������׫������
-������ߨ���߼������ׯ���߹�������
-����߷�������ׯ���߹�������
-���߹���ߦ���߬����߬�߬�����׹�߾�����
-����߶�߭���߸����׬����ؑ�߯����
-�����ߦ���߶�����׻�ߩ��߻��߬�����
-��������߬�����߸����߭����׭��߷��߼����߯�������
-��ߨ��߲�߯��������ׯ���߹�������
-��߻��؋߽�����߾������׳����
-�ߨ������ߞ߱��������߭����߲�߷����׹�ߥ�����
-����ߋ��߻��ߞ��ߦ��ߨ���߻���ײ��������
-��߾��߸��ߋ��߹���ߨ�߾��߸��߾����׳����
-���߭�����߾�ߞ߫����׽�����،߬���߬�����
-��߷���߱�߲�����׺�߼��������
-�����߲�߾����ײ������
-�߬����߯��������ׯ���߹�������
-�߯������ߖ�ߞ߬��߰�߼�����������׾ѯ�߷������
-��߻����؋߷���ߋ�߽�߫��߫���ׯ���߹�������
-���������،߸���ߺ�����߹��߬���߼������׳����
-��،߾������ߋ��߭�����ׯ���߹�������
-�ؒ߾�߰������ׯ���߹�������
-�߭�����ߋ��߼���߭����߰��߰�ߋ��߯�����׼����߽���������
-�߬����߬����߹���ߞ߸��߱����ߺ����������ׯ������
-����ߞ߳���߹�����߬��������׹�ߥ�����
-�����߽������ߋ��ߺ����׹�ߥ�����
-�������ߖ�߱��߾��������߶�߭������߬�����ׯѵ�߲����������
-���߶�߭����߾������ߦ���ߺ����׹�ߥ�����
-�����ߦ��������צ���
-�߾�ߞߨ��������߫�����״��߼������
-���ߋ�߸�߻����׽�����ߞ��߽��������
-���߲����������ߖ�ߨ�����߭�����ׯѵ�ߩ��߲������
-�����������߷���߶߼����ׯѵ�ߩ��߲������
-����������׬���߫����
-��ߦ��߻��؋߳���߼���߮�����߼����ߦ���߸����߹����צ���߬��������
-����߶�߬�����ߋ�߬����߶�ؓ�߱����߬����ײ��������
-�ؒߞߵ����׹�߽�����
-��ߨ�����؋߷���ߋ�ߨ���߰���߶�ߞߨ�����׽�����ߞ��߽��������
-�������ߋ�ߋ��߯����߾�����ߪ���������
-��ߦ��߬��߲�߸������߷����ߴ����߲�߻����׭��߷��߼����߯�������
-���߯�����߽�����׹�ߥ�����
-���߯�����߼����߶��׹�ߥ�����
-�߸��ߞ߹����߻�����߽����׹�ߥ�����
-��߳���߯�����߬����߶�߫����߼�������׹�ߥ�����
-���߸��ߋ�߭�����ߋ�߶��׾Ѻ�߫�����
-����ߨ��߯�����߼����׽������
-����ߨ��߭�����߼����׽��������
-����߰�ߋ�ߦ���ߺ���׹�߽�����
-����ߪ�ߋ��ߩ�����߾����ߨ���ߋ��߫�����׵����ߵ����
-�������߹��ߺ����ׯѵ�ߩ��߲������
-����ߞ߱���߻���׭�߲��������
-��������߷�������ߋ�߯�����׹�߽�����
-����ߋ��߹����߽������ߪ���������
-����ߨ��߼����׽�����ߞ��߽��������
-�����߸������߸���߭�����߭����ׯѵ�߲����������
-���߷���߹��������߼�����߹���߽������׼�������߼����
-��ߖ�߳���������׾ѭ�ߩ��߽������
-���߼������߶���ߋ��߬������׬������߸��������
-�߾�ߞ߯���߳�������߼������׳����߳����
-��������߼�������߼�����׬�����߲������߹���߷����
-����߫�����߻���߶��׽�����ߞ��߽��������
-����ߪ�ߦ���߭�����߽����������߼��
-���߻�ߦ��߳���ߦ���ߩ�������߬�߹����׬��������߼�����߼�������
-��،߬�߹���߶�،߬����׹�߽�����
-���߽��ߺ��߽��������׵ѹ�ߴ�������
-����߻���������ߨ����߰�ߦ���߻�����߫�����׬����߮����߶���
-����߼������߱����ߦ���תѬ�߾����
-���؋ߺ��߫���ߦ�����߬����׹�ߥ�����
-�߻�߶�߾��ߋ��߫����ײ��������
-����߸���߲�ߞ߽����׹�߽�����
-�������߼�����������Ѡ׸��ߺ�����
-���߶�߻���ߞ��߼��߶�ߨ����׫��ߨ����������
-����߰�ߋ��߽���ߨ���ߞ߽�������߽���׫��߭�������
-��߷���߸���߯��߯��߯��߯��߯���׹�߽�����
-�������߶�ߋ��߬������߶�ߦ��؉�߸��ߋ��߸����ת����߻����߬�����
-�߷���ߞ߽��߼���߰�߯�����߻��������ת����߻����߬�����
-��،߽������߭�����߲���ޠײ����߯������
-�؉�߸��߫��߫���������ߞ��ߞ߲����������׽�߷������
-�߾�ߋ��߯���������������߯������߻�������ߦ���߯�������Ѡ׸��ߺ�����
-�����߰��ߨ����ߋ��߷������߸��׹�ߥ�����
-�ߨ��߽���ߋ�߷���߾���������׹�ߥ�����
-��߫���ߞ߭���߯�������׹�ߥ�����
-����؍�߭��߷���׭��߷��߼����߯�������
-����߽����߸��ߞ߳�����߲�������ׯ������
-��߲�߸����߶�،ߋ��߹����߬����׽������߽����
-��������ߋ��߽���߾���ߨ���ߋ��߬���׬�߷�������
-�������׵ѳ�߯������
-���������ߖ�߬�������߫�����߻����װ���������
-���߲��ߦ��ߴ����߶ؒ߭�����߰��װ���������
-�ؒ߱��߸����߻��߷����ޠ׬������
-�؛߳���߲�����߲�������߽�����߶�߫���߬������߳�����׸��������
-����،߾������ߪ�����߮�����׬�߽����
-����߯�������߼�����؋߻���߲�߾����״Ѿ�߹��������
-���،߸�߷���߰��߶�ߞ߲����׳����
-�����ߞ��߶�����߫���ߞ��߱��߳����ײ��������
-���߾�߫���߬���߶��߫���߬���߾��؋߾�߽��߾�ߦ��߫����߶�߶�Ѡ׵�����߽�����
-��߾��߲��߽�߻����߽��߶߾��؋߱�߻������Ѡ׵�����߽�����
-�����߱��߰���߬�����߷�߾���߹���������߲����߽������Ѡײ����߽��������
-������߬�����ߨ���ߋ��߹������׺��߽��������߬����ߩ��߶�߬��������
-������߰��߰�ߺ���߬��������������߾�����������߶����������קв�����
-���ߖ�ߞ߻��׹���������
-�����������߬�������߾�������׬���߫����
-��߶ߨ���ߦ��߶ߨ����߸���߲�ߞ߽�����׹�߽�����
-���߱����߼���ߋ�߽��߾�������߹��߷��߯����׳����
-���߼������߸��߻������߸��ߨ������׹�߽�����
-����߽���߽���߽����߶ߨ���ߦ��ߖ�߲�߭����ש����߽����
-�����߱��߲�ߵ��ߖ�ߺ�����߫����߻���������׽���������
-����ߞ߲������ߞ���؋ߦ���������ט��������ߦ���Ѡ׽���������
-��߶ߨ�����ߦ��ߋ�ߪ���������߫����߶ߨ����ߺ������ߖ�߽������׵�߼�������
-��Ґ��׫����ߨ�����
-�������ߜ����������Ѡ׶������Я��������
-��Ґ��ߨ�؍�߶�߫�������׬�������
-���؋ߦ��߲���߫���߫����߸�߹�������׽����߼������
-���߻���߶��̻�׸�����߼�������
-��Ґ������߭����߾�����׳�����߾��������
-׫���ߒ��������ߚ������ߏ�����ߋ��ߞ�����֠׫���
-�߲�߸���߫���ߴ�����ߴ�����ޠ׬����߯����
-�����ߞ��߽���ߒ������׬����߯����
-���،ߪ����߾��߳��،ߪ������׭��߷��߼����߯�������
-�؛߽�ߨ����߶�߶߼�����׭��߷��߼����߯�������
-�����߲��߽�ߋ��߹����߹��������߽��߶�،߲���ߖ�ߞ߷��������߽��������׭��߷��߼����߯�������
-����������߲���߸��׭��߷��߼����߯�������
-�����،߱������ߨ�߼��؋߹����؜��ߨ�߼��߻�߶�ߖ�ߋ��߲���׶������
-��،߼�����߭����߹��ߪ��ޠ׬����߯����
-�������ߋ��߯����ߐ�ߞߵ���߮߼�������ת����߻����߬�����
-�����҈����ߨ�҈���ߨ����ר���߬�����
-����ߖ�߫�����ޠ׬���ߨ���ߺ������߶߫��߯������߲������
-���ߋ�ߋ��߼����ߐ�ߺ������ߞ��ߪ������ײ�������߾�����߬�������ߨ������߬�����������
-����ߗ��ߑ���߼��������ߨ�����߼����ߋ���߭����������׳����ߖ�߲������ߙ��ߒ�������߾�����߬�������ߨ������߬�����������
-��ߋ��ߺ��߬������߼����߻���ߋ�߯�������ׯ�߉ћ�߽����
-�ؒ߳������ߙ��ߞ߱��߬����������׬����߫�����߯������
-�߮���߲�ߵ��߽������߳������׽����
-����ߙ��߳�����������׭�����ߨ��������
-���ߦ��߱���ߖ�߸�����׾����߼������
-���߼��߽�߫��ߺ�����ߦ��߼��߽�߫��߳���ߞ��ߦ��߼��߽�߰�߫����׵�߼�������
-�����׽�߷����
-���߻��զ���ߪ��߼������������׷ѵѼ�߽���������
-���ߨ����؋ߦ��ߞ�߲�߹��������׸�߸��������
-���߼��߾�����߸�߰�߭����߳����װ���������
-��߾�����ߦ���߳����߶�߶����������׫�����
-����߱�ߒ����Ѡ׋����
-������Ѭ������������׶���ߖ�����
-�߱���߳����߱��߸�����׶���߯����ߴ���߯�������
-��،߱��߻���ߦ���߽��߶�،߸������߫�����׽��߻�����
-�ߪ���߫�߼����߽��߫�����߷���߼�������׽��߻�����
-�������ߖ�ߋ��߽�����ߴ�����߬�������ߐ�߆���߰����߭�����׬���߬�����
-����߾��߫���߲����߭�����߷���߫�߸�߫�߼��������׭����
-�����ߊ�ߊ��߱���،߷����ޠױ����
-����ߴ���ߋ��߹������߽�����׫��߬�������߹���߻���ߋ��߻�����
-��ߋ��߲��������߫���߼���ߐ�ߦ�������ߞ����ߺ���������׵�߬��������
-�߹���ߞ߸����߻����������ߖ�ߋ��߹�����׫��ߺ������߬������߽����
-��ߦ��߷���ߞ߲���ߐ�ߦ���߰����׸�������
-�ؓ�߲����ߦ���߻���׭��߷��߼����߯�������
-���߶ߺ���ߨ�����ߨ��ߦ���߳����׭��߷��߼����߯�������
-����ߞ߲�����ߨ����߶߭�������߲������׭��߷��߼����߯�������
-�����،߬����߫���ߋ�߼�����ߋ��߭���ߦ��؍�߰��׳��ߥ��������
-�����߶�߾���߰���߫���߶�،߰����׳����ߴ�������
-��ߵ���߫�����߽������׽�����ߴ����
-ر���ߨ�ߞ��ߝ��ߒ����߭���ޠ׫��������߻�
-��������ߍ�������ߋ�ߜ�����ߞ�ߚ����ߞ�������׸��ߋ���
-�������ߑ��߬�������׵�߽����
-���߫����߸���߸�������׺������
-��߫���ߋ��߭����߭���ߙ��ߞ�߾���������ײ����߯������
-�߈��ߛ��������߶߈��ߍ����������׫��߬������
-���߼����������ߨ��ߵ���߭�����׽������߽����
-�����߾���߸����߷����׹����߽�����
-���ҋ��ҋ��ߴ�ߝ���ߝ����׫��߬�������߯��������
-�����ߖ�߈�����ߐ�ߋ��߆�����׫��߬�������߯��������
-�������Ҳ������Ҳ������Ҳ���״����ߴ�����
-�����������߬����ߞ��߽�������Ѡׯ�ߵ�߷������
-����������߷�߳�����߷�߲����ߪ�߶�߻������װ���������
-�߯�����ߩ������߽������߲����ߞ߯�����߹����׻����߬���������
-����ߛ��؋ߗ���ߞ��ߝ������ߖ�߶�����ߌ�ߋ���ߗ���ߋ�ߌ�������ߋ����׫��߫�����
-��،߼������߲�ߋ�߽����ߒ�߽�����߾������Ѡש��ߛ��߸�����
-�ߝ������ߖ�ߒ�������ߜ����߶ؒߐ���׫��߭�������
-�����߸����߷��ޠ׫��߭�������
-�����ߋ���ߖ�ߋ��ߝ���ߑ���׫��߭�������
-����ߒ�߆���ߌ��������ߞ��߶߈���ߋ����ߖ��׭��߷��߼����߯�������
-����߲����߬����߆���߬����׳�����
-�ߝ������ߖ�ߒ�������ߜ����߶ؒߐ���׫��߭�������
-�����߸����߷��ޠ׫��߭�������
-�����ߋ���ߖ�ߋ��ߝ���ߑ���׫��߭�������
-����߲����߬����߆���߬����׳�����
-����ߞ����ߓ���ߞ߬���������ߓ��ߛ����ߘ��ߔ������׭��߷��߼����߯�������
-�����������߭ѶѯѠ׭��߷��߼����߯�������
-���؋ߦ��ߨ���ߦ��߱����߲��߷���߻����߽���߸����׼������߽���������
-������߱����߳�����߱�ұ������ߙ���߱�߷�������׸����߽��������
-�؛ߝ�߬���ߞ��ߨ���ߖ�߶߈��ߖ�߳ѾѠ׫��߲����ߞ��ߋ��߯�����
-��،ߪ�����������߫���߼�������߲����ߦ��߹���ײ����
-��߽�������ߞ��߯�������ׯ���������߲�߬������ߞ��߱�������ױ������֠׸����߽��������
-���߲�߶�����߬���߳��،߫���߬����������߫������߰�ߦ��ߦ��߾���������ߋ��߯�������׸����߽��������
-��ߦ��߷���߬��߲������ߐ�߬�������������ߐ�߾��������������ߖ�ߦ���߹������׸����߽��������
-�����ߞ߳��������ߖ�߆���߷����׸����߽��������
-�����ߦ��؍�ߨ�������ׯ����߻���������ߖ�߯�����߯�����߯����
-����߬�������߫���������ߞ��߾�������׸����߽��������
-����߼������߭�����ߦ���ߦ���߼������߹��ߦ���ߞ��ߵ���߳���߾��߰����߼������ߖ�ߨ���߽����ߦ���׸����߽��������
-����߫���߱���،ߞ߻���߸���ߨ��������׫��߽�������
-����߯����߫����߹����߬�߻����������߹���߰����׸����߽��������
-���߹������ߐ�߯����߈��߶������������߲�����׹����߷�������
-�߈��ߚ������ߋ�ߓ����ߑ��ߋ�ߍ����ׯ��������߾�߬��������������
-�ߒ������ߋ�ߘ��ߋ��ߗ����ߐ�߈���ߛ���ߝ�����߈����׺�߳�������
-��ߝ���ߋ�ߋ��ߍ���ߙ���ߊ����߈����߆��ߜ����׹����߾�����
-��،ߕ���ߋ��߈��ߋ���ߌ����ߖ�ߛ����׽����ߋ�߬�����
-���߹���߲�ߨ���߶�������׫��߳���߽�������
-�ߊ���ߋ�ߝ�ߝ����ߞ��ߌ������ߝ��ߑ��߶ߛ���ߖ�ߝ�����ײ���߳��
-����߈���ߛ��߮����������ߔ�����ߊ�ߛ��ߛ��߽�����ߞ���������߬��ߖ���߻����ߛ��ߝ�����߈�ߌ��ߖ���ר��ߌ���߷������
-����ߛ��߬�������ߌ�������ߛ��߳�����ר��ߌ���߷������
-����߾�����߈���ߛ��߳����߰����ר��߬���߷������
-���ߓ���߯���������߈�����׸����߽��������
-������ߒ����ߐ��ߐ�ߑ�������ߓ���ߖ�ߍ������ߜ����׸����߽��������
-�������ߗ��ߚ�������ׯ�����߼�������
-�����،ߐ���ߒ����ߋ�ߒ���ߑ��ߍ���������׾�����߲�������
-���ߌ������ߏ�����ߋ���߶�����ߋ���ߗ�،ߑ��ߋ��ߐ���ߐ��ߙ������ߙ���ߋ��ߌ���ת����߻����߬�����
-���߈��ߌ���������ߒ��ߘ����߅��ߔ������ױ���߷�����
-����ߖ�߆��؍�߈����ߞ����ߋ��ߘ����ߵ�ߵ�ߞ�ߋ��ߝ�����ߐ�ߋ��ߌ���׭������߻�������
-����ߐ�ߝ����߳��،ߏ���ߖ�ߗ����ׯѵ�߷������
-����ߞ�ߋ�����ߒ�߈���Ҍ�����ߞ����ׯѵ�߷������
-��ߖ�ߋ��ߖ��������ߜ��������ߌ�����׹����߷�������
-����ߚߐ��������ߚߋ���ߏ����������ׯ�����
-�������ߐ�ߞߍ������߈�������ߒ��������ߜ�������׾߼����
-������ߋ��ߏ���ߐ�ߋ��ߜ����ߖ�ߌ����ߖ�،ߜ�����������ߖ�ߑ���ׯ����߷�������
-����������،ߙ�����ߙ���ߏ���������ש��ߛ��߸����߸���������
-���ߋ���ߙ��ߋ�����ߖ�ߐ����׵�߷�����
-����،ߋ��ߏ�����߆��߈���،ߋ��ߌ������׭��߷��߼����߯�������
-��߫����߶�߱�߸�����߶�߫��߷�����ߦ��ߴ���߶�،߰����߼��߱��߽�߫�������׸����߽��������
-�������������ߖ�ߞ��ߋ���ߘ������׹����ߥ�����
-�߳���ߦ���߶ߨ���ߴ���ߦ��߳����׫����ߖ�߹��������
-������߶ߌ���ߑ�����ߜ������߈���ߚ����������ײ�����߽�����
-����ߖ�ߞߗ����������ߗ��ߒ�����ߖ�ߞߘ����׫��߭�������
-���ߖ�،ߙ�����߈���ߗ�������ߞ��ߗ�������ߐ�ߜ���������ײ�������
-��ߖ�߈����؋ߙ��ߝ��ߓ����߈�؛ߗ���ߑ�ߓ���ߞ�ߞ���׫��ߪ��������
-�����،ߑ�߈��߆��ߜ��ߍ���ߐ�ߞ�ߚ����������׸�����߸��������
-�ߓ���ߋ�߈����ߋ���߶ߙ���ߓ���߶ߛ�ߌ���������׼���߼�������
-���߶ߗ���ߚ���������ߓ�����ߋ���ߚ���������ߚ����׻���߯������
-�����ߐ�ߜ�����������ߞ��ߋ��ߌ������߲�ߌ������ߖ�߈�������ߑ�����ߜ��������ײ�������
-��،ߊ����ߜ���ߋ���ߐ���߆��ߞ��߶ߔ����״���߽����
-��������ߘ����ߙ������ߓ����ߐ�ߓ�����ߐ����׽����ߺ���߯����
-�؉�ߝ��������ߝ�����ߞ߉���������ߌ����ߋ��ߐ���ߒ���߶ؒߚ�����ߖ�ߙ���ߞ������߶؉�ߔ�����ߒ������ײ���ߥ����������
+361
+If You Want Something Done You Have to Do It Yourself_(Highlander II)
+I Live the Life They Wish They Did_(Tricky)
+Jesus Built My Hotrod_(Ministry)
+Nurture Another Mind, Before Yours Expires_(Arrested Development)
+Hmm, It *Does* Go Well With the Chicken_(Beastie Boys)
+We Can Dance Like Iggy Pop_(Red Hot Chili Peppers)
+It's So Lonely When You Don't Even Know Yourself_(Red Hot Chili Peppers)
+Do the Dog On the Ground_(Red Hot Chili Peppers)
+Don't Push Me, Cause I'm Close to the Edge_(Tricky)
+Don't Push Me, Cause I'm Close to the Edge_(Grandmaster Flash)
+Bum Stikkie Di Bum Stikkie Di Bum Stikkie Di Bum_(R. Slijngaard)
+She's Not Bad, She's Just Genetically Mean_(Captain Beefheart)
+Being Great is Not So Good_(Red Hot Chili Peppers)
+If Life Seems Jolly Rotten, There's Something You've Forgotten !_(Monty Python)
+Your Proposal is Accepted_(Men In Black)
+Don't Grumble, Give a Whistle !_(Monty Python)
+Stop Drinking My Beer !_(The Amps)
+I Calculate My Birthright_(P.J. Harvey)
+You Should Sleep Late Man, It's Much Easier On Your Constitution_(Beastie Boys)
+You're Insignificant_(Tricky)
+Check Your Output_(P. Ahlstrom)
+What Kind Of Guru are You, Anyway ?_(F. Zappa)
+I Had So Many Problem, and Then I Got Me a Walkman_(F. Black)
+I Caught It In the Face_(P.J. Harvey)
+If You Touch Me, You'll Get Shocked_(Beastie Boys)
+This Puke Stinks Like Beer_(LIVE)
+Art For Arts Sake, Money For Gods Sake_(10 CC)
+A Man Needs a Maid_(N. Young)
+No One Could Foresee the End That Came So Fast_(Slayer)
+Stay Cool, This is a Robbery_(Pulp Fiction)
+With a Little Penknife_(Nick Cave)
+In a Deep Deep Well_(Nick Cave)
+I'm Only Faking When I Get It Right_(Soundgarden)
+Sisters Have Always Fascinated Me_(Speech)
+There's No Room For the Weak_(Joy Division)
+All Work and No Play Makes Jack a Dull Boy_(The Shining)
+They Were So Quiet About It_(Pixies)
+Never Get a Chance to Kick Ass_(The Amps)
+Yeah, a Wuzz, Or a Jerk_(F. Black)
+It's Time to Move On_(F. Black)
+It'll Cure Your Asthma Too !_(F. Zappa)
+Out Of Register Space (Ugh)_(Vi)
+May the Force Be With You_(Star Wars)
+You Try to Run the Universe_(Tricky)
+This May Come As a Shock_(F. Black)
+I Wonder, Should I Get Up..._(J. Lennon)
+I Am Testing Your Grey Matter_(Red Hot Chili Peppers)
+Insane In Tha Membrane_(Cypress Hill)
+You Could Make More Money As a Butcher_(F. Zappa)
+I'll Master Your Language, and In the Meantime I'll Create My Own_(Tricky)
+The Stingrays Must Be Fat This Year_(Red Hot Chili Peppers)
+I'm a Wishbone and I'm Breaking_(Pixies)
+You Think That You're Bigger When You Fill the Void_(Urban Dance Squad)
+And It Goes a Little Something Like This_(Tag Team)
+Kissing You is Like Kissing Gravel_(Throwing Muses)
+You Look Better Upside Down_(Throwing Muses)
+Lunatics On Pogo Sticks_(Red Hot Chili Peppers)
+I Could Take You Home and Abuse You_(Magnapop)
+Move Over Hogey Bear_(Urban Dance Squad)
+You Leave Me Dry_(P.J. Harvey)
+Would You Like to Be the Monster Tonight ?_(Captain Beefheart)
+Meet Me At the Coffee Shop_(Red Hot Chili Peppers)
+She Says She Can't Go Home Without a Chaperone_(E. Costello)
+Keep Your Shoes and Socks On, People_(F. Zappa)
+What If None Of Your Dreams Come True ?_(E. Costello)
+Give a Man a Fish_(Arrested Development)
+The Wheels On the Bus Go Round and Round_(J. Richman)
+I Want to Know Right Now_(Meatloaf)
+What's Your Definition Of Dirty ?_(G. Michael)
+Here's the Way It Might End_(G. Michael)
+Breaking the Law, Breaking the Law_(Judas Priest)
+Just Because the Sun Wants a Place In the Sky_(F. Zappa)
+Baseball Heroes Only_(P.J. Harvey)
+One Cross Each_(Monty Python)
+I Snipe Like Wesley_(Urban Dance Squad)
+Hold On Like Cliffhanger_(Urban Dance Squad)
+It Costs Too Much If It Costs a Lot_(Magnapop)
+Every Sperm is Sacred_(Monty Python)
+Everybody Lie Down On the Floor and Keep Calm_(KLF)
+Love is Like Moby Dick, Get Chewed and Get Spat Out_(Urban Dance Squad)
+Don't Follow Me Home_(Throwing Muses)
+All Beauty Must Die_(Nick Cave)
+I Don't Want to Calm Down_(Throwing Muses)
+We're Gonna Hit You Harder_(Scoter)
+Shake Barrels Of Whisky Down My Throat_(Throwing Muses)
+It's Because Of the Metric System_(Pulp Fiction)
+I Don't Want to Catch Anybody Not Drinking._(Monty Python)
+This Doesn't Suck, It's a Black Hole !_(K.A. Feenstra)
+Let Me Do This_(Urban Dance Squad)
+I Can't Shake It_(Dinosaur Jr)
+Once Again Let Me Do This_(Urban Dance Squad)
+Pretend That You're Hercule Poirot_(TeX)
+Exactly_(Pulp Fiction)
+Sort Of_(Urban Dance Squad)
+Proceed, With Fingers Crossed_(TeX)
+The Universe is Somewhere In Here_(J.G.E.M. Fraaije)
+You're About to Hurt Somebody_(Jazzy Jeff)
+I Should Be the Pimp Of the Year_(Urban Dance Squad)
+Jesus Can't Save You, Though It's Nice to Think He Tried_(Black Crowes)
+My Heart is Just a Muscle In a Cavity_(F. Black)
+Step Aside, Butch_(Pulp Fiction)
+The World is a Friendly Place_(Magnapop)
+Sometimes Life is Obscene_(Black Crowes)
+Take Your Medications and Preparations and Ram It Up Your Snout_(F. Zappa)
+Count the Bubbles In Your Hair_(The Breeders)
+You Own the Sun_(Throwing Muses)
+I Need a Little Poison_(Throwing Muses)
+Ease Myself Into the Body Bag_(P.J. Harvey)
+A Lady Shaves Her Legs_(C. Meijering)
+Motherhood Means Mental Freeze_(The Breeders)
+Correctomundo_(Pulp Fiction)
+I Don't Like Dirt_(The Breeders)
+Bring Out the Gimp_(Pulp Fiction)
+You Could Be a Shadow_(The Breeders)
+If You're So Special Why aren't You Dead ?_(The Breeders)
+The Path Of the Righteous Man is Beset On All Sides With the Iniquities Of the Selfish and the Tyranny Of Evil Men._(Pulp Fiction)
+Blessed is He Who In the Name Of Charity and Good Will Shepherds the Weak Through the Valley Of Darkness, For He is Truly His Brother's Keeper and the Finder Of Lost Children._(Pulp Fiction)
+And I Will Strike Down Upon Thee With Great Vengeance and With Furious Anger Those Who Attempt to Poison and Destroy My Brothers._(Pulp Fiction)
+And You Will Know That My Name is the Lord When I Lay My Vengeance Upon Thee._(Pulp Fiction)
+Step On the Brakes_(2 Unlimited)
+You Don't Wanna Know_(Pulp Fiction)
+You Dirty Switch, You're On Again_(The Breeders)
+She's a Good Sheila Bruce_(Monty Python)
+I'm Gonna Get Medieval On Your Ass_(Pulp Fiction)
+Three Little Fonzies_(Pulp Fiction)
+It's Not Your Fault_(Pulp Fiction)
+You Will Be Surprised At What Resides In Your Inside_(Arrested Development)
+The Carpenter Goes Bang Bang_(The Breeders)
+Everybody Wants to Be Naked and Famous_(Tricky)
+Royale With Cheese_(Pulp Fiction)
+Shit Happens_(Pulp Fiction)
+You Fill Your Space So Sweet_(F. Apple)
+Push It Real Good_(Salt 'n' Pepa)
+Check Your Input_(D. Van Der Spoel)
+Catholic School Girls Rule_(Red Hot Chili Peppers)
+It Was My Pleasure_(Pulp Fiction)
+We Don't Bother Anyone_(LIVE)
+I Wrapped a Newspaper Round My Head_(F. Zappa)
+Kick the Dog and You Will Die_(Magnapop)
+We All Get the Flu, We All Get Aids_(LIVE)
+One Ripple At a Time_(Bianca's Smut Shack)
+We Have No Money_(E. Clementi)
+Carry Me Away_(Motors)
+I Solve Problems_(Pulp Fiction)
+A Protein is a Set Of Coordinates_(A.P. Heiner)
+It Doesn't Have to Be Tip Top_(Pulp Fiction)
+Everybody's Good Enough For Some Change_(LIVE)
+It's Against the Rules_(Pulp Fiction)
+I'm An Oakman_(Pulp Fiction)
+I Ripped the Cord Right Out Of the Phone_(Capt. Beefheart)
+I Smell Smoke From a Gun Named Extinction_(Pixies)
+With a Lead Filled Snowshoe_(F. Zappa)
+Right Between the Eyes_(F. Zappa)
+BioBeat is Not Available In Regular Shops_(P.J. Meulenhoff)
+Rub It Right Accross Your Eyes_(F. Zappa)
+Shake Yourself_(YES)
+I Am a Wonderful Thing_(Kid Creole)
+Way to Go Dude_(Beavis and Butthead)
+The Microsecond is Within Reach_(P.J. Van Maaren)
+Microsecond Here I Come_(P.J. Van Maaren)
+Confirmed_(Star Trek)
+If You Don't Like Cool Quotes Check Your GMXRC File_(Your Sysadmin)
+When It Starts to Start It'll Never Stop_(Magnapop)
+I'm a Jerk_(F. Black)
+It Wouldn't Hurt to Wipe Once In a While_(Beavis and Butthead)
+Welcome to the Power Age_(2 Unlimited)
+If You See Me Getting High, Knock Me Down_(Red Hot Chili Peppers)
+The Poodle Bites_(F. Zappa)
+The Poodle Chews It_(F. Zappa)
+I Got a Forty Dollar Bill_(F. Zappa)
+We Look Pretty Sharp In These Clothes_(F. Zappa)
+You Got to Relate to It_(A.E. Torda)
+That Was Pretty Cool_(Beavis)
+That Was Really Cool_(Butthead)
+Hang On to Your Ego_(F. Black)
+Pump Up the Volume Along With the Tempo_(Jazzy Jeff)
+Ramones For Ever_(P.J. Van Maaren)
+Have a Nice Day_(R. McDonald)
+Whatever Happened to Pong ?_(F. Black)
+Make the Floor Burn_(2 Unlimited)
+That Was Cool_(Beavis and Butthead)
+These Gromacs Guys Really Rock_(P.J. Meulenhoff)
+You Hear Footsteps Coming From Behind_(Colossal Cave)
+It is Lunchtime_(A.R. Van Buuren)
+You Crashed Into the Swamps_(Silicon Graphics)
+I Am a Poor Lonesome Cowboy_(Lucky Luke)
+Clickety Clickety Click_(System Manager From Hell)
+Been There, Done It_(Beavis and Butthead)
+Load Up Your Rubber Bullets_(10 CC)
+How Do You Like Your Vacation So Far ?_(Speed 2 - Cruise Control)
+It's So Fast It's Slow_(F. Black)
+Ich Bin Ein Berliner_(J.F. Kennedy)
+Take Dehydrated Water On Your Desert Trips_(Space Quest III)
+Your Country Needs YOU_(U.S. Army)
+Don't Eat That Yellow Snow_(F. Zappa)
+I Do It All the Time_(Magnapop)
+Just Give Me a Blip_(F. Black)
+Garbage Collecting..._(GNU Emacs)
+Cut It Deep and Cut It Wide_(The Walkabouts)
+Beat On the Brat With a Baseball Bat_(The Ramones)
+My Head Goes Pop Pop Pop Pop Pop_(F. Black)
+Hangout In the Suburbs If You've Got the Guts_(Urban Dance Squad)
+I Have a Bad Case Of Purple Diarrhea_(Urban Dance Squad)
+It's Bicycle Repair Man !_(Monty Python)
+I've Got Two Turntables and a Microphone_(B. Hansen)
+I Am the Psychotherapist. Please, Describe Your Problems._(GNU Emacs)
+Watch Out Where the Huskies Go_(F. Zappa)
+I Was Born to Have Adventure_(F. Zappa)
+Is That a Real Poncho ?_(F. Zappa)
+They're Red Hot_(Red Hot Chili Peppers)
+Your Bones Got a Little Machine_(Pixies)
+Oh My God ! It's the Funky Shit_(Beastie Boys)
+Throwing the Baby Away With the SPC_(S. Hayward)
+Engage_(J.L. Picard)
+Everybody is Smashing Things Down_(Offspring)
+Hey Man You Know, I'm Really OK_(Offspring)
+I'm Not Gonna Die Here !_(Sphere)
+I'd Like Monday Mornings Better If They Started Later_(Garfield)
+Here's Another Useful Quote_(S. Boot)
+Wild Pointers Couldn't Drag Me Away_(K.A. Feenstra)
+Let's Go Hang Out In a Mall_(LIVE)
+These are Ideas, They are Not Lies_(Magnapop)
+Bad As This Shit Is, This Shit Ain't As Bad As You Think It Is._(Jackie Brown)
+My Ass May Be Dumb, But I Ain't No Dumbass._(Jackie Brown)
+Jesus Not Only Saves, He Also Frequently Makes Backups._(Myron Bradshaw)
+Player Sleeps With the Fishes_(Ein Bekanntes Spiel Von ID Software)
+Bailed Out Of Edge Synchronization After 10,000 Iterations_(X/Motif)
+God is a DJ_(Faithless)
+Encountered Subspace Anomaly_(Star Trek)
+If I Were You I Would Give Me a Break_(F. Black)
+She Needs Cash to Buy Aspirine For Her Pain_(LIVE)
+Got Coffee, Got Donuts, Got Wasted_(F. Black)
+Boom Boom Boom Boom, I Want You in My Room_(Venga Boys)
+Right Now My Job is Eating These Doughnuts_(Bodycount)
+Wait a Minute, aren't You.... ? (gunshots) Yeah._(Bodycount)
+If I Wanted You to Understand This, I Would Explain it Better_(J. Cruijff)
+Uh-oh_(Tinky Winky)
+Uh-oh, We're In Trouble_(Shampoo)
+Can't You Make This Thing Go Faster ?_(Black Crowes)
+Get Down In 3D_(George Clinton)
+Uh-oh .... Right Again_(Laurie Anderson)
+(That makes 100 errors; please try again.)_(TeX)
+O My God, They Killed Kenny !_(South Park)
+Drugs are Bad, mmokay_(South Park)
+Let's Unzip And Let's Unfold_(Red Hot Chili Peppers)
+I'd Be Water If I Could_(Red Hot Chili Peppers)
+Space May Be the Final Frontier, But It's Made in a Hollywood Basement_(Red Hot Chili Peppers)
+Everything Must Go_(Red Hot Chili Peppers)
+There's Nothing We Can't Fix, 'coz We Can Do It in the Mix_(Indeep)
+It's Coming Right For Us !_(South Park)
+Disturb the Peace of a John Q Citizen_(Urban Dance Squad)
+Wicky-wicky Wa-wild West_(Will Smith)
+This is Tense !_(Star Wars Episode I The Phantom Menace)
+Fly to the Court of England and Unfold_(Macbeth, Act 3, Scene 6, William Shakespeare)
+Why, how now, Claudio ! Whence Comes this Restraint ?_(Lucio in Measure for measure, Act 1, Scene 4, William Shakespeare)
+In the End Science Comes Down to Praying_(P. v.d. Berg)
+I'm Looking for a New Simulation_(Stone Temple Pilots)
+I Quit My Job Blowing Leaves_(Beck)
+Live for Liposuction_(Robbie Williams)
+All You Need is Greed_(Aztec Camera)
+You Can Be Too Early, You Can Be Too Late and You Can Be On Time_(J. Cruijff)
+RTFM_(B. Hess)
+Why Do *You* Use Constraints ?_(H.J.C. Berendsen)
+Why Weren't You at My Funeral ?_(G. Groenhof)
+You Can Always Go On Ricky Lake_(Offspring)
+As Always Your Logic Is Impeccable_(Tuvok)
+set: No match._(tcsh)
+AH ....Satisfaction_(IRIX imapd)
+I Need Love, Not Games_(Iggy Pop & Kate Pierson)
+It's Not Dark Yet, But It's Getting There_(Bob Dylan)
+I Used To Care, But Things Have Changed_(Bob Dylan)
+Working in the Burger Kings, Spitting on your Onion Rings_(Slim Shady)
+Does All This Money Really Have To Go To Charity ?_(Rick)
+Yeah, uh uh, Neil's Head !_(Neil)
+In the Meantime, Take Care of Yourself aaand Eachother_(J. Springer)
+I Feel a Great Disturbance in the Force_(The Emperor Strikes Back)
+Do You Have a Mind of Your Own ?_(Garbage)
+I'll Match Your DNA_(Red Hot Chili Peppers)
+All I Ever Wanted Was Your Life_(Red Hot Chili Peppers)
+Just a Minute While I Reinvent Myself_(Red Hot Chili Peppers)
+There's Still Time to Change the Rope You're On_(Led Zeppelin)
+Baby, It Aint Over Till It's Over_(Lenny Kravitz)
+It Just Tastes Better_(Burger King)
+'Nay. We are but men.' Rock!_(Tenacious D)
+Cowardly refusing to create an empty archive_(GNU tar)
+Shaken, not Stirred_(J. Bond)
+Oh, There Goes Gravity_(Eminem)
+Is This the Right Room for an Argument ?_(Monty Python)
+I was detained, I was restrained_(The Smiths)
+The Candlelight Was Just Right_(Beastie Boys)
+Fresh Air, Green Hair_(Frank Black)
+Rat-tat-tat Ka boom boom_(The Smashing Pumpkins)
+Youth is wasted on the young_(The Smashing Pumpkins)
+Miggida-Miggida-Miggida-Mac_(Kriss Kross)
+Interfacing Space and Beyond..._(P. J. Harvey)
+Everything He Lacks, He Makes Up In Denial_(Offspring)
+A Pretty Village Burning Makes a Pretty Fire_(David Sandstrom)
+They don't have any beavers in India, so they have to simulate them_(The Tubes)
+It's Calling Me to Break my Bonds, Again..._(Van der Graaf)
+I believe in miracles cause I'm one_(The Ramones)
+Gabba Gabba Hey!_(The Ramones)
+Shoot them in the back now_(The Ramones)
+Read me your scripture and I will twist it_(Red Hot Chili Peppers)
+Good Music Saves your Soul_(Lemmy)
+I believe in miracles cause I'm one_(The Ramones)
+Gabba Gabba Hey!_(The Ramones)
+Good Music Saves your Soul_(Lemmy)
+Move about like a Scientist, lay down, get kissed_(Red Hot Chili Peppars)
+California, R.I.P._(Red Hot Chili Peppars)
+Don't You Wish You Never Met Her, Dirty Blue Gene?_(Captain Beefheart)
+Nobody Never Learnt No-Nothing from No History_(Gogol Bordello)
+I'd be Safe and Warm if I was in L.A._(The Mamas and the Papas)
+It's Unacceptable That Choclate Makes You Fat_(MI 3)
+My Brothers are Protons (Protons!), My Sisters are Neurons (Neurons)_(Gogol Bordello)
+Put Me Inside SSC, Let's Test Superstring Theory, Oh Yoi Yoi Accelerate the Protons_(Gogol Bordello)
+Do You Have Sex Maniacs or Schizophrenics or Astrophysicists in Your Family?_(Gogol Bordello)
+Screw a Lightbulb in your Head_(Gogol Bordello)
+Alas, You're Welcome_(Prof. Dumbledore in Potter Puppet Pals)
+Your Shopping Techniques are Amazing_(Gogol Bordello)
+Your Country Raised You, Your Country Fed You, and Just Like Any Other Country it Will Break You_(Gogol Bordello)
+What They Need's a Damn Good Whacking_(The Beatles)
+They Paint Their Faces So Differently From Ours_(Gogol Bordello)
+The Feeling of Power was Intoxicating, Magic_(Frida Hyvonen)
+I was elected to lead, not to read_(President A. Schwarzenegger)
+I managed to get two hours of work done before work_(E. Lindahl)
+Go back to the rock from under which you came_(Fiona Apple)
+It's just the way this stuff is done_(Built to Spill)
+You Fill Me With Inertia_(The Long Blondes)
+I used to be blond and stupid, but now I dyed it black_(Miss Li)
+Aber wenn der Quarterback kommt, um dir die Brille abzunehmen Sag ihm: Danke die bleibt wo sie ist_(Wir sind Helden)
+Jede der Scherben spiegelt das Licht_(Wir sind Helden)
+Ohne Arbeit wird das Leben Oede_(Wir Sind Helden)
+Act like Prometheus would_(Gogol Bordello)
+Making merry out of nothing, like in refugee camp_(Gogol Bordello)
+History has expired_(PubMed Central)
+There's only music to make new ringtones_(Arctic Monkeys)
+Can someone please tell Icarus that he's not the only one falling from the sky?_(Urban Dance Squad)
+Ich war schwanger, mir gings zum kotzen_(Nina Hagen)
+What if you're wrong about the great Ju Ju at the bottom of the sea?_(Richard Dawkins)
+Come on boys, Let's push it hard_(P.J. Harvey)
+Look at these, my work-strong arms_(P.J. Harvey)
+Is it the invisible chemistry stuff?_(Frida Hyvonen)
+Nada e organico, e tudo programado_(Pitty)
+Sitting on a rooftop watching molecules collide_(A Camp)
+Though the path of the comet is sure, it's constitution is not_(Peter Hammill)
+Everything's formed from particles_(Van der Graaf Generator)
+The time for theory is over_(J. Hajdu)
+What's the point, yo, what's the spread?_(Red Hot Chili Peppers)
+If There Is No Guitar In The House, You Know It's Owner Can Not Be Trusted_(Gogol Bordello)
+Carbohydrates is all they groove_(Frank Zappa)
+Never, I said never, compare with experiment_(Magnus Bergh)
+Suzy is a headbanger, her mother is a geek_(The Ramones)
+Now it's filled with hundreds and hundreds of chemicals_(Midlake)
+If it weren't for bad luck, we'd have no luck at all_(The Unthanks)
+There's no way you can rely on an experiment_(Gerrit Groenhof)
+I like to wait, then I feel like I do something_(Carl Caleman)
+Can I have everything louder than everything else?_(Deep Purple)
+He's using code that only you and I know_(Kate Bush)
+Chemical gases filling lungs of little ones_(Black Eyed Peas)
+I've basically become a vegetarian since the only meat I'm eating is from animals I've killed myself_(Mark Zuckerberg)
+Years of calculations and the stress, My science is waiting, nearly complete_(Midlake)
diff --git a/src/contrib/addquote.c b/src/contrib/addquote.c
deleted file mode 100644 (file)
index ea58878..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 
- *                This source code is part of
- * 
- *                 G   R   O   M   A   C   S
- * 
- *          GROningen MAchine for Chemical Simulations
- * 
- *                        VERSION 3.3.99_development_20071104
- * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2006, The GROMACS development team,
- * check out http://www.gromacs.org for more information.
-
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * If you want to redistribute modifications, please consider that
- * scientific software is very special. Version control is crucial -
- * bugs must be traceable. We will be happy to consider code for
- * inclusion in the official distribution, but derived work must not
- * be called official GROMACS. Details are found in the README & COPYING
- * files - if they are missing, get the official version at www.gromacs.org.
- * 
- * To help us fund GROMACS development, we humbly ask that you cite
- * the papers on the package - you can find them in the top README file.
- * 
- * For more info, check our website at http://www.gromacs.org
- * 
- * And Hey:
- * Groningen Machine for Chemical Simulation
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <ctype.h>
-#include <string.h>
-#include "strdb.h"
-#include "copyrite.h"
-#include "smalloc.h"
-
-void add_quote(char *q)
-{
-  FILE *fp;
-  int  i,n;
-  char **str = NULL;
-  char *db   = "gurgle.dat";
-  
-  n = get_strings(db,&str);
-  srenew(str,n+1);
-  snew(str[n],strlen(q)+1);
-  for(i=0; (i<strlen(q)); i++)
-    str[n][i] = ~q[i];
-  str[n][i] = '\0';
-  n++;
-  fp = fopen(db,"w");
-  fprintf(fp,"%d\n",n);
-  for(i=0; (i<n); i++) 
-    fprintf(fp,"%s\n",str[i]);
-  fclose(fp);
-}
-
-int main(int argc,char *argv[])
-{
-  int  i;
-  char c;
-  
-  for(i=1; (i<argc); i++) {
-    do {
-      fprintf(stderr,"Add quote '%s' (y/n)? ",argv[i]);
-      c = toupper(fgetc(stdin));
-    } while ((c != 'Y') && (c != 'N'));
-    if (c == 'Y') {
-      add_quote(argv[i]);
-    }
-  }
-  thanx(stdout);
-  
-  return 0;
-}
index b875dabb5fda5f6e41a4eec4badb9b01546ec2dd..1a9a61bb7cd2497971e8704f24229a2c1b164543 100644 (file)
@@ -152,17 +152,6 @@ void space(FILE *out, int n)
     fprintf(out, "%*s", n, "");
 }
 
-void f(char *a)
-{
-    int i;
-    int len = strlen(a);
-
-    for (i = 0; i < len; i++)
-    {
-        a[i] = ~a[i];
-    }
-}
-
 static void sp_print(FILE *out, const char *s)
 {
     int slen;
@@ -204,7 +193,6 @@ static void pukeit(const char *db, const char *defstring, char *retstring,
             help[*cqnum][STRLEN-1] = '\0';
         }
         strncpy(retstring, help[*cqnum], retsize);
-        f(retstring);
         for (i = 0; (i < nhlp); i++)
         {
             sfree(help[i]);
index 6941558aa1a81fcfb5d3820f0015a9de431e6827..9b17054dd9268bde48ee3d6ed3999f10e591998a 100644 (file)
@@ -106,7 +106,7 @@ gmx_nb_free_energy_kernel(t_nblist *                nlist,
     real *        Vv;
     real *        Vc;
     gmx_bool      bDoForces;
-    real          rcoulomb, rvdw, factor_coul, factor_vdw, sh_invrc6;
+    real          rcoulomb, rvdw, sh_invrc6;
     gmx_bool      bExactElecCutoff, bExactVdwCutoff;
     real          rcutoff, rcutoff2, rswitch, d, d2, swV3, swV4, swV5, swF2, swF3, swF4, sw, dsw, rinvcorr;
 
@@ -359,9 +359,6 @@ gmx_nb_free_energy_kernel(t_nblist *                nlist,
                     rinvV          = pow(rpinvV, 1.0/sc_r_power);
                     rV             = 1.0/rinvV;
 
-                    factor_coul    = (rC <= rcoulomb) ? 1.0 : 0.0;
-                    factor_vdw     = (rV <= rvdw)     ? 1.0 : 0.0;
-
                     if (do_tab)
                     {
                         rtC        = rC*tabscale;
@@ -377,7 +374,14 @@ gmx_nb_free_energy_kernel(t_nblist *                nlist,
                         n1V        = tab_elemsize*n0;
                     }
 
-                    if (qq[i] != 0)
+                    /* With Ewald and soft-core we should put the cut-off on r,
+                     * not on the soft-cored rC, as the real-space and
+                     * reciprocal space contributions should (almost) cancel.
+                     */
+                    if (qq[i] != 0 &&
+                        !(bExactElecCutoff &&
+                          ((icoul != GMX_NBKERNEL_ELEC_EWALD && rC >= rcoulomb) ||
+                           (icoul == GMX_NBKERNEL_ELEC_EWALD && r >= rcoulomb))))
                     {
                         switch (icoul)
                         {
@@ -425,15 +429,10 @@ gmx_nb_free_energy_kernel(t_nblist *                nlist,
                             Vcoul[i]        *= sw;
                             FscalC[i]        = FscalC[i]*sw + Vcoul[i]*dsw;
                         }
-
-                        if (bExactElecCutoff)
-                        {
-                            FscalC[i]        = (rC < rcoulomb) ? FscalC[i] : 0.0;
-                            Vcoul[i]         = (rC < rcoulomb) ? Vcoul[i] : 0.0;
-                        }
                     }
 
-                    if ((c6[i] != 0) || (c12[i] != 0))
+                    if ((c6[i] != 0 || c12[i] != 0) &&
+                        !(bExactVdwCutoff && rV >= rvdw))
                     {
                         switch (ivdw)
                         {
@@ -517,13 +516,21 @@ gmx_nb_free_energy_kernel(t_nblist *                nlist,
 
             Fscal = 0;
 
-            if (icoul == GMX_NBKERNEL_ELEC_EWALD)
+            if (icoul == GMX_NBKERNEL_ELEC_EWALD &&
+                !(bExactElecCutoff && r >= rcoulomb))
             {
                 /* because we compute the softcore normally,
                    we have to remove the ewald short range portion. Done outside of
                    the states loop because this part doesn't depend on the scaled R */
 
-                if (r != 0)
+#ifdef GMX_DOUBLE
+                /* Relative accuracy at R_ERF_R_INACC of 3e-10 */
+#define         R_ERF_R_INACC 0.006
+#else
+                /* Relative accuracy at R_ERF_R_INACC of 2e-5 */
+#define         R_ERF_R_INACC 0.1
+#endif
+                if (ewc*r > R_ERF_R_INACC)
                 {
                     VV    = gmx_erf(ewc*r)*rinv;
                     FF    = rinv*rinv*(VV - ewc*M_2_SQRTPI*exp(-ewc*ewc*rsq));
@@ -531,7 +538,7 @@ gmx_nb_free_energy_kernel(t_nblist *                nlist,
                 else
                 {
                     VV    = ewc*M_2_SQRTPI;
-                    FF    = 0;
+                    FF    = ewc*ewc*ewc*M_2_SQRTPI*(2.0/3.0 - 0.4*ewc*ewc*rsq);
                 }
 
                 for (i = 0; i < NSTATES; i++)
index 31e8b758fbe75e8cb8a4f3e2c90da150f696be5f..35a8fc3b3383f8edb9aaa018c716ff1edd8af7a9 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -58,25 +91,41 @@ Arch       = 'avx_128_fma_double'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index a58de0c174787be25ee248910ee4661a21449988..ceb52b591ef4831c910b6d8faa0773d9c9cf2af0 100644 (file)
@@ -241,7 +241,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwCSTab_GeomW4W4_F_avx_128_fma_double;
 
 
 nb_kernel_info_t
-    kernellist_avx_128_fma_double[] =
+kernellist_avx_128_fma_double[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_avx_128_fma_double, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_avx_128_fma_double", "avx_128_fma_double", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_avx_128_fma_double, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_avx_128_fma_double", "avx_128_fma_double", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -460,6 +460,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_avx_128_fma_double_size = sizeof(kernellist_avx_128_fma_double)/sizeof(kernellist_avx_128_fma_double[0]);
+kernellist_avx_128_fma_double_size = sizeof(kernellist_avx_128_fma_double)/sizeof(kernellist_avx_128_fma_double[0]);
 
 #endif
index 8c7deae7cc4342cb0b710a48604972139c88b9d4..eac82ebf699fd5518f235a48561798d0e74a91c5 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -58,25 +91,41 @@ Arch       = 'avx_128_fma_single'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index dfc40d926119bbe94f8536f6f2e1b62b298ee48d..20add7f0a6ac5240f3314a33351baba79600e682 100644 (file)
@@ -241,7 +241,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwCSTab_GeomW4W4_F_avx_128_fma_single;
 
 
 nb_kernel_info_t
-    kernellist_avx_128_fma_single[] =
+kernellist_avx_128_fma_single[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_avx_128_fma_single, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_avx_128_fma_single", "avx_128_fma_single", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_avx_128_fma_single, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_avx_128_fma_single", "avx_128_fma_single", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -460,6 +460,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_avx_128_fma_single_size = sizeof(kernellist_avx_128_fma_single)/sizeof(kernellist_avx_128_fma_single[0]);
+kernellist_avx_128_fma_single_size = sizeof(kernellist_avx_128_fma_single)/sizeof(kernellist_avx_128_fma_single[0]);
 
 #endif
index 500f1e55dcd64106820641849590363b41f4c05a..4644e6d247e9b59e2f6dabe7438fdde0b9039ea9 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -58,25 +91,41 @@ Arch       = 'avx_256_double'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index 9fef448af5b975454c29c169fc4624a23d65f2fe..a887b3b9e4cee08d3a965722309e2c52377a7fc9 100644 (file)
@@ -241,7 +241,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwCSTab_GeomW4W4_F_avx_256_double;
 
 
 nb_kernel_info_t
-    kernellist_avx_256_double[] =
+kernellist_avx_256_double[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_avx_256_double, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_avx_256_double", "avx_256_double", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_avx_256_double, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_avx_256_double", "avx_256_double", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -460,6 +460,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_avx_256_double_size = sizeof(kernellist_avx_256_double)/sizeof(kernellist_avx_256_double[0]);
+kernellist_avx_256_double_size = sizeof(kernellist_avx_256_double)/sizeof(kernellist_avx_256_double[0]);
 
 #endif
index 06f47a5002cc9f36c5e0993501e1f4f212a86456..dc27ca638c0ca60e2aca6ddde113b8e2cc362606 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -58,25 +91,41 @@ Arch       = 'avx_256_single'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index 7d71b2ce66de5a631d42f0f51bd1615972911d08..f316f44605247bdd8188431ab415f50d2faaaecf 100644 (file)
@@ -241,7 +241,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwCSTab_GeomW4W4_F_avx_256_single;
 
 
 nb_kernel_info_t
-    kernellist_avx_256_single[] =
+kernellist_avx_256_single[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_avx_256_single, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_avx_256_single", "avx_256_single", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_avx_256_single, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_avx_256_single", "avx_256_single", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -460,6 +460,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_avx_256_single_size = sizeof(kernellist_avx_256_single)/sizeof(kernellist_avx_256_single[0]);
+kernellist_avx_256_single_size = sizeof(kernellist_avx_256_single)/sizeof(kernellist_avx_256_single[0]);
 
 #endif
index 579b49063baccb7185ac4b836eb8f800c0329bb6..3c93ddd4269b5f231cbf08aeea69bd2aeb326412 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -8,12 +41,12 @@ from gmxpreprocess import gmxpreprocess
 # "The happiest programs are programs that write other programs."
 #
 #
-# This script controls the generation of Gromacs nonbonded kernels.
+# This script controls the generation of GROMACS nonbonded kernels.
 #
 # We no longer generate kernels on-the-fly, so this file is not run
-# during a Gromacs compile - only when we need to update the kernels (=rarely).
+# during a GROMACS compile - only when we need to update the kernels (=rarely).
 #
-# To maximize performance, each combination of interactions in Gromacs
+# To maximize performance, each combination of interactions in GROMACS
 # has a separate nonbonded kernel without conditionals in the code.
 # To avoid writing hundreds of different routines for each architecture,
 # we instead use a custom preprocessor so we can encode the conditionals
@@ -58,25 +91,41 @@ Arch       = 'c'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index bddc5873d4eba690cd3369d5cf54c22f8c7312f0..23ba2990df4d02737f0ab28b357671bdefa8fe8d 100644 (file)
@@ -133,7 +133,7 @@ nb_kernel_ElecGB_VdwLJ_GeomP1P1_VF_c
         vgbsum           = 0.0;
         vvdwsum          = 0.0;
         dvdasum          = 0.0;
-        printf("inr=%d\n",inr);
+
         /* Start inner kernel loop */
         for(jidx=j_index_start; jidx<j_index_end; jidx++)
         {
@@ -197,12 +197,9 @@ nb_kernel_ElecGB_VdwLJ_GeomP1P1_VF_c
 
             FF               = Fp+Geps+2.0*Heps2;
             fgb              = gbqqfactor*FF*gbscale;
-            printf("  jnr=%d  fgb=%g\n",jnr,fgb);
             dvdatmp          = -0.5*(vgb+fgb*r00);
             dvdasum          = dvdasum + dvdatmp;
-            printf("  dvdatmp=%g\n",dvdatmp);
             dvda[jnr]        = dvdaj+dvdatmp*isaj0*isaj0;
-            printf("  dvda, jcontrib=%g\n",dvdatmp*isaj0*isaj0);
             velec            = qq00*rinv00;
             felec            = (velec*rinv00-fgb)*rinv00;
 
index 82a008c3c123dae0606b36578081c0920598f0b5..c33cadd829e9c5d5cfd2d4a4b0190a48227cdf53 100644 (file)
@@ -329,7 +329,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwBham_GeomW4W4_F_c;
 
 
 nb_kernel_info_t
-    kernellist_c[] =
+kernellist_c[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_c, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_c", "c", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_c, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_c", "c", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -636,6 +636,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_c_size = sizeof(kernellist_c)/sizeof(kernellist_c[0]);
+kernellist_c_size = sizeof(kernellist_c)/sizeof(kernellist_c[0]);
 
 #endif
index 98541ff40482c1ac3770aaa048e740be28fbc4e6..352faab684499bbae9c277c9396b06510ef51267 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -58,25 +91,41 @@ Arch       = 'sse2_double'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index bc3dd87a783d7f0c58c1ddce8957d12a7100fbdd..95a7ef2f7c29df3bd6fc166142d4872fa41ad9bc 100644 (file)
@@ -241,7 +241,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwCSTab_GeomW4W4_F_sse2_double;
 
 
 nb_kernel_info_t
-    kernellist_sse2_double[] =
+kernellist_sse2_double[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sse2_double, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sse2_double", "sse2_double", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sse2_double, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sse2_double", "sse2_double", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -460,6 +460,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_sse2_double_size = sizeof(kernellist_sse2_double)/sizeof(kernellist_sse2_double[0]);
+kernellist_sse2_double_size = sizeof(kernellist_sse2_double)/sizeof(kernellist_sse2_double[0]);
 
 #endif
index d810bde489886b2ba45cd63e6c2a7d16df3a05da..ad43b3ba6e9fe21295153592ad864d38d02aaf93 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -58,25 +91,41 @@ Arch       = 'sse2_single'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index 2a5aa767d9ab2efe9f88148c5d355dd5e8501844..ddaa369874fb1c0fc1c981d2c238668c12d63770 100644 (file)
@@ -241,7 +241,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwCSTab_GeomW4W4_F_sse2_single;
 
 
 nb_kernel_info_t
-    kernellist_sse2_single[] =
+kernellist_sse2_single[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sse2_single, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sse2_single", "sse2_single", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sse2_single, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sse2_single", "sse2_single", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -460,6 +460,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_sse2_single_size = sizeof(kernellist_sse2_single)/sizeof(kernellist_sse2_single[0]);
+kernellist_sse2_single_size = sizeof(kernellist_sse2_single)/sizeof(kernellist_sse2_single[0]);
 
 #endif
index cda34cd3b94d0ca80576cc88d87af28f63cae044..a34738ae2811c6a57077fb0461f7dc2e1e9353f5 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -58,25 +91,41 @@ Arch       = 'sse4_1_double'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index 8d02013eb83ff7d174bde75e95a442e79a4e1e33..cf5b9086093c6c9df0d5aab1e526ee37d98caee1 100644 (file)
@@ -241,7 +241,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwCSTab_GeomW4W4_F_sse4_1_double;
 
 
 nb_kernel_info_t
-    kernellist_sse4_1_double[] =
+kernellist_sse4_1_double[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sse4_1_double, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sse4_1_double", "sse4_1_double", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sse4_1_double, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sse4_1_double", "sse4_1_double", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -460,6 +460,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_sse4_1_double_size = sizeof(kernellist_sse4_1_double)/sizeof(kernellist_sse4_1_double[0]);
+kernellist_sse4_1_double_size = sizeof(kernellist_sse4_1_double)/sizeof(kernellist_sse4_1_double[0]);
 
 #endif
index d16e608f0292e75c2ff69f315fe0d1880807d4f6..f13947d29881436f8d36a305ead2bda147503d31 100755 (executable)
@@ -1,4 +1,37 @@
 #!/usr/bin/python
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# David van der Spoel, Berk Hess, Erik Lindahl, and including many
+# others, as listed in the AUTHORS file in the top-level source
+# directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org
 
 import sys
 import os
@@ -58,25 +91,41 @@ Arch       = 'sse4_1_single'
 
 FileHeader = \
 '/*\n' \
-' * Note: this file was generated by the Gromacs '+Arch+' kernel generator.\n' \
+' * This file is part of the GROMACS molecular simulation package.\n' \
 ' *\n' \
-' *                This source code is part of\n' \
+' * Copyright (c) 2012,2013, by the GROMACS development team, led by\n' \
+' * David van der Spoel, Berk Hess, Erik Lindahl, and including many\n' \
+' * others, as listed in the AUTHORS file in the top-level source\n' \
+' * directory and at http://www.gromacs.org.\n' \
 ' *\n' \
-' *                 G   R   O   M   A   C   S\n' \
+' * GROMACS is free software; you can redistribute it and/or\n' \
+' * modify it under the terms of the GNU Lesser General Public License\n' \
+' * as published by the Free Software Foundation; either version 2.1\n' \
+' * of the License, or (at your option) any later version.\n' \
 ' *\n' \
-' * Copyright (c) 2001-2012, The GROMACS Development Team\n' \
+' * GROMACS is distributed in the hope that it will be useful,\n' \
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n' \
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n' \
+' * Lesser General Public License for more details.\n' \
 ' *\n' \
-' * Gromacs is a library for molecular simulation and trajectory analysis,\n' \
-' * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for\n' \
-' * a full list of developers and information, check out http://www.gromacs.org\n' \
+' * You should have received a copy of the GNU Lesser General Public\n' \
+' * License along with GROMACS; if not, see\n' \
+' * http://www.gnu.org/licenses, or write to the Free Software Foundation,\n' \
+' * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.\n' \
 ' *\n' \
-' * This program is free software; you can redistribute it and/or modify it under\n' \
-' * the terms of the GNU Lesser General Public License as published by the Free\n' \
-' * Software Foundation; either version 2 of the License, or (at your option) any\n' \
-' * later version.\n' \
+' * If you want to redistribute modifications to GROMACS, please\n' \
+' * consider that scientific software is very special. Version\n' \
+' * control is crucial - bugs must be traceable. We will be happy to\n' \
+' * consider code for inclusion in the official distribution, but\n' \
+' * derived work must not be called official GROMACS. Details are found\n' \
+' * in the README & COPYING files - if they are missing, get the\n' \
+' * official version at http://www.gromacs.org.\n' \
 ' *\n' \
-' * To help fund GROMACS development, we humbly ask that you cite\n' \
-' * the papers people have written on it - you can find them on the website.\n' \
+' * To help us fund GROMACS development, we humbly ask that you cite\n' \
+' * the research papers on the package. Check out http://www.gromacs.org.\n' \
+' */\n' \
+'/*\n' \
+' * Note: this file was generated by the GROMACS '+Arch+' kernel generator.\n' \
 ' */\n'
 
 ###############################################
index 6c15bd3f8c837d50cf43f6b7350ce3624043e0c4..6deaef13a177da3ea2d6a94972ea46880fd097da 100644 (file)
@@ -241,7 +241,7 @@ nb_kernel_t nb_kernel_ElecRF_VdwCSTab_GeomW4W4_F_sse4_1_single;
 
 
 nb_kernel_info_t
-    kernellist_sse4_1_single[] =
+kernellist_sse4_1_single[] =
 {
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sse4_1_single, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sse4_1_single", "sse4_1_single", "None", "None", "LennardJones", "None", "ParticleParticle", "", "PotentialAndForce" },
     { nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sse4_1_single, "nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sse4_1_single", "sse4_1_single", "None", "None", "LennardJones", "None", "ParticleParticle", "", "Force" },
@@ -460,6 +460,6 @@ nb_kernel_info_t
 };
 
 int
-    kernellist_sse4_1_single_size = sizeof(kernellist_sse4_1_single)/sizeof(kernellist_sse4_1_single[0]);
+kernellist_sse4_1_single_size = sizeof(kernellist_sse4_1_single)/sizeof(kernellist_sse4_1_single[0]);
 
 #endif
index 67535fcb101a0604e27d88d87f8b0bb5b3a672b8..afe5f56351bd72b9186b25cd67aeeb125dcc3599 100644 (file)
@@ -242,22 +242,22 @@ gmx_nonbonded_set_kernel_pointers(FILE *log, t_nblist *nl)
 
     if (nl->type == GMX_NBLIST_INTERACTION_ADRESS)
     {
-        nl->kernelptr_vf       = gmx_nb_generic_adress_kernel;
-        nl->kernelptr_f        = gmx_nb_generic_adress_kernel;
+        nl->kernelptr_vf       = (void *) gmx_nb_generic_adress_kernel;
+        nl->kernelptr_f        = (void *) gmx_nb_generic_adress_kernel;
         nl->simd_padding_width = 1;
         return;
     }
 
     if (nl->type == GMX_NBLIST_INTERACTION_FREE_ENERGY)
     {
-        nl->kernelptr_vf       = gmx_nb_free_energy_kernel;
-        nl->kernelptr_f        = gmx_nb_free_energy_kernel;
+        nl->kernelptr_vf       = (void *) gmx_nb_free_energy_kernel;
+        nl->kernelptr_f        = (void *) gmx_nb_free_energy_kernel;
         nl->simd_padding_width = 1;
     }
     else if (!gmx_strcasecmp_min(geom, "CG-CG"))
     {
-        nl->kernelptr_vf       = gmx_nb_generic_cg_kernel;
-        nl->kernelptr_f        = gmx_nb_generic_cg_kernel;
+        nl->kernelptr_vf       = (void *) gmx_nb_generic_cg_kernel;
+        nl->kernelptr_f        = (void *) gmx_nb_generic_cg_kernel;
         nl->simd_padding_width = 1;
     }
     else
@@ -266,18 +266,18 @@ gmx_nonbonded_set_kernel_pointers(FILE *log, t_nblist *nl)
 
         for (i = 0; i < narch && nl->kernelptr_vf == NULL; i++)
         {
-            nl->kernelptr_vf       = nb_kernel_list_findkernel(log, arch_and_padding[i].arch, elec, elec_mod, vdw, vdw_mod, geom, other, "PotentialAndForce");
+            nl->kernelptr_vf       = (void *) nb_kernel_list_findkernel(log, arch_and_padding[i].arch, elec, elec_mod, vdw, vdw_mod, geom, other, "PotentialAndForce");
             nl->simd_padding_width = arch_and_padding[i].simd_padding_width;
         }
         for (i = 0; i < narch && nl->kernelptr_f == NULL; i++)
         {
-            nl->kernelptr_f        = nb_kernel_list_findkernel(log, arch_and_padding[i].arch, elec, elec_mod, vdw, vdw_mod, geom, other, "Force");
+            nl->kernelptr_f        = (void *) nb_kernel_list_findkernel(log, arch_and_padding[i].arch, elec, elec_mod, vdw, vdw_mod, geom, other, "Force");
             nl->simd_padding_width = arch_and_padding[i].simd_padding_width;
 
             /* If there is not force-only optimized kernel, is there a potential & force one? */
             if (nl->kernelptr_f == NULL)
             {
-                nl->kernelptr_f        = nb_kernel_list_findkernel(NULL, arch_and_padding[i].arch, elec, elec_mod, vdw, vdw_mod, geom, other, "PotentialAndForce");
+                nl->kernelptr_f        = (void *) nb_kernel_list_findkernel(NULL, arch_and_padding[i].arch, elec, elec_mod, vdw, vdw_mod, geom, other, "PotentialAndForce");
                 nl->simd_padding_width = arch_and_padding[i].simd_padding_width;
             }
         }
@@ -285,8 +285,8 @@ gmx_nonbonded_set_kernel_pointers(FILE *log, t_nblist *nl)
         /* Give up, pick a generic one instead */
         if (nl->kernelptr_vf == NULL)
         {
-            nl->kernelptr_vf       = gmx_nb_generic_kernel;
-            nl->kernelptr_f        = gmx_nb_generic_kernel;
+            nl->kernelptr_vf       = (void *) gmx_nb_generic_kernel;
+            nl->kernelptr_f        = (void *) gmx_nb_generic_kernel;
             nl->simd_padding_width = 1;
             if (debug)
             {
index 2bcc288e5d9708a9bddbddb4e700ff906d409b34..4ec13d321e3ad13183aeef39fe667d25ef7108de 100644 (file)
@@ -578,14 +578,6 @@ void check_ir(const char *mdparin, t_inputrec *ir, t_gromppopts *opts,
                 (int)fep->sc_r_power);
         CHECK(fep->sc_alpha != 0 && fep->sc_r_power != 6.0 && fep->sc_r_power != 48.0);
 
-        /* check validity of options */
-        if (fep->n_lambda > 0 && ir->rlist < max(ir->rvdw, ir->rcoulomb))
-        {
-            sprintf(warn_buf,
-                    "For foreign lambda free energy differences it is assumed that the soft-core interactions have no effect beyond the neighborlist cut-off");
-            warning(wi, warn_buf);
-        }
-
         sprintf(err_buf, "Can't use postive delta-lambda (%g) if initial state/lambda does not start at zero", fep->delta_lambda);
         CHECK(fep->delta_lambda > 0 && ((fep->init_fep_state > 0) ||  (fep->init_lambda > 0)));
 
@@ -666,8 +658,16 @@ void check_ir(const char *mdparin, t_inputrec *ir, t_gromppopts *opts,
 
         if ((fep->bScCoul) && (EEL_PME(ir->coulombtype)))
         {
-            sprintf(warn_buf, "With coulomb soft core, the reciprocal space calculation will not necessarily cancel.  It may be necessary to decrease the reciprocal space energy, and increase the cutoff radius to get sufficiently close matches to energies with free energy turned off.");
-            warning(wi, warn_buf);
+            real sigma, lambda, r_sc;
+
+            sigma  = 0.34;
+            /* Maximum estimate for A and B charges equal with lambda power 1 */
+            lambda = 0.5;
+            r_sc   = pow(lambda*fep->sc_alpha*pow(sigma/ir->rcoulomb, fep->sc_r_power) + 1.0, 1.0/fep->sc_r_power);
+            sprintf(warn_buf, "With PME there is a minor soft core effect present at the cut-off, proportional to (LJsigma/rcoulomb)^%g. This could have a minor effect on energy conservation, but usually other effects dominate. With a common sigma value of %g nm the fraction of the particle-particle potential at the cut-off at lambda=%g is around %.1e, while ewald-rtol is %.1e.",
+                    fep->sc_r_power,
+                    sigma, lambda, r_sc - 1.0, ir->ewald_rtol);
+            warning_note(wi, warn_buf);
         }
 
         /*  Free Energy Checks -- In an ideal world, slow growth and FEP would
index 4d900df719fcb94d49632c8726e0ca6e380e1e3c..a83b9d876e6a0d58e8f6b2565c52c5a55a7725f8 100644 (file)
@@ -36,7 +36,7 @@
  */
 
 /* The macros in this file are intended to be used for writing
- * architecture independent SIMD intrinsics code.
+ * architecture-independent SIMD intrinsics code.
  * To support a new architecture, adding macros here should be (nearly)
  * all that is needed.
  */
@@ -45,7 +45,7 @@
  * with different settings from the same source file.
  */
 
-/* NOTE: floor and blendv are NOT available with SSE2 only acceleration */
+/* NOTE: SSE2 acceleration does not include floor or blendv */
 
 #undef GMX_SIMD_WIDTH_HERE
 
index 4b8cbc2a59255321fab9683697fc34c00457f74f..b08474a8f67acadc9110e55fde1f7a51ed53f1c1 100644 (file)
@@ -280,5 +280,5 @@ static inline void tMPI_Spinlock_wait(tMPI_Spinlock_t *x)
     do
     {
     }
-    while (spin_islocked(x));
+    while (tMPI_Spinlock_islocked(x));
 }
index cd3240ea17bcf48d2b6b226ce66833b8b2a82f66..5639311cb882c9003f006ccfaeb676e3a3001e7f 100644 (file)
@@ -216,7 +216,9 @@ typedef struct {
     real                    *nbfp;            /* Lennard-Jones 6*C6 and 12*C12 params, size ntype^2*2 */
     int                      comb_rule;       /* Combination rule, see enum above                   */
     real                    *nbfp_comb;       /* LJ parameter per atom type, size ntype*2           */
-    real                    *nbfp_s4;         /* As nbfp, but with stride 4, size ntype^2*4         */
+    real                    *nbfp_s4;         /* As nbfp, but with stride 4, size ntype^2*4. This
+                                               * might suit 4-wide SIMD loads of two values (e.g.
+                                               * two floats in single precision on x86).            */
     int                      natoms;          /* Number of atoms                                    */
     int                      natoms_local;    /* Number of local atoms                           */
     int                     *type;            /* Atom types                                         */
index fec67cfaf63364d7de310adc3adc0145a0f3ff9f..7680d93a42d42d7c17570931f747eb9058889f23 100644 (file)
@@ -1384,12 +1384,16 @@ static void make_adress_tf_tables(FILE *fp, const output_env_t oenv,
 
     snew(fr->atf_tabs, ir->adress->n_tf_grps);
 
+    sprintf(buf, "%s", tabfn);
     for (i = 0; i < ir->adress->n_tf_grps; i++)
     {
         j = ir->adress->tf_table_index[i]; /* get energy group index */
         sprintf(buf + strlen(tabfn) - strlen(ftp2ext(efXVG)) - 1, "tf_%s.%s",
                 *(mtop->groups.grpname[mtop->groups.grps[egcENER].nm_ind[j]]), ftp2ext(efXVG));
-        printf("loading tf table for energygrp index %d from %s\n", ir->adress->tf_table_index[j], buf);
+        if(fp)
+        {
+           fprintf(fp,"loading tf table for energygrp index %d from %s\n", ir->adress->tf_table_index[i], buf);
+        }
         fr->atf_tabs[i] = make_atf_table(fp, oenv, fr, buf, box);
     }
 
index b17234f92b02806b86dcc4357cfd339af96bfe8f..da84f681dd110ab00462ca52f6e36e848ae713a6 100644 (file)
@@ -351,7 +351,7 @@ void copy_rvec_to_nbat_real(const int *a, int na, int na_round,
             }
             break;
         default:
-            gmx_incons("Unsupported stride");
+            gmx_incons("Unsupported nbnxn_atomdata_t format");
     }
 }
 
@@ -399,7 +399,12 @@ static void set_combination_rule_data(nbnxn_atomdata_t *nbat)
             }
             break;
         case ljcrNONE:
-            /* In nbfp_s4 we use a stride of 4 for storing two parameters */
+            /* nbfp_s4 stores two parameters using a stride of 4,
+             * because this would suit x86 SIMD single-precision
+             * quad-load intrinsics. There's a slight inefficiency in
+             * allocating and initializing nbfp_s4 when it might not
+             * be used, but introducing the conditional code is not
+             * really worth it. */
             nbat->alloc((void **)&nbat->nbfp_s4, nt*nt*4*sizeof(*nbat->nbfp_s4));
             for (i = 0; i < nt; i++)
             {
@@ -1210,6 +1215,8 @@ nbnxn_atomdata_add_nbat_f_to_f_part(const nbnxn_search_t nbs,
                 }
             }
             break;
+    default:
+        gmx_incons("Unsupported nbnxn_atomdata_t format");
     }
 }
 
index 3940ba87ade22e868805146468df9308a409aed7..3475ad96da5f9a648271373bbd62aaf5952d4996 100644 (file)
@@ -73,18 +73,31 @@ extern const struct texture<float, 1, cudaReadModeElementType>& nbnxn_cuda_get_c
 /* We should actually be using md_print_warn in md_logging.c,
  * but we can't include mpi.h in CUDA code.
  */
-static void md_print_warn(FILE *fplog, const char *buf)
+static void md_print_warn(FILE       *fplog,
+                          const char *fmt, ...)
 {
+    va_list ap;
+
     if (fplog != NULL)
     {
         /* We should only print to stderr on the master node,
          * in most cases fplog is only set on the master node, so this works.
          */
-        fprintf(stderr, "\n%s\n", buf);
-        fprintf(fplog,  "\n%s\n", buf);
+        va_start(ap, fmt);
+        fprintf(stderr, "\n");
+        vfprintf(stderr, fmt, ap);
+        fprintf(stderr, "\n");
+        va_end(ap);
+
+        va_start(ap, fmt);
+        fprintf(fplog, "\n");
+        vfprintf(fplog, fmt, ap);
+        fprintf(fplog, "\n");
+        va_end(ap);
     }
 }
 
+
 /* Fw. decl. */
 static void nbnxn_cuda_clear_e_fshift(nbnxn_cuda_ptr_t cu_nb);
 
@@ -333,23 +346,24 @@ static void init_timings(wallclock_gpu_t *t)
 }
 
 /* Decide which kernel version to use (default or legacy) based on:
- *  - CUDA version
+ *  - CUDA version used for compilation
  *  - non-bonded kernel selector environment variables
- *  - GPU SM version TODO ???
+ *  - GPU architecture version
  */
-static int pick_nbnxn_kernel_version()
+static int pick_nbnxn_kernel_version(FILE            *fplog,
+                                     cuda_dev_info_t *devinfo)
 {
-    bool bLegacyKernel, bDefaultKernel, bCUDA40, bCUDA32;
+    bool bForceLegacyKernel, bForceDefaultKernel, bCUDA40, bCUDA32;
     char sbuf[STRLEN];
     int  kver;
 
-    /* legacy kernel (former k2), kept for now for backward compatibility,
-       faster than the default with  CUDA 3.2/4.0 (TODO: on Kepler?). */
-    bLegacyKernel  = (getenv("GMX_CUDA_NB_LEGACY") != NULL);
+    /* Legacy kernel (former k2), kept for backward compatibility as it is
+       faster than the default with CUDA 3.2/4.0 on Fermi (not on Kepler). */
+    bForceLegacyKernel  = (getenv("GMX_CUDA_NB_LEGACY") != NULL);
     /* default kernel (former k3). */
-    bDefaultKernel = (getenv("GMX_CUDA_NB_DEFAULT") != NULL);
+    bForceDefaultKernel = (getenv("GMX_CUDA_NB_DEFAULT") != NULL);
 
-    if ((unsigned)(bLegacyKernel + bDefaultKernel) > 1)
+    if ((unsigned)(bForceLegacyKernel + bForceDefaultKernel) > 1)
     {
         gmx_fatal(FARGS, "Multiple CUDA non-bonded kernels requested; to manually pick a kernel set only one \n"
                   "of the following environment variables: \n"
@@ -368,17 +382,18 @@ static int pick_nbnxn_kernel_version()
     /* default is default ;) */
     kver = eNbnxnCuKDefault;
 
-    if (bCUDA32 || bCUDA40)
+    /* Consider switching to legacy kernels only on Fermi */
+    if (devinfo->prop.major < 3 && (bCUDA32 || bCUDA40))
     {
         /* use legacy kernel unless something else is forced by an env. var */
-        if (bDefaultKernel)
+        if (bForceDefaultKernel)
         {
-            fprintf(stderr,
-                    "\nNOTE: CUDA %s compilation detected; with this compiler version the legacy\n"
-                    "      non-bonded kernels perform best. However, the default kernels were\n"
-                    "      selected by the GMX_CUDA_NB_DEFAULT environment variable.\n"
-                    "      For best performance upgrade your CUDA toolkit.",
-                    sbuf);
+            md_print_warn(fplog,
+                          "NOTE: CUDA %s compilation detected; with this compiler version the legacy\n"
+                          "      non-bonded kernels perform best. However, the default kernels were\n"
+                          "      selected by the GMX_CUDA_NB_DEFAULT environment variable.\n"
+                          "      For best performance upgrade your CUDA toolkit.\n",
+                          sbuf);
         }
         else
         {
@@ -387,11 +402,11 @@ static int pick_nbnxn_kernel_version()
     }
     else
     {
-        /* issue not if the non-default kernel is forced by an env. var */
-        if (bLegacyKernel)
+        /* issue note if the non-default kernel is forced by an env. var */
+        if (bForceLegacyKernel)
         {
-            fprintf(stderr,
-                    "\nNOTE: Legacy non-bonded CUDA kernels were selected by the GMX_CUDA_NB_LEGACY\n"
+            md_print_warn(fplog,
+                    "NOTE: Legacy non-bonded CUDA kernels selected by the GMX_CUDA_NB_LEGACY\n"
                     "      env. var. Consider using using the default kernels which should be faster!\n");
 
             kver = eNbnxnCuKLegacy;
@@ -574,7 +589,7 @@ void nbnxn_cuda_init(FILE *fplog,
     }
 
     /* set the kernel type for the current GPU */
-    nb->kernel_ver = pick_nbnxn_kernel_version();
+    nb->kernel_ver = pick_nbnxn_kernel_version(fplog, nb->dev_info);
     /* pick L1 cache configuration */
     nbnxn_cuda_set_cacheconfig(nb->dev_info);
 
index 9c721039b04b1514f029ca174dcb3479bc8b0cf5..7e09a77b36d88645c8bf8507ae17ac02ff909b08 100644 (file)
 #define CALC_SHIFTFORCES
 
 #ifdef CALC_COUL_RF
-#define NBK_FUNC_NAME(x, y) x ## _rf_ ## y
+#define NBK_FUNC_NAME(base, ene) base ## _rf_ ## ene
 #endif
 #ifdef CALC_COUL_TAB
 #ifndef VDW_CUTOFF_CHECK
-#define NBK_FUNC_NAME(x, y) x ## _tab_ ## y
+#define NBK_FUNC_NAME(base, ene) base ## _tab_ ## ene
 #else
-#define NBK_FUNC_NAME(x, y) x ## _tab_twin_ ## y
+#define NBK_FUNC_NAME(base, ene) base ## _tab_twin_ ## ene
 #endif
 #endif
 
index ef8cd2d08a524fac028baaddbbd47d61261187d0..7829fcdb95fbacac51fa409f868bb00a265dfa8f 100644 (file)
@@ -1350,7 +1350,8 @@ static void sort_columns_supersub(const nbnxn_search_t nbs,
             /* Sort the atoms along y */
             sort_atoms(YY, (sub_z & 1),
                        nbs->a+ash_z, na_z, x,
-                       grid->c0[YY]+cy*grid->sy, grid->inv_sy,
+                       grid->c0[YY]+cy*grid->sy,
+                       subdiv_y*SORT_GRID_OVERSIZE*grid->inv_sy,
                        subdiv_y*SGSF, sort_work);
 #endif
 
@@ -1363,7 +1364,8 @@ static void sort_columns_supersub(const nbnxn_search_t nbs,
                 /* Sort the atoms along x */
                 sort_atoms(XX, ((cz*GPU_NSUBCELL_Y + sub_y) & 1),
                            nbs->a+ash_y, na_y, x,
-                           grid->c0[XX]+cx*grid->sx, grid->inv_sx,
+                           grid->c0[XX]+cx*grid->sx,
+                           subdiv_x*SORT_GRID_OVERSIZE*grid->inv_sx,
                            subdiv_x*SGSF, sort_work);
 #endif
 
index 4cd29052deba902a503508ad5ba4378e0023b279..5486510b63151ce0320b35c55b7f66f471295f38 100644 (file)
@@ -475,7 +475,6 @@ void construct_vsites_thread(gmx_vsite_t *vsite,
                 /* The vsite and constructing atoms */
                 avsite = ia[1];
                 ai     = ia[2];
-                aj     = ia[3];
 
                 /* Constants for constructing vsites */
                 a1   = ip[tp].vsite.a;
@@ -517,30 +516,36 @@ void construct_vsites_thread(gmx_vsite_t *vsite,
                 switch (ftype)
                 {
                     case F_VSITE2:
+                        aj = ia[3];
                         constr_vsite2(x[ai], x[aj], x[avsite], a1, pbc_null2);
                         break;
                     case F_VSITE3:
+                        aj = ia[3];
                         ak = ia[4];
                         b1 = ip[tp].vsite.b;
                         constr_vsite3(x[ai], x[aj], x[ak], x[avsite], a1, b1, pbc_null2);
                         break;
                     case F_VSITE3FD:
+                        aj = ia[3];
                         ak = ia[4];
                         b1 = ip[tp].vsite.b;
                         constr_vsite3FD(x[ai], x[aj], x[ak], x[avsite], a1, b1, pbc_null2);
                         break;
                     case F_VSITE3FAD:
+                        aj = ia[3];
                         ak = ia[4];
                         b1 = ip[tp].vsite.b;
                         constr_vsite3FAD(x[ai], x[aj], x[ak], x[avsite], a1, b1, pbc_null2);
                         break;
                     case F_VSITE3OUT:
+                        aj = ia[3];
                         ak = ia[4];
                         b1 = ip[tp].vsite.b;
                         c1 = ip[tp].vsite.c;
                         constr_vsite3OUT(x[ai], x[aj], x[ak], x[avsite], a1, b1, c1, pbc_null2);
                         break;
                     case F_VSITE4FD:
+                        aj = ia[3];
                         ak = ia[4];
                         al = ia[5];
                         b1 = ip[tp].vsite.b;
@@ -549,6 +554,7 @@ void construct_vsites_thread(gmx_vsite_t *vsite,
                                         pbc_null2);
                         break;
                     case F_VSITE4FDN:
+                        aj = ia[3];
                         ak = ia[4];
                         al = ia[5];
                         b1 = ip[tp].vsite.b;
index 292e23d06d61a6281c34cde7ea714c59863dc4ba..fd9d033b50395a90a6a3758cf924fcf4364f8611 100644 (file)
@@ -532,10 +532,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[],
                                         repl_ex_nst, repl_ex_nex, repl_ex_seed);
     }
 
-    /* PME tuning is only supported with GPUs or PME nodes and not with rerun */
+    /* PME tuning is only supported with GPUs or PME nodes and not with rerun.
+     * With perturbed charges with soft-core we should not change the cut-off.
+     */
     if ((Flags & MD_TUNEPME) &&
         EEL_PME(fr->eeltype) &&
         ( (fr->cutoff_scheme == ecutsVERLET && fr->nbv->bUseGPU) || !(cr->duty & DUTY_PME)) &&
+        !(ir->efep != efepNO && mdatoms->nChargePerturbed > 0 && ir->fepvals->bScCoul) &&
         !bRerunMD)
     {
         pme_loadbal_init(&pme_loadbal, ir, state->box, fr->ic, fr->pmedata);
@@ -1107,7 +1110,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[],
 
         /* Do we need global communication ? */
         bGStat = (bCalcVir || bCalcEner || bStopCM ||
-                  do_per_step(step, nstglobalcomm) ||
+                  do_per_step(step, nstglobalcomm) || (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm)) ||
                   (ir->nstlist == -1 && !bRerunMD && step >= nlh.step_nscheck));
 
         do_ene = (do_per_step(step, ir->nstenergy) || bLastStep);
@@ -2204,7 +2207,8 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[],
 
     if (pme_loadbal != NULL)
     {
-        pme_loadbal_done(pme_loadbal, fplog);
+        pme_loadbal_done(pme_loadbal, cr, fplog,
+                         fr->nbv != NULL && fr->nbv->bUseGPU);
     }
 
     if (shellfc && fplog)
index 8a0cf21554c098405607cf961dd1ecf606f7f033..1a2544f6b4ea642a68adb7cace9a2c09b3d38fe8 100644 (file)
@@ -46,6 +46,7 @@
 #include "nbnxn_cuda_data_mgmt.h"
 #include "force.h"
 #include "macros.h"
+#include "md_logging.h"
 #include "pme_loadbal.h"
 
 /* Parameters and setting for one PP-PME setup */
@@ -701,6 +702,22 @@ static int pme_grid_points(const pme_setup_t *setup)
     return setup->grid[XX]*setup->grid[YY]*setup->grid[ZZ];
 }
 
+static real pme_loadbal_rlist(const pme_setup_t *setup)
+{
+    /* With the group cut-off scheme we can have twin-range either
+     * for Coulomb or for VdW, so we need a check here.
+     * With the Verlet cut-off scheme rlist=rlistlong.
+     */
+    if (setup->rcut_coulomb > setup->rlist)
+    {
+        return setup->rlistlong;
+    }
+    else
+    {
+        return setup->rlist;
+    }
+}
+
 static void print_pme_loadbal_setting(FILE              *fplog,
                                       char              *name,
                                       const pme_setup_t *setup)
@@ -708,17 +725,19 @@ static void print_pme_loadbal_setting(FILE              *fplog,
     fprintf(fplog,
             "   %-7s %6.3f nm %6.3f nm     %3d %3d %3d   %5.3f nm  %5.3f nm\n",
             name,
-            setup->rcut_coulomb, setup->rlist,
+            setup->rcut_coulomb, pme_loadbal_rlist(setup),
             setup->grid[XX], setup->grid[YY], setup->grid[ZZ],
             setup->spacing, 1/setup->ewaldcoeff);
 }
 
 static void print_pme_loadbal_settings(pme_load_balancing_t pme_lb,
-                                       FILE                *fplog)
+                                       t_commrec           *cr,
+                                       FILE                *fplog,
+                                       gmx_bool             bNonBondedOnGPU)
 {
     double pp_ratio, grid_ratio;
 
-    pp_ratio   = pow(pme_lb->setup[pme_lb->cur].rlist/pme_lb->setup[0].rlistlong, 3.0);
+    pp_ratio   = pow(pme_loadbal_rlist(&pme_lb->setup[pme_lb->cur])/pme_loadbal_rlist(&pme_lb->setup[0]), 3.0);
     grid_ratio = pme_grid_points(&pme_lb->setup[pme_lb->cur])/
         (double)pme_grid_points(&pme_lb->setup[0]);
 
@@ -746,14 +765,27 @@ static void print_pme_loadbal_settings(pme_load_balancing_t pme_lb,
     fprintf(fplog, " cost-ratio           %4.2f             %4.2f\n",
             pp_ratio, grid_ratio);
     fprintf(fplog, " (note that these numbers concern only part of the total PP and PME load)\n");
-    fprintf(fplog, "\n");
+
+    if (pp_ratio > 1.5 && !bNonBondedOnGPU)
+    {
+        md_print_warn(cr, fplog,
+                      "NOTE: PME load balancing increased the non-bonded workload by more than 50%%.\n"
+                      "      For better performance use (more) PME nodes (mdrun -npme),\n"
+                      "      or in case you are beyond the scaling limit, use less nodes in total.\n");
+    }
+    else
+    {
+        fprintf(fplog, "\n");
+    }
 }
 
-void pme_loadbal_done(pme_load_balancing_t pme_lb, FILE *fplog)
+void pme_loadbal_done(pme_load_balancing_t pme_lb,
+                      t_commrec *cr, FILE *fplog,
+                      gmx_bool bNonBondedOnGPU)
 {
     if (fplog != NULL && (pme_lb->cur > 0 || pme_lb->elimited != epmelblimNO))
     {
-        print_pme_loadbal_settings(pme_lb, fplog);
+        print_pme_loadbal_settings(pme_lb, cr, fplog, bNonBondedOnGPU);
     }
 
     /* TODO: Here we should free all pointers in pme_lb,
index 472587c7dffe0c16cbbed32f15167ca08bf51d1e..55acc9de1f300b9884d06739de52251418574fec 100644 (file)
@@ -73,6 +73,8 @@ gmx_bool pme_load_balance(pme_load_balancing_t pme_lb,
 void restart_pme_loadbal(pme_load_balancing_t pme_lb, int n);
 
 /* Finish the PME load balancing and print the settings when fplog!=NULL */
-void pme_loadbal_done(pme_load_balancing_t pme_lb, FILE *fplog);
+void pme_loadbal_done(pme_load_balancing_t pme_lb,
+                      t_commrec *cr, FILE *fplog,
+                      gmx_bool bNonBondedOnGPU);
 
 #endif /* _pme_loadbal_h */
index 402c061cb5ad859abca4aade98e03a779db11156..f92dbc069dbb5716b44b05ff65f552c3639ab04e 100644 (file)
@@ -809,6 +809,9 @@ static void do_dip(t_topology *top, int ePBC, real volume,
     vol_aver = 0.0;
 
     iVol = -1;
+
+    /* initialize to a negative value so we can see that it wasn't picked up */
+    iMu[XX] = iMu[YY] = iMu[ZZ] = -1;
     if (bMU)
     {
         fmu = open_enx(mufn, "r");
@@ -834,13 +837,16 @@ static void do_dip(t_topology *top, int ePBC, real volume,
                 iMu[ZZ] = i;
             }
         }
+        if (iMu[XX] < 0 || iMu[YY] < 0 || iMu[ZZ] < 0)
+        {
+            gmx_fatal(FARGS,"No index for Mu-X, Mu-Y or Mu-Z energy group.");
+        }
     }
     else
     {
         atom = top->atoms.atom;
         mols = &(top->mols);
     }
-
     if ((iVol == -1) && bMU)
     {
         printf("Using Volume from topology: %g nm^3\n", volume);
index 73a82ae7afd076c1c765ae1a3a7fdb49cc00f90f..b7c4b01555d0e084b4698ac9f948a5f7c859355c 100644 (file)
@@ -400,7 +400,7 @@ void calc_order(const char *fn, atom_id *index, atom_id *a, rvec **order,
         i, j, m, k, l, teller = 0,
         slice,                                   /* current slice number                           */
         nr_frames = 0,
-    *slCount;                                    /* nr. of atoms in one slice                      */
+        *slCount;                                /* nr. of atoms in one slice                      */
     real         dbangle                = 0,     /* angle between double bond and  axis            */
                  sdbangle               = 0;     /* sum of these angles                            */
     gmx_bool     use_unitvector         = FALSE; /* use a specified unit vector instead of axis to specify unit normal*/
@@ -409,7 +409,7 @@ void calc_order(const char *fn, atom_id *index, atom_id *a, rvec **order,
     atom_id     *comidx  = NULL, *distidx = NULL;
     char        *grpname = NULL;
     t_pbc        pbc;
-    real         arcdist;
+    real         arcdist, tmpdist;
     gmx_rmpbc_t  gpbc = NULL;
 
     /* PBC added for center-of-mass vector*/
@@ -438,16 +438,16 @@ void calc_order(const char *fn, atom_id *index, atom_id *a, rvec **order,
         use_unitvector = TRUE;
         fprintf(stderr, "Select an index group to calculate the radial membrane normal\n");
         get_index(&top->atoms, radfn, 1, &comsize, &comidx, &grpname);
-        if (distcalc)
+    }
+    if (distcalc)
+    {
+        if (grpname != NULL)
         {
-            if (grpname != NULL)
-            {
-                sfree(grpname);
-            }
-            fprintf(stderr, "Select an index group to use as distance reference\n");
-            get_index(&top->atoms, radfn, 1, &distsize, &distidx, &grpname);
-            bSliced = FALSE; /*force slices off*/
+            sfree(grpname);
         }
+        fprintf(stderr, "Select an index group to use as distance reference\n");
+        get_index(&top->atoms, radfn, 1, &distsize, &distidx, &grpname);
+        bSliced = FALSE; /*force slices off*/
     }
 
     if (use_unitvector && bSliced)
@@ -480,6 +480,7 @@ void calc_order(const char *fn, atom_id *index, atom_id *a, rvec **order,
                 nslices, *slWidth);
     }
 
+
 #if 0
     nr_tails = index[1] - index[0];
     fprintf(stderr, "Number of elements in first group: %d\n", nr_tails);
@@ -510,6 +511,7 @@ void calc_order(const char *fn, atom_id *index, atom_id *a, rvec **order,
            so for DPPC ngrps = 16 and i runs from 1 to 14, including 14
          */
 
+
         if (radial)
         {
             /*center-of-mass determination*/
@@ -528,8 +530,11 @@ void calc_order(const char *fn, atom_id *index, atom_id *a, rvec **order,
                 rvec_inc(dist, x1[distidx[j]]);
             }
             svmul(1.0/distsize, dref, dref);
-            pbc_dx(&pbc, dref, com, dvec);
-            unitv(dvec, dvec);
+            if (radial)
+            {
+                pbc_dx(&pbc, dref, com, dvec);                
+                unitv(dvec, dvec);
+            }
         }
 
         for (i = 1; i < ngrps - 1; i++)
@@ -570,7 +575,7 @@ void calc_order(const char *fn, atom_id *index, atom_id *a, rvec **order,
                        the axis on the bilayer are zero */
                     if (use_unitvector)
                     {
-                        sdbangle += acos(iprod(direction, Sz)); /*this can probably be optimized*/
+                        sdbangle += gmx_angle(direction, Sz); /*this can probably be optimized*/
                     }
                     else
                     {
@@ -656,9 +661,26 @@ void calc_order(const char *fn, atom_id *index, atom_id *a, rvec **order,
                 }
                 if (distcalc)
                 {
-                    /* bin order parameter by arc distance from reference group*/
-                    arcdist            = acos(iprod(dvec, direction));
-                    (*distvals)[j][i] += arcdist;
+                    if (radial)
+                    {
+                        /* bin order parameter by arc distance from reference group*/
+                        arcdist = gmx_angle(dvec,direction);
+                        (*distvals)[j][i] += arcdist;
+                    }
+                    else if (i == 1)
+                    {
+                        /* Want minimum lateral distance to first group calculated */
+                        tmpdist = trace(box);  /* should be max value */
+                        for (k=0;k<distsize;k++)
+                        {
+                            pbc_dx(&pbc, x1[distidx[k]], x1[a[index[i]+j]], dvec);
+                            /* at the moment, just remove dvec[axis] */
+                            dvec[axis] = 0;
+                            tmpdist = min(tmpdist, norm2(dvec));
+                        }
+                    //fprintf(stderr, "Min dist %f; trace %f\n", tmpdist, trace(box));
+                    (*distvals)[j][i]+=sqrt(tmpdist);
+                    }
                 }
             } /* end loop j, over all atoms in group */
 
@@ -920,7 +942,7 @@ int gmx_order(int argc, char *argv[])
         { "-radial", FALSE, etBOOL, {&radial},
           "Compute a radial membrane normal" },
         { "-calcdist", FALSE, etBOOL, {&distcalc},
-          "Compute distance from a reference (currently defined only for radial and permolecule)" },
+          "Compute distance from a reference" },
     };
 
     rvec              *order;                         /* order par. for each atom   */
@@ -1048,9 +1070,8 @@ int gmx_order(int argc, char *argv[])
             fprintf(stderr, "Calculating Scd order parameters for each of %d molecules\n", nslices);
         }
 
-        if (distcalc)
+        if (radial)
         {
-            radial = TRUE;
             fprintf(stderr, "Calculating radial distances\n");
             if (!permolecule)
             {
index 470d187304a642381bb3fa7a8b002c89f55f770a..5ad13bf989184cd25bb2b32c14f6791b34a945ff 100644 (file)
@@ -597,7 +597,10 @@ static void get_program_paths(gmx_bool bThreads, char *cmd_mpirun[], char cmd_np
     const char def_mpirun[]   = "mpirun";
     const char def_mdrun[]    = "mdrun";
     const char filename[]     = "benchtest.log";
-    const char match_mpi[]    = "NNODES=";
+
+    /* This string should always be identical to the one in copyrite.c,
+     * gmx_print_version_info() in the defined(GMX_MPI) section */
+    const char match_mpi[]    = "MPI library:        MPI";
     const char match_mdrun[]  = "Program: ";
     const char empty_mpirun[] = "";
     gmx_bool   bMdrun         = FALSE;
@@ -1735,9 +1738,10 @@ static void check_input(
 /* Returns TRUE when "opt" is needed at launch time */
 static gmx_bool is_launch_file(char *opt, gmx_bool bSet)
 {
-    /* Apart from the input .tpr and the error log we need all options that were set
-     * on the command line and that do not start with -b */
-    if (0 == strncmp(opt, "-b", 2) || 0 == strncmp(opt, "-s", 2) || 0 == strncmp(opt, "-err", 4))
+    /* Apart from the input .tpr and the output log files we need all options that 
+     * were set on the command line and that do not start with -b */
+    if    (0 == strncmp(opt, "-b"  , 2) || 0 == strncmp(opt, "-s", 2) 
+        || 0 == strncmp(opt, "-err", 4) || 0 == strncmp(opt, "-p", 2) )
     {
         return FALSE;
     }