Scine::Readuct  6.0.0
This is the SCINE module ReaDuct.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
IntegratingCostCalculator.h
Go to the documentation of this file.
1 
8 #ifndef READUCT_ELEMENTARYSTEPOPTIMIZATION_COSTCALCULATORS_INTEGRATINGCOSTCALCULATOR_H
9 #define READUCT_ELEMENTARYSTEPOPTIMIZATION_COSTCALCULATORS_INTEGRATINGCOSTCALCULATOR_H
10 
13 #include <Utils/Typenames.h>
14 
15 // TODO: Improve documentation
16 
17 namespace Scine {
18 namespace Readuct {
19 
20 namespace ElementaryStepOptimization {
21 
22 namespace CostBasedOptimization {
23 
27 class SCINE_DLLEXPORT IntegratingCostCalculator : public ReactionPathCostCalculator {
28  private:
29  void calculateCostImpl(const Utils::BSplines::BSpline& spline, const EnergiesAndGradientsAlongSpline& energyValues) override;
30  double getCostImpl() const override;
31  Eigen::MatrixXd getCostDerivativesImpl() const override;
32 
35  virtual void initializeCostCalculation(const Utils::BSplines::BSpline& /*spline*/) {
36  }
38  calculateCostContribution(const Utils::BSplines::BSpline& spline, double u, double energy,
39  const Utils::GradientCollection& gradients) const = 0;
40 
42 };
43 
44 } // namespace CostBasedOptimization
45 
46 } // namespace ElementaryStepOptimization
47 
48 } // namespace Readuct
49 } // namespace Scine
50 #endif // READUCT_ELEMENTARYSTEPOPTIMIZATION_COSTCALCULATORS_INTEGRATINGCOSTCALCULATOR_H
Interface for the cost calculation of reaction paths.
Definition: ReactionPathCostCalculator.h:39