/usr/include/BALL/MOLMEC/MINIMIZATION/steepestDescent.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 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: steepestDescent.h,v 1.24.20.4 2007/08/07 09:12:35 aleru Exp $
//
#ifndef BALL_MOLMEC_MINIMIZATION_STEEPESTDESCENT_H
#define BALL_MOLMEC_MINIMIZATION_STEEPESTDESCENT_H
#ifndef BALL_MOLMEC_MINIMIZATION_ENERGYMINIMIZER_H
# include <BALL/MOLMEC/MINIMIZATION/energyMinimizer.h>
#endif
#ifndef BALL_MOLMEC_MINIMIZATION_LINESEARCH_H
# include <BALL/MOLMEC/MINIMIZATION/lineSearch.h>
#endif
namespace BALL
{
/** A minimizer for geometry optimization based on steepest descent steps.
* \ingroup MolmecEnergyMinimizer
*/
class BALL_EXPORT SteepestDescentMinimizer
: public EnergyMinimizer
{
public:
/** @name Constructors and Destructors
*/
//@{
BALL_CREATE(SteepestDescentMinimizer)
/** Default constructor.
*/
SteepestDescentMinimizer();
/** Constructor.
*/
SteepestDescentMinimizer(ForceField& force_field);
/** Constructor.
*/
SteepestDescentMinimizer(ForceField& force_field,SnapShotManager *ssm);
/** Constructor.
*/
SteepestDescentMinimizer(ForceField& force_field, const Options& options);
/** Constructor.
*/
SteepestDescentMinimizer(ForceField& force_field, SnapShotManager* ssm, const Options& options);
/** Copy constructor
*/
SteepestDescentMinimizer(const SteepestDescentMinimizer& minimizer);
/** Destructor.
*/
virtual ~SteepestDescentMinimizer();
//@}
/** @name Assignments
*/
//@{
/** Assignment operator
*/
const SteepestDescentMinimizer& operator = (const SteepestDescentMinimizer& minimizer);
//@}
/** @name Setup methods
*/
//@{
/** Specific setup
*/
virtual bool specificSetup();
//@}
/** @name Accessors
*/
//@{
/** Minimize the energy of the system using steepest descent steps.
* This method executes at most <tt>iterations</tt> minimization steps.
* If the number of iterations is not given, the number specified in the
* options is taken.
* @param iterations the maximum number of iterations
* @param resume <b>true</b> to resume a previous run
* @see EnergyMinimizer::minimize
*/
virtual bool minimize(Size steps = 0, bool resume = false);
/** Find the next step.
* First, this method calls updateDirection. Second, it performs a line search
* along the calculated direction afterwards.
* @return double \f$\geq 0\f$ if the line search found an acceptable solution, otherwise -1.
* @see EnergyMinimizer::findStep
*/
virtual double findStep();
/** Update the search direction.
* This algorithm uses only steepest descent searches.
* Therefore, updateDirection only assigns direction to the last gradient
* computed.
*/
virtual void updateDirection();
protected:
//@}
/** @name Protected Attributes
*/
//@{
/** The line search minimizer.
* This member is used to perform the line search in findStep
*/
LineSearch line_search_;
//@}
};
} // namespace BALL
#endif // BALL_MOLMEC_MINIMIZATION_STEEPESTDESCENT_H
|