Commit fcf5e8c5 authored by alxvov's avatar alxvov
Browse files

Merge remote-tracking branch 'origin/OSO' into OSO

parents 3c3c7899 99e58d88
Loading
Loading
Loading
Loading
+4 −4
Changes for src/SPIN/min_spin_oso_cg.cpp: 4 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -154,8 +154,6 @@ void MinSpinOSO_CG::reset_vectors()
   minimization via damped spin dynamics
------------------------------------------------------------------------- */

// g_old g_cur p_s

int MinSpinOSO_CG::iterate(int maxiter)
{
  int nlocal = atom->nlocal;
@@ -163,6 +161,8 @@ int MinSpinOSO_CG::iterate(int maxiter)
  double fmdotfm;
  int flag, flagall;

  // grow tables if nlocal increased

  if (nlocal_max < nlocal) {
    local_iter = 0;
    nlocal_max = nlocal;
@@ -355,8 +355,8 @@ void MinSpinOSO_CG::calc_search_direction()
      MPI_Allreduce(&g2old,&g2old_global,1,MPI_DOUBLE,MPI_SUM,universe->uworld);
    }

    if (fabs(g2_global) < 1.0e-40) beta = 0.0;
    else beta = g2_global / g2old_global;
    //if (fabs(g2_global) < 1.0e-40) beta = 0.0;
    //else beta = g2_global / g2old_global;
    // calculate conjugate direction
    
    for (int i = 0; i < 3 * nlocal; i++) {
+18 −0
Changes for src/SPIN/min_spin_oso_lbfgs.cpp: 18 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@
#include "math_special.h"
#include "math_const.h"

#include "universe.h"

using namespace LAMMPS_NS;
using namespace MathConst;

@@ -66,6 +68,13 @@ MinSpinOSO_LBFGS::MinSpinOSO_LBFGS(LAMMPS *lmp) :
{
  if (lmp->citeme) lmp->citeme->add(cite_minstyle_spin_oso_lbfgs);
  nlocal_max = 0;
  
  // nreplica = number of partitions
  // ireplica = which world I am in universe

  nreplica = universe->nworlds;
  ireplica = universe->iworld;

}

/* ---------------------------------------------------------------------- */
@@ -198,7 +207,16 @@ int MinSpinOSO_LBFGS::iterate(int maxiter)

    calc_gradient(dts);
    calc_search_direction(iter);

    // to be checked
    // if gneb calc., nreplica > 0
    // then advance spins only if intermediate replica
    // otherwise (simple minimization), advance spins

    if (nreplica > 0) {
      if(ireplica != 0 && ireplica != nreplica-1)
	advance_spins();
    } else advance_spins();
  
    eprevious = ecurrent;
    ecurrent = energy_force(0);
+5 −0
Changes for src/SPIN/min_spin_oso_lbfgs.h: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -41,6 +41,11 @@ public:
    void calc_search_direction(int);

private:


    // test
    int ireplica,nreplica;

    // global and spin timesteps

    int nlocal_max;		// max value of nlocal (for size of lists)
+2 −0
Changes for src/SPIN/neb_spin.cpp: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -252,6 +252,8 @@ void NEBSpin::run()
  timer->init();
  timer->barrier_start();

  // if(ireplica != 0 && ireplica != nreplica -1)

  while (update->minimize->niter < n1steps) {
    update->minimize->run(nevery);
    print_status();