diff --git a/nifty5/minimization/descent_minimizers.py b/nifty5/minimization/descent_minimizers.py index f52224b324b466c25abb128cf80baf72a364f348..e6404c6e8189dafd5d657513df53dd1bbe732b43 100644 --- a/nifty5/minimization/descent_minimizers.py +++ b/nifty5/minimization/descent_minimizers.py @@ -166,7 +166,8 @@ class NewtonCG(DescentMinimizer): """ def __init__(self, controller, napprox=0, line_searcher=None, name=None, - nreset=20, file_name=None): + nreset=20, max_cg_iterations=200, energy_reduction_factor=0.1, + file_name=None): if line_searcher is None: line_searcher = LineSearch(preferred_initial_step_size=1.) super(NewtonCG, self).__init__(controller=controller, @@ -175,15 +176,16 @@ class NewtonCG(DescentMinimizer): self._name = name self._nreset = nreset self._file_name = file_name + self._max_cg_iterations = max_cg_iterations + self._alpha = energy_reduction_factor def get_descent_direction(self, energy, old_value=None): if old_value is None: ic = GradientNormController(iteration_limit=5) else: - alpha = 0.1 - ediff = alpha*(old_value-energy.value) + ediff = self._alpha*(old_value-energy.value) ic = AbsDeltaEnergyController( - ediff, iteration_limit=200, name=self._name, + ediff, iteration_limit=self._max_cg_iterations, name=self._name, file_name=self._file_name) e = QuadraticEnergy(0*energy.position, energy.metric, energy.gradient) p = None diff --git a/nifty5/probing.py b/nifty5/probing.py index 2c1ad8a3fae03ce3f6cdd4970819cbfdc5385049..1eca3105eb5952d3dcda7f8c721264b454650026 100644 --- a/nifty5/probing.py +++ b/nifty5/probing.py @@ -138,7 +138,6 @@ def probe_diagonal(op, nprobes, random_type="pm1"): def approximation2endo(op, nsamples): - print('Calculate preconditioner') sc = StatCalculator() for _ in range(nsamples): sc.add(op.draw_sample())