Commit f0679cff authored by julient31's avatar julient31
Browse files

Commit JT 072319

- added 2 oso examples in examples/SPIN/spinmin
- added doc for oso_cg and oso_lbfgs
parent a9a2c7a4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -647,6 +647,7 @@ pair_sph_lj.html
pair_sph_rhosum.html
pair_sph_taitwater.html
pair_sph_taitwater_morris.html
pair_spin_dipole.html
pair_spin_dmi.html
pair_spin_exchange.html
pair_spin_magelec.html
+18 −4
Original line number Diff line number Diff line
@@ -13,11 +13,11 @@ min_modify command :h3
min_modify keyword values ... :pre

one or more keyword/value pairs may be listed :ulb,l
keyword = {dmax} or {line} or {alpha_damp} or {discrete_factor}
keyword = {dmax} or {line} or {alpha_damp} or {discrete_factor} or {spin_cubic} or {spin_none}
  {dmax} value = max
    max = maximum distance for line search to move (distance units)
  {line} value = {backtrack} or {quadratic} or {forcezero}
    backtrack,quadratic,forcezero = style of linesearch to use 
  {line} value = {backtrack} or {quadratic} or {forcezero} or {spin_cubic} or {spin_none}
    backtrack,quadratic,forcezero,spin_cubic,spin_none = style of linesearch to use 
  {alpha_damp} value = damping
    damping = fictitious Gilbert damping for spin minimization (adim)
  {discrete_factor} value = factor
@@ -80,7 +80,21 @@ See "min_spin"_min_spin.html for more information about those
quantities. 
Default values are {alpha_damp} = 1.0 and {discrete_factor} = 10.0.

[Restrictions:] none
The choice of a line search algorithm for the {spin_oso_cg} and
{spin_oso_lbfgs} can be specified via the {line} keyword.
The {spin_cubic} and  {spin_none} only make sense when those two
when one of those two minimization styles is declared.

The {spin_cubic} keyword activates the line search procedure when 
the {spin_oso_cg} algorithm is used.

The {spin_none} keyword deactivates the line search procedure when 
the {spin_oso_lbfgs} algorithm is used.

[Restrictions:] The line search procedure of styles
{spin_oso_cg} and {spin_oso_lbfgs} cannot be used for magnetic
NEB calculations. See "neb/spin"_neb_spin.html for more
explanation.

[Related commands:]

+33 −3
Original line number Diff line number Diff line
@@ -6,14 +6,19 @@
:line

min_style spin command :h3
min_style spin_oso_cg command :h3
min_style spin_oso_lbfgs command :h3

[Syntax:]

min_style spin :pre
min_style spin 
min_style spin_oso_cg 
min_style spin_oso_lbfgs :pre

[Examples:]

min_style 	spin :pre 
min_style 	spin_oso_lbfgs 
min_modify      discrete_factor 10.0 line_search 0 :pre 

[Description:]

@@ -46,9 +51,29 @@ definition of this timestep.
{discrete_factor} can be defined with the "min_modify"_min_modify.html
command.

NOTE: The {spin} style replaces the force tolerance by a torque
Style {spin_oso_cg} defines an orthogonal spin optimization
(OSO) combined to a conjugate gradient (CG) algorithm. 
The "min_modify"_min_modify.html command can be used to
couple the {spin_oso_cg} to a line search procedure, and to modify the 
discretization factor {discrete_factor}. 

Style {spin_oso_lbfgs} defines an orthogonal spin optimization
(OSO) combined to a limited-memory Broyden-Fletcher-Goldfarb-Shanno 
(LBFGS) algorithm. 
By default, style {spin_oso_lbfgs} uses a line search procedure.
The "min_modify"_min_modify.html command can be used to
deactivate the line search procedure. 

For more information about styles {spin_oso_cg} and {spin_oso_lbfgs}, 
see their implementation reported in "(Ivanov)"_#Ivanov1.

NOTE: All the {spin} styles replace the force tolerance by a torque
tolerance. See "minimize"_minimize.html for more explanation. 

NOTE: The {spin_oso_cg} and {spin_oso_lbfgs} styles can be used
for magnetic NEB calculations only if the line search procedure
is deactivated. See "neb/spin"_neb_spin.html for more explanation. 

[Restrictions:] 

This minimization procedure is only applied to spin degrees of
@@ -63,3 +88,8 @@ freedom for a frozen lattice configuration.

The option defaults are {alpha_damp} = 1.0 and {discrete_factor} =
10.0.

:line

:link(Ivanov1)
[(Ivanov)] Ivanov, Uzdin, Jonsson. arXiv preprint arXiv:1904.02669, (2019).
+17 −2
Original line number Diff line number Diff line
@@ -11,7 +11,8 @@ min_style command :h3

min_style style :pre

style = {cg} or {hftn} or {sd} or {quickmin} or {fire} or {spin} :ul
style = {cg} or {hftn} or {sd} or {quickmin} or {fire} or {spin}
or {spin_oso_cg} or {spin_oso_lbfgs} :ul

[Examples:]

@@ -64,11 +65,25 @@ a minimization.

Style {spin} is a damped spin dynamics with an adaptive 
timestep.
See the "min/spin"_min_spin.html doc page for more information.

Style {spin_oso_cg} uses an orthogonal spin optimization (OSO)
combined to a conjugate gradient (CG) approach to minimize spin
configurations. 

Style {spin_oso_lbfgs} uses an orthogonal spin optimization (OSO)
combined to a limited-memory Broyden-Fletcher-Goldfarb-Shanno
(LBFGS) approach to minimize spin configurations. 

See the "min/spin"_min_spin.html doc page for more information
about the {spin}, {spin_oso_cg} and {spin_oso_lbfgs} styles.

Either the {quickmin} and {fire} styles are useful in the context of
nudged elastic band (NEB) calculations via the "neb"_neb.html command.

Either the {spin}, {spin_oso_cg} and {spin_oso_lbfgs} styles are useful 
in the context of magnetic geodesic nudged elastic band (GNEB) calculations 
via the "neb/spin"_neb_spin.html command.

NOTE: The damped dynamic minimizers use whatever timestep you have
defined via the "timestep"_timestep.html command.  Often they will
converge more quickly if you use a timestep about 10x larger than you
+2 −1
Original line number Diff line number Diff line
@@ -103,7 +103,8 @@ the line search fails because the step distance backtracks to 0.0
the number of outer iterations or timesteps exceeds {maxiter}
the number of total force evaluations exceeds {maxeval} :ul

NOTE: the "minimization style"_min_style.html {spin} replaces
NOTE: the "minimization style"_min_style.html {spin},
{spin_oso_cg}, and {spin_oso_lbfgs} replace
the force tolerance {ftol} by a torque tolerance.
The minimization procedure stops if the 2-norm (length) of the 
global torque vector (defined as the cross product between the 
Loading