This file is indexed.

/usr/include/BALL/MOLMEC/CHARMM/charmmNonBonded.h is in libball1.4-dev 1.4.3~beta1-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//

// Molecular Mechanics: Charmm force field, non-bonded component
// (van der Waals, electrostatics, EEF1 solvation)
//

#ifndef BALL_MOLMEC_CHARMM_NONBONDED_H
#define BALL_MOLMEC_CHARMM_NONBONDED_H

#ifndef BALL_COMMON_H
#	include <BALL/common.h>
#endif

#ifndef BALL_MOLMEC_PARAMETER_LENNARDJONES_H
#	include <BALL/MOLMEC/PARAMETER/lennardJones.h>
#endif

#ifndef BALL_MOLMEC_PARAMETER_POTENTIAL1210_H
#	include <BALL/MOLMEC/PARAMETER/potential1210.h>
#endif

#ifndef BALL_MOLMEC_PARAMETER_CHARMMEEF1_H
#	include <BALL/MOLMEC/PARAMETER/charmmEEF1.h>
#endif

#ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H
#	include <BALL/MOLMEC/COMMON/forceFieldComponent.h>
#endif

#ifndef BALL_MOLMEC_COMMON_SUPPORT_H
#	include <BALL/MOLMEC/COMMON/support.h>
#endif

namespace BALL 
{
	/**	Charmm NonBonded component.
		This force field component implements the non-bonded interactions
		in the CHARMM force field: van-der-Waals interaction, electrostatics,
		and solvation (in EEF1 only).
			
    	\ingroup  CHARMM
	*/
	class BALL_EXPORT CharmmNonBonded 
		: public ForceFieldComponent
	{
		public:

		/// flag to enable NonBonded
		#define CHARMM_NB_ENABLED "enable NB"

		/**	@name	Constructors and Destructors	
		*/
		//@{

		BALL_CREATE(CharmmNonBonded)

		/**	Default constructor.
		*/
		CharmmNonBonded()
			;

		/**	Constructor.
		*/
		CharmmNonBonded(ForceField& force_field)
			;

		/**	Copy constructor
		*/
		CharmmNonBonded(const CharmmNonBonded& charmm_non_bonded)
			;

		/**	Destructor.
		*/
		virtual ~CharmmNonBonded()
			;

		//@}
		/** @name Assignment
		*/
		//@{
		
		/** Assignment operator
		*/
		const CharmmNonBonded& operator = 
			(const CharmmNonBonded& charmm_non_bonded)
			;

		/** Clear method
		*/
		virtual void clear()
			;

		//@}
		/** @name Predicates
		*/
		//@{

		/** Equality operator
		*/
		bool operator == (const CharmmNonBonded& charmm_non_bonded)
			;

		//@}
		/**	@name	Setup Methods	
		*/
		//@{

		/**	Setup method.
		*/
		virtual bool setup()
			throw(Exception::TooManyErrors);

		//@}
		/**	@name	Accessors	
		*/
		//@{

		/**	Calculates and returns the component's energy.
		*/
		virtual double updateEnergy()
			;

		/**	Calculates and returns the component's forces.
		*/
		virtual void updateForces()
			;

		/**	Return the electrostatic energy.
		*/
		virtual double getElectrostaticEnergy() const
			;

		/**	Return the Van-der-Waals energy.
		*/
		virtual double getVdwEnergy() const
			;

		/** Return the solvation energy.
		*/
		virtual double getSolvationEnergy() const
			;

		//@}
		/**	@name Neighbourhood and Parameter calculations
		*/
		//@{

		/**	Computes the most efficient way to calculate the non-bonded atom pairs
		*/
		virtual MolmecSupport::PairListAlgorithmType	
			determineMethodOfAtomPairGeneration()
			;

		/**	Build a vector of non-bonded atom pairs with the vdw parameters
		*/
		virtual void buildVectorOfNonBondedAtomPairs
			(const std::vector<std::pair<Atom*, Atom*> >& atom_vector)
			throw(Exception::TooManyErrors);

		//@}

		protected:

		/*_	@name	Protected Attributes	
		*/
		//_@{

		/*_	Value of the electrostatic energy
		*/
		double	electrostatic_energy_;

		/*_	Value of the vdw energy
		*/
		double	vdw_energy_;

		/*_ Value of the solvation energy
		*/
		double solvation_energy_;

		//_@}
		/*_	@name	Private Attributes	
		*/
		//_@{

		private:

		/*_	Vector array with all atom pairs whose distance is smaller than cut_off
		*/
		vector<LennardJones::Data>	non_bonded_;
		
		/*_ A helper array for buildVectorOfNonBondedAtomPairs(). This is
				declared here to save the ctor within the method.
		*/
		vector<bool> is_torsion_;

		/*_	Number of 1-4 interactions in the vector non_bonded
		*/
		Size	number_of_1_4_;	

		/*_	Cutoff distance for non-bonded interactions
		*/
		float	cut_off_;

		/*_	Cutoff distance for vdw interactions
		*/
		float	cut_off_vdw_;

		/*_	Start of the switch function for the vdw interactions
		*/
		float	cut_on_vdw_;

		/*_	Cutoff distance for electrostatic interactions
		*/
		float	cut_off_electrostatic_;

		/*_	Start of the switch function for the vdw interactions
		*/
		float	cut_on_electrostatic_;

		/*_	Cutoff distance for solvation contribution (EEF1)
		*/
		float	cut_off_solvation_;

		/*_	Start of the switch function for the solvation contribution (EEF1)
		*/
		float	cut_on_solvation_;

		/*_	Inverse cube of the difference of cutoff and cuton for vdW
		*/
		float inverse_difference_off_on_vdw_3_;

		/*_	Inverse cube of the difference of cutoff and cuton for solvation
		*/
		float inverse_difference_off_on_solvation_3_;

		/*_	Inverse cube of the difference of cutoff and cuton for electrostatic
		*/
		float inverse_difference_off_on_electrostatic_3_;

		/*_	Scaling factor for vdw_1_4_interactions
		*/
		float	scaling_vdw_1_4_;

		/*_	Scaling factor for electrostatic_1_4_interactions
		*/
		float	scaling_electrostatic_1_4_;

		/*_ Flag for using constant or distance dependent dielectric constant 
				True = distance dependent
		*/
		bool    use_dist_depend_dielectric_; 

		/*_	The most efficient algorithm to calculate the non-bonded atom pairs.
				{\tt BRUTE\_FORCE}: brute force: all against all\\
				{\tt HASH\_GRID}: box grid
		*/
		MolmecSupport::PairListAlgorithmType	algorithm_type_;
		
		LennardJones								van_der_waals_parameters_;

		LennardJones								van_der_waals_parameters_14_;

		CharmmEEF1									solvation_parameters_;

		vector<CharmmEEF1::Values>	solvation_;

		bool use_solvation_component_;

		//_@}

	};
} // namespace BALL

#endif // BALL_MOLMEC_CHARMM_CHARMMVDW_H