This file is indexed.

/usr/include/BALL/MOLMEC/AMBER/amberNonBonded.h is in libball1.4-dev 1.4.3~beta1-3.

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
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//

// Molecular Mechanics: Amber force field, non-bonded component

#ifndef BALL_MOLMEC_AMBER_NONBONDED_H
#define BALL_MOLMEC_AMBER_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_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 
{
	class AdvancedElectrostatic;

	/**	Amber NonBonded (VdW + Electrostatic) component

    	\ingroup  AMBER
	*/
	class BALL_EXPORT AmberNonBonded 
		: public ForceFieldComponent
	{
		public:

		/// flag to enable NB
		#define AMBER_NB_ENABLED "enable NB"

		// NA*e0*e0*1e7 / (4.0*PI*VACUUM_PERMITTIVITY)
		static const double ELECTROSTATIC_FACTOR;

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

		BALL_CREATE(AmberNonBonded)

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

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

		/**	Copy constructor
		*/
		AmberNonBonded(const AmberNonBonded& amber_non_bonded)
			;

		/**	Destructor.
		*/
		virtual ~AmberNonBonded()
			;
		//@}

		/** Assignment
		*/
		//@{
		
		/** Assignment operator
		*/
		const AmberNonBonded& operator = (const AmberNonBonded& anb)
			;

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

		//@}
		/** Predicates
		*/
		//@{
			
		/** Equality operator
		*/
		bool operator == (const AmberNonBonded& anb)
			;

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

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


		/** Setup this component according to the given options and store the ForceFieldParameters in par */
		bool setup(Options& options, ForceFieldParameters& par);


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

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

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

		/**	Update the pair list.
				This method is called by the force field whenever
				 \link ForceField::update ForceField::update \endlink  is called. It is used
				to recalculate the nonbonded pair list.
		*/
		virtual void update()
			throw(Exception::TooManyErrors);


		/** Update this component using the given atom-pairs only */
		void update(const std::vector<std::pair<Atom*, Atom*> >& atom_vector);


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

		/**	Return the Van-der-Waals energy.
		*/
		virtual double getVdwEnergy() 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,
			 const LennardJones& lennard_jones,
			 const Potential1210& hydrogen_bond)
			throw(Exception::TooManyErrors);

		//@}

		void enableStoreInteractions(bool b=true);

		void setAdvancedElectrostatic(AdvancedElectrostatic* advES);

		protected:

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

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

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

		//_@}

		private:

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

		/*_	Vector array with all atom pairs whose distance is smaller than cut_off
		*/
		std::vector<LennardJones::Data>	non_bonded_;

    /*_ Vector of flags deciding whether the pair forms a hydrogen bond or a
				standard VdW interaction.
    */
    std::vector<char> is_hydrogen_bond_;
 
		/*_	Number of 1-4 interactions in the vector non_bonded
		*/
		Size	number_of_1_4_;	

		/*_	Number of hydrogen bond interactions in the vector non_bonded
		*/
		Size	number_of_h_bonds_;	

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

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

		/*_	Cuton distance for vdw interactions
		*/
		double	cut_on_vdw_;

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

		/*_	Cuton distance for electrostatic interactions
		*/
		double	cut_on_electrostatic_;

		/*_	Inverse cube of the difference of squares of cuton and cutoff for vdW.
				This value is required for the switching function
		*/
		double inverse_distance_off_on_vdw_3_;
		
		/*_	Inverse cube of the difference of squares of cuton and cutoff for eletrostatic.
				This value is required for the switching function
		*/
		double inverse_distance_off_on_electrostatic_3_;
		
		/*_	Scaling factor for vdw_1_4_interactions
		*/
		double	scaling_vdw_1_4_;

		/*_	Scaling factor for electrostatic_1_4_interactions
		*/
		double	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_;

		Potential1210 hydrogen_bond_;

		//_@}

	};
} // namespace BALL

#endif // BALL_MOLMEC_AMBER_AMBERVDW_H