Commit JT 021318

This commit is contained in:
julient31
2018-02-13 13:06:16 -07:00
parent eab737a45c
commit f409f4ff53
23 changed files with 56 additions and 1347 deletions

View File

@ -10,14 +10,14 @@ compute spin command :h3
[Syntax:]
compute ID group-ID spin :pre
compute ID group-ID compute/spin :pre
ID, group-ID are documented in "compute"_compute.html command
spin = style name of this compute command
compute/spin = style name of this compute command :ul
[Examples:]
compute out_mag all spin
compute out_mag all compute/spin :pre
[Description:]
@ -37,14 +37,13 @@ The sixth quantity is the magnetic energy.
The simplest way to output the results of the compute spin calculation
is to define some of the quantities as variables, and to use the thermo and
thermo_style commands, for example
for example:
thermo_style commands, for example:
compute out_mag all compute/spin :pre
variable mag_z equal c_out_mag\[4\]
variable mag_norm equal c_out_mag\[5\]
variable temp_mag equal c_out_mag\[7\] :pre
variable mag_z equal c_out_mag\[3\]
variable mag_norm equal c_out_mag\[4\]
variable temp_mag equal c_out_mag\[6\] :pre
thermo 10
thermo_style custom step v_mag_z v_mag_norm v_temp_mag :pre

View File

@ -39,7 +39,7 @@ magnetic field:
:c,image(Eqs/force_spin_zeeman.jpg)
with mu0 the vacuum permeability, muB the Bohr magneton (muB = 5.788 eV/T
in metal units),
in metal units).
Style {aniso} is used to simulate an easy axis or an easy plane
for the magnetic spins in the defined group:

View File

@ -1,90 +0,0 @@
<script type="text/javascript"
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({ TeX: { equationNumbers: {autoNumber: "AMS"} } });
</script>
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
pair_style pair/spin/exchange command :h3
pair_style pair/spin/dmi command :h3
pair_style pair/spin/me command :h3
pair_style pair/spin/soc command :h3
[Syntax:]
pair_style pair/spin/exchange cutoff
pair_style pair/spin/dmi cutoff
pair_style pair/spin/me cutoff
pair_style pair/spin/soc/neel cutoff :pre
cutoff = global cutoff pair (distance units) :ulb,l
:ule
[Examples:]
pair_style pair/spin/exchange 4.0
pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885
pair_coeff 1 2 exchange 4.0 0.0446928 0.003496 1.4885 :pre
pair_style pair/spin/dmi 4.0
pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 :pre
pair_style pair/spin/soc/neel 4.0
pair_coeff * * neel 4.0 -0.003330282 0.864159 2.13731 :pre
[Description:]
Style {pair/spin} computes interactions between pairs of particles
that each have a spin.
The {pair/spin} style compute the short-range spin-spin interactions.
\begin\{equation\}
J_{i=0} = \sum_i \alpha
\end\{equation\}
$$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$
:c,image(Eqs/pair_lj.jpg)
The {lj/cut} and {lj/cut/coul/long} pair styles support the use of the
{inner}, {middle}, and {outer} keywords of the "run_style
respa"_run_style.html command, meaning the pairwise forces can be
:line
[Restrictions:]
All the {pair/spin} styles are part of the SPIN package.
These styles are only enabled if LAMMPS was built with this package.
See the "Making LAMMPS"_Section_start.html#start_3 section for more info.
[Related commands:]
"eam"
"pair_coeff"_pair_coeff.html
[Default:] none
:line
:link(Beaujouan1)
[(Beaujouan)] Beaujouan, Thibaudeau, and Barreteau, Phys Rev B, 86(17), 174409 (2012)
:link(Perera2)
[(Perera)] Perera, Eisenbach, Nicholson, Stocks, and Landau, Phys Rev B, 93(6), 060402 (2016)

View File

@ -41,14 +41,16 @@ This function is defined as:
where a, b and d are the three constant coefficients defined in the associated
"pair_coeff" command.
The coefficients a, b, and c need to be fitted so that the function above matches with
The coefficients a, b, and d need to be fitted so that the function above matches with
the value of the exchange interaction for the N neighbor shells taken into account.
Examples and more explanations about this function and its parametrization are reported
in "(Tranchida)"_#Tranchida1.
From this exchange interaction, each spin i will be submitted to a magnetic torque
omega and its associated atom to a force F, such as:
From this exchange interaction, each spin i will be submitted
to a magnetic torque omega, and its associated atom can be submitted to a
force F for spin-lattice calculations (see
"fix_integration_spin"_fix_integration_spin.html), such as:
:c,image(Eqs/pair_spin_exchange_forces.jpg)

View File

@ -24,6 +24,9 @@ pair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0 :pre
[Description:]
Styles {pair/spin/soc} compute pair interactions arising from the spin-orbit
coupling (soc).
Style {pair/spin/soc/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction
between pairs of magnetic spins:
@ -41,7 +44,7 @@ This function is defined as:
where a, b and d are the three constant coefficients defined in the associated
"pair_coeff" command.
The coefficients a, b, and c need to be fitted so that the function above matches with
The coefficients a, b, and d need to be fitted so that the function above matches with
the value of the DM interaction for the N neighbor shells taken
into account.

View File

@ -1,255 +0,0 @@
<script type="text/javascript"
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({ TeX: { equationNumbers: {autoNumber: "AMS"} } });
</script>
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
Tutorial for the SPIN package in LAMMPS :h3
This tutorial explains how to use the spin dynamics in LAMMPS,
and to perform spin and spin--lattice simulations using the
SPIN package. As an illustration, input files are documented.
First of all, LAMMPS has to be compiled with the SPIN package
activated. Then, the data file and input scripts have to be
modified to include the magnetic spins and to handle them.
:line
[Overview of the spin and spin--lattice dynamics]
At the atomic scale, magnetic materials can be seen as ensemble of
atoms, each one of them carying a magnetic moment, refered to as its
atomic spin. In ref "Antropov"_#Antropov, a formalism allowing to
simulate approximate classical spins, and to couple them to lattice
vibrations was introduced. Each of these spins is simulated via a
classical vector, associated to each magnetic atom, and whose
trajectory is defined by an equation of motion.
Lattice vibrations are simulated by the usual equations of MD.
A mechanical potential (EAM, Finnis-Siclair, or Dudarev-Derlet) ensure
the cohesion of the particles. The coupling between the magnetic and
lattice degrees of freedom is performed via the inter-atomic dependence
of the magnetic interactions.
:ole
:line
[Preparation of the data file]
For the mechanical potentials, the data file is similar to a standard LAMMPS
data file for {atom_style full}. The DPs and the {harmonic bonds} connecting
them to their DC should appear in the data file as normal atoms and bonds.
For the magnetic interactions, no data file is necessary, every interaction
input will be define in the input file. :pre
:line
[Basic input file]
Up to know, spin simulations only accept the metal units.
The atom style should be set to {spin}, so that you
can define atomic spin vectors.
The set group command defines the Lande factor (the norm) of
the magnetic vectors in a given group, and their initial
oriantation. The command is:
set group A B C D E F :pre
with A, B, C, D, E, and F the following input parameters:
A is set to all, or to the number of a specific and pre-defined
group of atoms,
B is set to {spin} or {spin/random}, depending on if the spins of
the group have to be initialized in a particulat direction, or randomly.
If B is defined as {spin}, the C is the Lande factor for the spins of
the group, and [D,E,F] is the vector giving the direction for the
initialization.
If B is defined as {spin/random}, C is a number giving the seed for the random
difinition of the directions, and D is the Lande factor of the spins
in this group. E and F are not defined.
Examples:
set group all spin 1.72 1.0 0.0 0.0
set group all spin/random 11 1.72
setting the initial direction of all spins, with a Lande factor of 1.72,
and either in the x direction, or randomly. :l
The pair style has to be set to {pair/spin}. The command is
pair_style pair/spin A
with A a global radius cutoff.
The different pair interactions and their associated coefficients can then be
defined via the pair coeff command.
pair_coeff A B C D E F G H
where A and B are setting the pair concerned by this pair coeff command.
For example, A=1 and B=2 to set the pair coefficients between spins of
type 1 and spins of type 2. Use {*} for setting a pair coeffcient between
all pairs of spins.
C defines the type of the interaction. It can be set to {exchange} for an
exchange interaction, {dmi} for a Dzyaloshinskii-Moriya (DM) interaction, or to
{me} for a magneto-electric (ME) interaction.
If C is set to {exchange}, D is the radius cutoff (in Angtrom) associated
to the exchange interaction, and E, F and G are the three parameters of the
Bethe--Slater function (E in eV, F without dimension, and G in Angtrom).
H is not defined.
If C is set to {dmi}, D is the radius cutoff (in Angtrom) associated to the DM
interaction, E is the intensity of the interaction in eV (which is also the
norm of the DM vector), and [F, G, H] are giving the direction of the DM
vector.
If C is set to {me}, D is the radius cutoff (in Angtrom) associated to the ME
interaction, E is the intensity of the interaction in eV (which corresponds to
the intensity of the electric polarization), and [F, G, H] are giving the
direction of the polarization vector.
Examples:
pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885
pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0
are setting an exchange interaction between every type of spins, with a radius
cutoff of 4.0 Angtrom, and E=0.0446928 eV, F=0.003496, and G=1.4885 Angtrom as
coefficient for the associated Bethe--Slater function, and a DM interaction
with a radius cutoff of 2.6 Angtrom, an intensity of 0.001 eV and a DM vector
in the direction [0.0 0.0 1.0]. :l
A fix has to be set to {force/spin} to define local magnetic forces, like the Zeeman
interaction or an anisotropic interaction. The command is:
fix A B C D E F G H
with A the label of the associated fix, B defining to which group of spins the
force is applied to, C defined as {force/spin} for magnetic local fixes, and
D defining the type of this fix. D can be equal to {zeeman} for a Zeeman interaction,
or to {anisotropy} for an anisotropic interaction.
If D is set to {zeeman}, then E gives the intensity of the applied magnetic field (in
Tesla), and [F, G, H] the direction of this field.
If is set to {anisotropy}, hen E gives the intensity of the anisotropic field (in eV),
and [F, G, H] the direction of this anisotropy.
Examples:
fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0
fix 2 all force/spin anisotropy 0.001 0.0 1.0 0.0
are setting two fixes, the first one, labelled 1, is applied to all spins and defines
a Zeeman interaction corresponding to a field of 1 Tesla in the z direction, whereas
the second fix, labelled 2, is also applied to all spins, and defines a uniaxial
anisotropy of intensity 0.001 eV, in the direction y. :l
To simulate the temperature effects, a fix has to be set to {langevin/spin}. The command
is
fix A B C D E F G
where A is the label of the associated fix, B defines to which spins the fix is applied,
and C is set equal to {langevin/spin}. Then, D defines the temperature of the random bath
(in K), E is the transverse magnetic damping (no dimension), F is a longitudinal magnetic
damping, and G the seed for the random variables.
Note: the transverse damping is not implemented into LAMMPS yet. It is necessary for
micromagnetic simulations only.
Examples:
fix 2 all langevin/spin 300.0 0.01 0.0 21
is setting a fix labelled as 2, which is connecting all spins to a random bath. The temperature
of this bath is set to 300 K, and the value of the transverse Gilbert damping is set to 0.01.
The seed is set to 21.
For LAMMPS to understand that the motion of spins has to be taken into account, one has to set
a fix to {nve/spin}. The command is:
fix A B C D
with A the label of this fix, B defining to which group of atoms this fix is applied to, C has
to be set to {nve/spin}, and D can be set to {serial} for a serial calculation, with one
processor only, or to {mpi} for a parallel calculation, with N processors.
Example:
fix 3 all nve/spin mpi
is setting a fix labelled 3, and applies it to all the particles. The calculation is running in
parallel as the option {mpi} is defined.
Two main outputs of the computed magnetic quntities can be performed.
The first one is via a compute and a fix options. The compute command is defined as:
compute A B C
with A the label of this compute, B to which group of particles it is applied to, and finally,
the option {compute/spin} has to be set.
This compute is associated to a fix to define the output frequency and format. A typical command is:
fix A B C D E F G H
where A is the label of the fix, B the group of particles it is applied to, C defines the type of the
output fix, for example we chose to use {ave/time}, which can output every N timesteps, and perform
a time average over those steps. D, E, and F are the usual command of {ave/time}. G stands for the
magnetic quantities that are computed by {compute/spin}. Those quantities are:
c_mag[1] Physical time (in ps)
c_mag[2] Magnetization along x (adim)
c_mag[3] Magnetization along y (adim)
c_mag[4] Magnetization along z (adim)
c_mag[5] Magnetization Norm (adim)
c_mag[6] Magnetic energy (in eV)
c_mag[7] Spin temperature (in K)
And H stands for the output format, and is defined as in other .
Example:
compute 1 all compute/spin
fix 3 all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7]
file mag_output.dat format %20.16g
is defining a compute of the magnetic quantities applied to all spins. The fix then outputs
every magnetic quantities every 10 time steps without performing any time average. These
quantities are stored in a file called mag_output.dat, with a special format (defined by %20.16g)
It is also possible to output the evolution of the spin configuration. This can be done with
the dump command. The only difference with a regular dump command is that the velocities
vi are replaced by the spin components spi.
Example:
dump 1 all custom 100 dump_spin.lammpstrj type x y z spx spy spz
is dumping every 100 timesteps the spin configuration in a file called dump_spin.lammpstrj.
:line
:link(Antropov)
[(Antropov)] Antropov, Katsnelson, Harmon, Van Schilfgaarde, and Kusnezov, Phys Rev B, 54(2), 1019 (1996)

View File

@ -1,237 +0,0 @@
<HTML>
<H3>txt2html - a text to HTML conversion tool
</H3>
<P><B>txt2html</B> is a simple tool for converting text files into HTML files.
Text files can contain simple formatting and mark-up commands that
<B>txt2html</B> converts into HTML.
</P>
<P><B>txt2html</B> was written by <A HREF = "http://www.cs.sandia.gov/~sjplimp">Steve Plimpton</A>. I use it for
<A HREF = "http://www.cs.sandia.gov/~sjplimp/lammps.html">documentation</A> and <A HREF = "http://www.cs.sandia.gov/~sjplimp">WWW pages</A>. Anna Reese added the table
formatting options.
</P>
<P>See the <A HREF = "example.txt">example.txt</A> and <A HREF = "example.html">example.html</A>
files in the <B>txt2html</B> directory for examples of what all the
formatting commands and mark-up syntax end up looking like in HTML.
</P>
<HR>
<P><B>Syntax:</B>
</P>
<DL><DT>txt2html file
<DD> read from text file, write HTML to standard output
<DT>txt2html file1 file2 file3 ...
<DD> read each argument as text file, write one HTML file per argument
</DL>
<P>Input files are first opened with the specified name. If that fails,
a ".txt" suffix is added. Output files are created with an ".html"
suffix, which is either added or replaces the ".txt" suffix.
</P>
<HR>
<P><B>Compiling:</B>
</P>
<P>The source for <B>txt2html</B> is a single C++ file. Compile it by typing:
</P>
<PRE>g++ -o txt2html txt2html.cpp
</PRE>
<HR>
<P><B>How the tool works:</B>
</P>
<P><B>txt2html</B> reads a text file, one <I>paragraph</I> at a time. A paragraph
ends with:
</P>
<UL><LI> a blank line
<LI> a line whose final word starts with ":" (a format string)
<LI> the end of the file
</UL>
<P>Any line in the paragraph which ends with "\" is concatenated to the
following line by removing the "\" character and following newline.
This can be useful for some of the formatting commands described below
that operate on individual lines in the paragraph.
</P>
<P>If a paragraph starts with a "&lt;" character and ends with a "&gt;"
character, it is treated as raw HTML and is written directly into the
output file.
</P>
<P>If a paragraph does not end with a format string, then it is
surrounded with HTML paragraph markers (&lt;P&gt; and &lt;/P&gt;),
<A HREF = "#markup">mark-up</A> is performed, and the paragraph is written to the
output file.
</P>
<P>If the paragraph ends with a format string, then <A HREF = "#format">formatting</A>
is performed, <A HREF = "#markup">mark-up</A> is performed, and the paragraph is
written to the output file.
</P>
<HR>
<A NAME = "format"></A><B>Formatting:</B>
<P>A format string is the last word of a paragraph if it starts with a
":" character. A format string contains one or more comma-separated
commands, like ":ulb,l" or ":c,h3". Note that a format string cannot
contain spaces, else it would not be the last word. An individual
command can have 0 or more arguments:
</P>
<UL><LI> <I>b</I> or <I>line()</I> = 0 arguments
<LI> <I>image(file)</I> = 1 argument
<LI> <I>link(alias,value)</I> = 2 or more comma-separated arguments
</UL>
<P>Format commands add HTML markers at the beginning or end of the
paragraph and individual lines. Commands are processed in the order
they appear in the format string. Thus if two commands add HTML
markers to the beginning of the paragraph, the 2nd command's marker
will appear 2nd. The reverse is true at the end of the paragraph; the
2nd command's marker will appear 1st. Some comands, like <I>line</I> or
<I>image</I> make most sense if used as stand-alone commands without an
accompanying paragraph.
</P>
<P>Commands that format the entire paragraph:
</P>
<UL><LI> p --&gt; surround the paragraph with &lt;P&gt; &lt;/P&gt;
<LI> b --&gt; put &lt;BR&gt; at the end of the paragraph
<LI> pre --&gt; surround the paragraph with &lt;PRE&gt; &lt;/PRE&gt;
<LI> c --&gt; surround the paragraph with &lt;CENTER&gt; &lt;/CENTER&gt;
<LI> h1,h2,h3,h4,h5,h6 --&gt; surround the paragraph with &lt;H1&gt; &lt;/H1&gt;, etc
</UL>
<P>Commands that format the lines of the paragraph as a list:
</P>
<UL><LI> ul --&gt; surround the paragraph with &lt;UL&gt; &lt;/UL&gt;, put &lt;LI&gt; at start of every line
<LI> ol --&gt; surround the paragraph with &lt;OL&gt; &lt;/OL&gt;, put &lt;LI&gt; at start of every line
<LI> dl --&gt; surround the paragraph with &lt;DL&gt; &lt;/DL&gt;, alternate &lt;DT&gt; and &lt;DD&gt; at start of every line
</UL>
<P>Commands that treat the paragraph as one entry in a list:
</P>
<UL><LI> l --&gt; put &lt;LI&gt; at the beginning of the paragraph
<LI> dt --&gt; put &lt;DT&gt; at the beginning of the paragraph
<LI> dd --&gt; put &lt;DD&gt; at the beginning of the paragraph
<LI> ulb --&gt; put &lt;UL&gt; at the beginning of the paragraph
<LI> ule --&gt; put &lt;/UL&gt; at the end of the paragraph
<LI> olb --&gt; put &lt;OL&gt; at the beginning of the paragraph
<LI> ole --&gt; put &lt;/OL&gt; at the end of the paragraph
<LI> dlb --&gt; put &lt;DL&gt; at the beginning of the paragraph
<LI> dle --&gt; put &lt;/DL&gt; at the end of the paragraph
</UL>
<P>Commands applied to each line of the paragraph:
</P>
<UL><LI> all(p) --&gt; surround each line with &lt;P&gt; &lt;/P&gt;
<LI> all(c) --&gt; surround each line with &lt;CENTER&gt; &lt;/CENTER&gt;
<LI> all(b) --&gt; append a &lt;BR&gt; to each line
<LI> all(l) --&gt; prepend a &lt;LI&gt; to each line
</UL>
<P>Special commands (all HTML is inserted at beginning of paragraph):
</P>
<UL><LI> line --&gt; insert a horizontal line = &lt;HR&gt;
<LI> image(file) --&gt; insert an image = &lt;IMG SRC = "file"&gt;
<LI> image(file,link) --&gt; insert an image that when clicked on goes to link
<LI> link(name) --&gt; insert a named link that can be referred to elsewhere (see <A HREF = "#markup">mark-up</A>) = &lt;A NAME = "name"&gt;&lt;/A&gt;
<LI> link(alias,value) --&gt; define a link alias that can be used elsewhere in this file (see <A HREF = "#markup">mark-up</A>)
</UL>
<P>Table command:
</P>
<UL><LI> tb(c=3,b=5,w=100%,a=c) --&gt; format the paragraph as a table
</UL>
<P>Arguments within tb() can appear in any order and are all optional,
since they each have default values.
</P>
<UL><LI> c=N --&gt; Make an N-column table. Treat the paragraph as one
long list of entries (separated by the separator character) and put
them into N columns one after the other. If N = 0, treat each line
of the paragraph as one row of the table with as many columns as
there are maximum entries in any line. Default is c=0.
<LI> s=: --&gt; Use the character string following the equal sign as
the separator between entries. Default separator is a comma "," which
you cannot specify directly since the comma delimits the tb() arguments
<LI> b=N --&gt; Create a border N pixels wide. If N is 0, there is no
border between or outside the cells. If N is 1, there is a minimal
border between and outside all cells. For N > 1, the border between
cells does not change but the outside border gets wider. Default is
b=1.
<LI> w=N or w=N% --&gt The first form makes each cell of the table at
least N pixels wide. The second form makes the entire table take up
N% of the width of the browser window. Default is w=0 which means
each cell will be just as wide as the text it contains.
<LI> a=X --&gt Align the entire table at the left, center, or right of the
browser window, for X = "l", "c", or "r". Default is a=c.
<LI> ea=X --&gt Align the text in each entry at the left, center, or
right of its cell, for X = "l", "c", or "r". Default is browser's
default (typically left).
<LI> eva=X --&gt Vertically align the text in each entry at the
top, middle, baseline, or bottom of its cell, for X = "t", "m", "ba",
or "bo". Default is browser's default (typically middle).
<LI> cwM=N or cwM=N% --&gt The first form makes column M be at least
N pixels wide. The second form makes column M take up N% of the
width of the browser window. This setting overrides the "w"
argument for column M. Only one column per table can be tweaked
with this argument. Default is no settings for any column.
<LI> caM=X --&gt Align the text in each entry of column M at the left,
center, or right of its cell, for X = "l", "c", or "r". This
setting overrides the "ea" argument for column M. Only one column
per table can be tweaked with this argument. Default is no settings
for any column.
<LI> cvaM=X --&gt Vertically align the text in each entry of column m
at the top, middle, baseline, or bottom of its cell, for X = "t",
"m", "ba", or "bo". This setting overrides the "eva" argument for
column M. Only one column per table can be tweaked with this
argument. Default is no settings for any column.
</UL>
<HR>
<A NAME = "markup"></A><B>Mark-up:</B>
<P>The text of the paragraph is scanned for special mark-up characters
which are converted into HTML.
</P>
<P>Bold and italic characters:
</P>
<UL> <LI> "[" (left brace) --&gt; turn-on bold by inserting a &lt;B&gt;
<LI> "]" (right brace) --&gt; turn-off bold by inserting a &lt;/B&gt;
<LI> "{" (left bracket) --&gt; turn-on italics by inserting a &lt;I&gt;
<LI> "}" (right bracket) --&gt; turn-off italics by
inserting a &lt;/I&gt; </UL>
<P>If a backspace '\' precedes any of the bold/italic mark-up characters,
then mark-up is not performed; the mark-up character is simply left in
the text.
</P>
<P>Links are inserted by enclosing a section of text in double quotes,
and appending an underscore to the ending quote, followed by the link.
The link ends when whitespace is found, except that trailing
punctuation characters (comma, period, semi-colon, colon, question
mark, exclamation point, parenthesis) are not considered part of the
link.
</P>
<P> A link of the form "text"_link becomes &lt;A HREF =
"link"&gt;text&lt;/A&gt; in the HTML output. The only exception is if
"link" is defined elsewhere in the file as an alias (see the link
command above). In that case, the value is used instead of the alias
name. </P>
<P>With these rules, links can take several forms.
</P>
<UL> <LI> "This links"_#abc to another part of this file which is
labeled with a :link(abc) command. <BR>
<LI> "This links"_other.html to another file named other.html. <BR>
<LI> "This links"_other.html#abc to another file which has an "abc"
location defined internally. <BR>
<LI> "This links"_http://www.google.com to a WWW site. <BR>
<LI> "This"_M12 could be used in place of any of the above forms. It
requires an alias like :link(M12,http://www.google.com) to be defined
elsewhere in the file. </UL>
</HTML>

View File

@ -35,15 +35,15 @@ fix 3 all integration/spin lattice no
timestep 0.0002
compute out_mag all compute/spin
compute out_pe all pe
compute out_ke all ke
compute out_mag all compute/spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
variable mag_force equal f_1
thermo_style custom step time v_magnorm v_emag temp etotal

View File

@ -44,10 +44,10 @@ compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
variable mag_force equal f_1
thermo_style custom step time v_magnorm v_emag temp etotal

View File

@ -44,10 +44,10 @@ compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
variable mag_force equal f_1
thermo_style custom step time v_magnorm v_emag temp etotal

View File

@ -1,94 +0,0 @@
###################
#######Init########
###################
clear
units metal
dimension 3
boundary p p p
#setting atom_style to spin:
atom_style spin
#Define sort for paramagnetic simulations (if no pair interaction)
#atom_modify sort 1000 4.0
#why?
atom_modify map array
###########################
#######Create atoms########
###########################
#Lattice constant of sc Iron atoms of BFO
lattice sc 3.96
region box block 0.0 34.0 0.0 34.0 0.0 5.0
create_box 1 box
create_atoms 1 box
#######################
#######Settings########
#######################
#Setting one or more properties of one or more atoms.
mass 1 1.0
#Setting spins orientation and moment
set group all spin/random 11 2.50
#set group all spin 2.50 1.0 0.0 0.0
#Magnetic interactions for BFO
#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME)
pair_style hybrid/overlay pair/spin/exchange 6.0 pair/spin/me 4.5
pair_coeff * * pair/spin/exchange exchange 6.0 -0.01575 0.0 1.965
pair_coeff * * pair/spin/me me 4.5 0.00109 1.0 1.0 1.0
#pair_coeff * * pair/spin/soc/dmi dmi 4.5 0.001 1.0 1.0 1.0
#Define a skin distance, update neigh list every
neighbor 0.0 bin
neigh_modify every 10 check yes delay 20
#Magnetic field fix
#Type | Intensity (T or eV) | Direction
#fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0
fix 1 all force/spin anisotropy 0.0000035 0.0 0.0 1.0
#fix 1 all force/spin anisotropy 0.0 0.0 0.0 1.0
#Fix Langevin spins (merging damping and temperature)
#Temp | Alpha_trans | Alpha_long | Seed
fix 2 all langevin/spin 0.0 0.0 0.0 21
#Magnetic integration fix
fix 3 all integration/spin serial lattice no
#Setting the timestep for the simulation (in ps)
timestep 0.0001
##################
#######run########
##################
compute out_mag all compute/spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
#compute real time, total magnetization, magnetic energy, and spin temperature
#Iteration | Time | Mx | My | Mz | |M| | Em | Tm
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable mag_force equal f_1
thermo 10
thermo_style custom step time v_magnorm v_emag temp etotal
thermo_modify format float %20.15g
#Dump the positions and spin directions of magnetic particles (vmd format)
dump 1 all custom 100 dump_spin_BFO.lammpstrj type x y z spx spy spz
#Running the simulations for N timesteps
run 50000

View File

@ -1,125 +0,0 @@
###################
#######Init########
###################
clear
units metal
dimension 3
#boundary p p p
boundary p p p
#newton off
#setting atom_style to spin:
atom_style spin
#Define sort for paramagnetic simulations (if no pair interaction)
#atom_modify sort 1000 4.0
atom_modify map array
###########################
#######Create atoms########
###########################
lattice fcc 3.54
region box block 0.0 5.0 0.0 5.0 0.0 5.0
create_box 1 box
create_atoms 1 box
#######################
#######Settings########
#######################
#isolating 1 atom into a group
group single_spin id 10
#Setting one or more properties of one or more atoms.
mass 1 58.93
#Setting spins orientation and moment
set group all spin/random 31 1.72
#set group all spin 1.72 0.0 0.0 1.0
#set group single_spin spin/random 11 1.72
#velocity all create 200 4928459 rot yes dist gaussian
velocity all create 200 4928459 rot yes dist gaussian
#Magneto-mechanic interactions for bulk fcc Cobalt
#pair_style pair/spin/exchange 4.0
#pair_style eam/alloy
#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0
pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0
pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co
#pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co
#pair_style pair/spin/exchange 4.0
#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange)
#pair_coeff * * exchange 4.0 -0.0446928 0.003496 1.4885
#pair_coeff * * exchange 4.0 0.0 0.003496 1.4885
pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885
#pair_coeff * * pair/spin/exchange exchange 2.5 0.0446928 0.003496 1.4885
#pair_coeff * * pair/spin/exchange exchange 4.0 0.0 0.003496 1.4885
#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME)
#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0
#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0
#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC)
#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731
#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0 0.864159 2.13731
#Define a skin distance, update neigh list every
neighbor 0.1 bin
neigh_modify every 10 check yes delay 20
#neighbor 1.0 bin
#neigh_modify every 1 check no delay 0
#Magnetic field fix
#Type | Intensity (T or eV) | Direction
#fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0
#fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0
#Fix Langevin spins (merging damping and temperature)
#Temp | Alpha_trans | Alpha_long | Seed
#fix 2 all langevin/spin 0.0 0.1 0.0 21
#fix 2 all langevin/spin 0.0 0.0 0.0 21
#Magnetic integration fix
fix 3 all integration/spin lattice yes
#fix 3 all integration/spin lattice no
#compute real time, total magnetization, magnetic energy, and spin temperature
#Iteration | Time | Mx | My | Mz | |M| | Em | Tm
#Setting the timestep for the simulation (in ps)
timestep 0.0001
##################
#######run########
##################
compute out_mag all compute/spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable mag_force equal f_1
#variable test equal etotal-0.5*c_out_mag[6]
thermo 10
thermo_style custom step time v_magnorm v_emag temp etotal
thermo_modify format float %20.15g
#Dump the positions and spin directions of magnetic particles (vmd format)
dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz
#Running the simulations for N timesteps
run 10
#run 1000

View File

@ -1,126 +0,0 @@
###################
#######Init########
###################
clear
#setting units to metal (Ang, picosecs, eV, ...):
units metal
#setting dimension of the system (N=2 or 3):
dimension 3
#setting boundary conditions. (p for periodic, f for fixed, ...)
boundary p p p
#boundary f f f
#setting atom_style to spin:
atom_style spin
#Define sort for paramagnetic simulations (if no pair interaction)
#atom_modify sort 1000 4.0
#why?
atom_modify map array
#newton off for pair spin in SEQNEI
#newton off off
###########################
#######Create atoms########
###########################
#Lattice constant of fcc Cobalt
lattice fcc 3.54
#lattice sc 2.50
#Test Kagome
#variable a equal sqrt(3.0)/8.0
#variable b equal 3.0*sqrt(3.0)/8.0
#variable c equal sqrt(3.0)/4.0
#lattice custom 2.5 a1 1.0 0.0 0.0 &
# a2 0.0 1.0 0.0 &
# a3 0.0 0.0 1.0 &
# basis 0.0 $a 0.0 &
# basis 0.25 $a 0.0 &
# basis 0.375 0.0 0.0 &
# basis 0.25 $b 0.0 &
# basis 0.5 $b 0.0 &
# basis 0.625 $c 0.0
#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen
#(for block, one has x0, xf, y0, yf, z0, zf, in distance units)
region box block 0.0 5.0 0.0 5.0 0.0 5.0
#Creating a simulation box based on the specified region. Entries: number of atom types and box ref.
create_box 1 box
#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ...
#Entries: atom type,
create_atoms 1 box
#Replicating NxNxN the entire set of atoms
#replicate 1 1 1
#######################
#######Settings########
#######################
#Setting one or more properties of one or more atoms.
#Setting mass
mass 1 1.0
#set group all mass 1.0
#Setting spins orientation and moment
#set group all spin/random 11 1.72
set group all spin 1.72 1.0 0.0 0.0
#Magnetic exchange interaction coefficient for bulk fcc Cobalt
pair_style pair/spin 4.0
#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange)
pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885
#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME)
#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0
#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0
#Define a skin distance, update neigh list every
#neighbor 1.0 bin
#neigh_modify every 10 check yes delay 20
neighbor 0.0 bin
neigh_modify every 1 check no delay 0
#Magnetic field fix
#Type | Intensity (T or eV) | Direction
fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0
#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0
#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0
#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0
#Fix Langevin spins (merging damping and temperature)
#Temp | Alpha_trans | Alpha_long | Seed
#fix 2 all langevin/spin 0.0 0.1 0.0 21
fix 2 all langevin/spin 1.0 0.1 0.0 21
#fix 2 all langevin/spin 0.0 0.0 0.0 21
#Magnetic integration fix
fix 3 all nve/spin mpi
#compute real time, total magnetization, magnetic energy, and spin temperature
#Iteration | Time | Mx | My | Mz | |M| | Em | Tm
compute mag all compute/spin
fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g
#Setting the timestep for the simulation (in ps)
timestep 0.0001
##################
#######run########
##################
#Dump the positions and spin directions of magnetic particles (vmd format)
dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz
#Running the simulations for N timesteps
run 2000
#run 1

View File

@ -1,88 +0,0 @@
###################
#######Init########
###################
clear
units metal
dimension 3
boundary p p p
#boundary f f f
#setting atom_style to spin:
atom_style spin
atom_modify map array
###########################
#######Create atoms########
###########################
read_data ../examples/SPIN/Norm_randXY_8x8x32_test.data
#######################
#######Settings########
#######################
#Setting one or more properties of one or more atoms.
mass 1 58.93
#velocity all create 200 4928459 rot yes dist gaussian
#Magneto-mechanic interactions for bulk fcc Cobalt
pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0
# cobalt eam potential
pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co
#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange)
pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885
#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC)
pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731
#Define a skin distance, update neigh list every
#neighbor 1.0 bin
#neigh_modify every 10 check yes delay 20
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
#Magnetic field fix
#Type | Intensity (T or eV) | Direction
fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0
#Fix Langevin spins (merging damping and temperature)
#Temp | Alpha_trans | Alpha_long | Seed
fix 2 all langevin/spin 0.0 0.0 0.0 21
#Magnetic integration fix
fix 3 all integration/spin serial
#Setting the timestep for the simulation (in ps)
timestep 0.0001
##################
#######run########
##################
compute out_mag all compute/spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable mag_force equal f_1
thermo 10
thermo_style custom step time v_magnorm v_emag v_tmag temp etotal
thermo_modify format float %20.15g
#Dump the positions and spin directions of magnetic particles (vmd format)
dump 1 all custom 1 dump.lammpstrj type x y z spx spy spz
#Running the simulations for N timesteps
run 10
#run 10000

View File

@ -1,109 +0,0 @@
###################
#######Init########
###################
clear
units metal
dimension 3
boundary p p p
#boundary f f f
#newton off
#setting atom_style to spin:
atom_style spin
#Define sort for paramagnetic simulations (if no pair interaction)
#atom_modify sort 1000 4.0
atom_modify map array
###########################
#######Create atoms########
###########################
lattice fcc 3.54
region box block 0.0 5.0 0.0 5.0 0.0 5.0
create_box 1 box
#create_atoms 1 box
#read_dump dump_cobalt.lammpstrj 500 x y z vx vy vz box yes
read_dump ../examples/SPIN/Norm_randXY_8x8x32.dump 0 x y z box yes
create_atoms 1 box
#######################
#######Settings########
#######################
#isolating 1 atom into a group
group single_spin id 10
#Setting one or more properties of one or more atoms.
mass 1 58.93
#Setting spins orientation and moment
#set group all spin/random 31 1.72
set group all spin 1.72 0.0 0.0 1.0
set group single_spin spin/random 11 1.72
velocity all create 200 4928459 rot yes dist gaussian
#Magneto-mechanic interactions for bulk fcc Cobalt
pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0
# cobalt eam potential
pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co
#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange)
pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885
#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC)
pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731
#Define a skin distance, update neigh list every
#neighbor 1.0 bin
#neigh_modify every 10 check yes delay 20
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
#Magnetic field fix
#Type | Intensity (T or eV) | Direction
fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0
#Fix Langevin spins (merging damping and temperature)
#Temp | Alpha_trans | Alpha_long | Seed
fix 2 all langevin/spin 0.0 0.0 0.0 21
#Magnetic integration fix
fix 3 all integration/spin serial
#Setting the timestep for the simulation (in ps)
timestep 0.0001
##################
#######run########
##################
compute out_mag all compute/spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable mag_force equal f_1
thermo 10
thermo_style custom step time v_magnorm v_emag v_tmag temp etotal
thermo_modify format float %20.15g
#Dump the positions and spin directions of magnetic particles (vmd format)
dump 1 all custom 20 dump.lammpstrj type x y z spx spy spz
#Running the simulations for N timesteps
run 100
#run 10000

View File

@ -44,10 +44,10 @@ compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
variable mag_force equal f_1
thermo_style custom step time v_magnorm v_emag temp etotal

View File

@ -44,10 +44,10 @@ compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
variable mag_force equal f_1
thermo_style custom step time v_magnorm v_emag temp etotal

View File

@ -1,91 +0,0 @@
#!/bin/bash
# example prepare_vmd.sh /home/jtranch/Documents/lammps/src/dump_VSRSV.lammpstrj
# you will get a return file
echo "vmd script for file $1 is preparing..."
timestamp(){
date +%s
}
TS=$(timestamp)
FILE=view_${TS}.vmd
cat >${FILE} <<EOF
proc vmd_draw_arrow {mol start end} {
set middle [vecadd \$start [vecscale 0.9 [vecsub \$end \$start]]]
graphics \$mol cylinder \$start \$middle radius 0.05
graphics \$mol cone \$middle \$end radius 0.01 color 3
}
proc vmd_draw_vector {args} {
set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale <s>] [resolution <res>] [radius <r>] [filled <yes/no>]"}
# defaults
set scale 2.0
set res 50
set radius 0.1
set filled yes
if {[llength \$args] < 3} {
error "wrong # args: should be \$usage"
}
set mol [lindex \$args 0]
set center [lindex \$args 1]
set vector [lindex \$args 2]
if {[llength \$center] != 3 || [llength \$vector] != 3} {
error "wrong type of args: should be \$usage"
}
foreach {flag value} [lrange \$args 3 end] {
switch -glob \$flag {
scale {set scale \$value}
res* {set res \$value}
rad* {set radius \$value}
fill* {set filled \$value}
default {error "unknown option '\$flag': should be \$usage" }
}
}
set vechalf [vecscale [expr \$scale * 0.5] \$vector]
return [list \\
[graphics \$mol color yellow]\\
[graphics \$mol cylinder [vecsub \$center \$vechalf]\\
[vecadd \$center [vecscale 0.7 \$vechalf]] \\
radius \$radius resolution \$res filled \$filled] \\
[graphics \$mol color orange]\\
[graphics \$mol cone [vecadd \$center [vecscale 0.6 \$vechalf]] \\
[vecadd \$center \$vechalf] radius [expr \$radius * 2.5] \\
resolution \$res]]
}
proc vmd_draw_spin {args} {
global molid
graphics \$molid delete all
set frame [molinfo \$molid get frame]
set natoms [molinfo \$molid get numatoms]
for {set i 0} {\$i < \$natoms} {incr i} {
set sel [atomselect top "index \$i"]
set coords [lindex [\$sel get {x y z}] \$molid]
set velocities [lindex [\$sel get {vx vy vz}] \$molid]
draw vector \$coords \$velocities
set uvx [lindex [\$sel get {vx}] \$molid]
set uvy [lindex [\$sel get {vy}] \$molid]
set uvz [lindex [\$sel get {vz}] \$molid]
\$sel set user [vecadd [vecadd [vecscale \$uvy \$uvy] [vecscale \$uvz \$uvz] ] [vecscale \$uvx \$uvx]]
\$sel set user \$uvy
#draw vector \$coords {0.0 uvy 0.0}
}
#pbc box -color 3
}
proc enable_trace {} {
global vmd_frame
trace variable vmd_frame([molinfo top]) w vmd_draw_spin
}
set molid [mol addfile {$1} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all]
scale by 0.5
animate style Loop
enable_trace
EOF
echo "$FILE is ready..."

View File

@ -69,10 +69,10 @@ compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
variable mag_force equal f_1
thermo 10

View File

@ -66,10 +66,10 @@ timestep 0.0002
# define output and run
compute out_mag all compute/spin
variable magz equal c_out_mag[4]
variable magnorm equal c_out_mag[5]
variable emag equal c_out_mag[6]
variable tmag equal c_out_mag[7]
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
variable mag_force equal f_1
thermo_style custom step time v_magnorm v_emag etotal

View File

@ -1,79 +0,0 @@
proc vmd_draw_arrow {mol start end} {
set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]]
graphics $mol cylinder $start $middle radius 0.05
graphics $mol cone $middle $end radius 0.01 color 3
}
proc vmd_draw_vector {args} {
set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale <s>] [resolution <res>] [radius <r>] [filled <yes/no>]"}
# defaults
set scale 2.0
set res 50
set radius 0.1
set filled yes
if {[llength $args] < 3} {
error "wrong # args: should be $usage"
}
set mol [lindex $args 0]
set center [lindex $args 1]
set vector [lindex $args 2]
if {[llength $center] != 3 || [llength $vector] != 3} {
error "wrong type of args: should be $usage"
}
foreach {flag value} [lrange $args 3 end] {
switch -glob $flag {
scale {set scale $value}
res* {set res $value}
rad* {set radius $value}
fill* {set filled $value}
default {error "unknown option '$flag': should be $usage" }
}
}
set vechalf [vecscale [expr $scale * 0.5] $vector]
return [list \
[graphics $mol color yellow]\
[graphics $mol cylinder [vecsub $center $vechalf]\
[vecadd $center [vecscale 0.7 $vechalf]] \
radius $radius resolution $res filled $filled] \
[graphics $mol color orange]\
[graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \
[vecadd $center $vechalf] radius [expr $radius * 2.5] \
resolution $res]]
}
proc vmd_draw_spin {args} {
global molid
graphics $molid delete all
set frame [molinfo $molid get frame]
set natoms [molinfo $molid get numatoms]
for {set i 0} {$i < $natoms} {incr i} {
set sel [atomselect top "index $i"]
# set sel [atomselect top "index 1200"]
set coords [lindex [$sel get {x y z}] $molid]
set velocities [lindex [$sel get {vx vy vz}] $molid]
draw vector $coords $velocities
set uvx [lindex [$sel get {vx}] $molid]
set uvy [lindex [$sel get {vy}] $molid]
set uvz [lindex [$sel get {vz}] $molid]
$sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]]
$sel set user $uvy
#draw vector $coords {0.0 uvy 0.0}
}
#pbc box -color 3
}
proc enable_trace {} {
global vmd_frame
trace variable vmd_frame([molinfo top]) w vmd_draw_spin
}
set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all]
scale by 0.5
animate style Loop
enable_trace

View File

@ -41,7 +41,7 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) :
if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command");
vector_flag = 1;
size_vector = 7;
size_vector = 6;
extvector = 0;
init();
@ -133,13 +133,12 @@ void ComputeSpin::compute_vector()
spintemperature = hbar*tempnumtot;
spintemperature /= (kb*tempdenomtot);
vector[0] = invoked_vector*update->dt;
vector[1] = magtot[0];
vector[2] = magtot[1];
vector[3] = magtot[2];
vector[4] = magtot[3];
vector[5] = magenergytot*hbar;
vector[6] = spintemperature;
vector[0] = magtot[0];
vector[1] = magtot[1];
vector[2] = magtot[2];
vector[3] = magtot[3];
vector[4] = magenergytot*hbar;
vector[5] = spintemperature;
}
@ -149,6 +148,6 @@ void ComputeSpin::compute_vector()
void ComputeSpin::allocate()
{
memory->create(vector,7,"compute/spin:vector");
memory->create(vector,6,"compute/spin:vector");
}