use dynamic/dof and extra/dof consistently. remove compatibility note in docs.

This commit is contained in:
Axel Kohlmeyer
2023-06-30 16:17:47 -04:00
parent 55918ebabf
commit c1213c5222
32 changed files with 688 additions and 688 deletions

View File

@ -12,16 +12,14 @@ Syntax
* compute-ID = ID of the compute to modify * compute-ID = ID of the compute to modify
* one or more keyword/value pairs may be listed * one or more keyword/value pairs may be listed
* keyword = *extra/dof* or *extra* or *dynamic/dof* or *dynamic* * keyword = *extra/dof* or *dynamic/dof*
.. parsed-literal:: .. parsed-literal::
*extra/dof* value = N *extra/dof* value = N
N = # of extra degrees of freedom to subtract N = # of extra degrees of freedom to subtract
*extra* syntax is identical to *extra/dof*, will be disabled at some point
*dynamic/dof* value = *yes* or *no* *dynamic/dof* value = *yes* or *no*
yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature
*dynamic* syntax is identical to *dynamic/dof*, will be disabled at some point
Examples Examples
"""""""" """"""""
@ -37,19 +35,18 @@ Description
Modify one or more parameters of a previously defined compute. Not Modify one or more parameters of a previously defined compute. Not
all compute styles support all parameters. all compute styles support all parameters.
The *extra/dof* or *extra* keyword refers to how many degrees of The *extra/dof* keyword refers to how many degrees of freedom are
freedom are subtracted (typically from :math:`3N`) as a normalizing subtracted (typically from :math:`3N`) as a normalizing factor in a
factor in a temperature computation. Only computes that compute a temperature computation. Only computes that compute a temperature use
temperature use this option. The default is 2 or 3 for :doc:`2d or 3d this option. The default is 2 or 3 for :doc:`2d or 3d systems
systems <dimension>` which is a correction factor for an ensemble of <dimension>` which is a correction factor for an ensemble of velocities
velocities with zero total linear momentum. For compute temp/partial, with zero total linear momentum. For compute temp/partial, if one or
if one or more velocity components are excluded, the value used for more velocity components are excluded, the value used for *extra/dof* is
*extra* is scaled accordingly. You can use a negative number for the scaled accordingly. You can use a negative number for the *extra/dof*
*extra* parameter if you need to add degrees-of-freedom. See the parameter if you need to add degrees-of-freedom. See the :doc:`compute
:doc:`compute temp/asphere <compute_temp_asphere>` command for an temp/asphere <compute_temp_asphere>` command for an example.
example.
The *dynamic/dof* or *dynamic* keyword determines whether the number The *dynamic/dof* keyword determines whether the number
of atoms :math:`N` in the compute group and their associated degrees of atoms :math:`N` in the compute group and their associated degrees
of freedom (DOF) are re-computed each time a temperature is computed. of freedom (DOF) are re-computed each time a temperature is computed.
Only compute styles that calculate a temperature use this option. By Only compute styles that calculate a temperature use this option. By
@ -61,12 +58,6 @@ are adding atoms or molecules to the system (see the :doc:`fix pour
<fix_evaporate>`), then this option should be used to ensure the <fix_evaporate>`), then this option should be used to ensure the
temperature is correctly normalized. temperature is correctly normalized.
.. note::
The *extra* and *dynamic* keywords should not be used as they
are deprecated (March 2017) and will eventually be disabled. Instead,
use the equivalent *extra/dof* and *dynamic/dof* keywords.
Restrictions Restrictions
"""""""""""" """"""""""""
none none
@ -79,5 +70,5 @@ Related commands
Default Default
""""""" """""""
The option defaults are extra/dof = 2 or 3 for 2d or 3d systems and The option defaults are extra/dof = 2 or 3 for 2d or 3d systems,
dynamic/dof = *no*. respectively, and dynamic/dof = *no*.

View File

@ -202,7 +202,7 @@ change from zero to one at the location of the spike in :math:`g(r)`.
parallel efficiency and scaling. For systems, where only the type parallel efficiency and scaling. For systems, where only the type
of atoms changes (e.g., when using :doc:`fix atom/swap <fix_atom_swap>`), of atoms changes (e.g., when using :doc:`fix atom/swap <fix_atom_swap>`),
you need to explicitly request the dynamic normalization updates you need to explicitly request the dynamic normalization updates
via :doc:`compute_modify dynamic yes <compute_modify>` via :doc:`compute_modify dynamic/dof yes <compute_modify>`
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -49,25 +49,26 @@ rotational).
.. note:: .. note::
This choice for degrees of freedom (DOF) assumes that all This choice for degrees of freedom (DOF) assumes that all finite-size
finite-size aspherical or spherical particles in your model will aspherical or spherical particles in your model will freely rotate,
freely rotate, sampling all their rotational DOF. It is possible to sampling all their rotational DOF. It is possible to use a
use a combination of interaction potentials and fixes that induce no combination of interaction potentials and fixes that induce no torque
torque or otherwise constrain some of all of your particles so that or otherwise constrain some of all of your particles so that this is
this is not the case. Then there are fewer DOF and you should use the not the case. Then there are fewer DOF and you should use the
:doc:`compute_modify extra <compute_modify>` command to adjust the DOF :doc:`compute_modify extra/dof <compute_modify>` command to adjust
accordingly. the DOF accordingly.
For example, an aspherical particle with all three of its shape For example, an aspherical particle with all three of its shape
parameters the same is a sphere. If it does not rotate, then it parameters the same is a sphere. If it does not rotate, then it should
should have 3 DOF instead of 6 in 3d (or two instead of three in 2d). have 3 DOF instead of 6 in 3d (or two instead of three in 2d). A
A uniaxial aspherical particle has two of its three shape parameters the uniaxial aspherical particle has two of its three shape parameters the
same. If it does not rotate around the axis perpendicular to its same. If it does not rotate around the axis perpendicular to its
circular cross section, then it should have 5 DOF instead of 6 in 3d. circular cross section, then it should have 5 DOF instead of 6 in 3d.
The latter is the case for uniaxial ellipsoids in a :doc:`GayBerne model <pair_gayberne>` since there is no induced torque around the The latter is the case for uniaxial ellipsoids in a :doc:`GayBerne model
optical axis. It will also be the case for biaxial ellipsoids when <pair_gayberne>` since there is no induced torque around the optical
exactly two of the semiaxes have the same length and the corresponding axis. It will also be the case for biaxial ellipsoids when exactly two
relative well depths are equal. of the semiaxes have the same length and the corresponding relative well
depths are equal.
The translational kinetic energy is computed the same as is described The translational kinetic energy is computed the same as is described
by the :doc:`compute temp <compute_temp>` command. The rotational by the :doc:`compute temp <compute_temp>` command. The rotational
@ -90,15 +91,17 @@ inertia tensor are used. The six components of the vector are ordered
:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the constant for the duration of the run; use the *dynamic/dof* option of
:doc:`compute_modify <compute_modify>` command if this is not the case. the :doc:`compute_modify <compute_modify>` command if this is not the
case.
This compute subtracts out translational degrees-of-freedom due to This compute subtracts out translational degrees-of-freedom due to fixes
fixes that constrain molecular motion, such as :doc:`fix shake <fix_shake>` and :doc:`fix rigid <fix_rigid>`. This means the that constrain molecular motion, such as :doc:`fix shake <fix_shake>`
temperature of groups of atoms that include these constraints will be and :doc:`fix rigid <fix_rigid>`. This means the temperature of groups
computed correctly. If needed, the subtracted degrees-of-freedom can of atoms that include these constraints will be computed correctly. If
be altered using the *extra* option of the needed, the subtracted degrees-of-freedom can be altered using the
:doc:`compute_modify <compute_modify>` command. *extra/dof* option of the :doc:`compute_modify <compute_modify>`
command.
See the :doc:`Howto thermostat <Howto_thermostat>` page for a See the :doc:`Howto thermostat <Howto_thermostat>` page for a
discussion of different ways to compute temperature and perform discussion of different ways to compute temperature and perform

View File

@ -51,11 +51,10 @@ rotational).
This choice for degrees of freedom (DOF) assumes that all body This choice for degrees of freedom (DOF) assumes that all body
particles in your model will freely rotate, sampling all their particles in your model will freely rotate, sampling all their
rotational DOF. It is possible to use a combination of interaction rotational DOF. It is possible to use a combination of interaction
potentials and fixes that induce no torque or otherwise constrain some potentials and fixes that induce no torque or otherwise constrain
of all of your particles so that this is not the case. Then there are some of all of your particles so that this is not the case. Then
less DOF and you should use the there are less DOF and you should use the :doc:`compute_modify
:doc:`compute_modify extra <compute_modify>` command to adjust the DOF extra/dof <compute_modify>` command to adjust the DOF accordingly.
accordingly.
The translational kinetic energy is computed the same as is described The translational kinetic energy is computed the same as is described
by the :doc:`compute temp <compute_temp>` command. The rotational by the :doc:`compute temp <compute_temp>` command. The rotational
@ -72,15 +71,16 @@ used. The six components of the vector are ordered :math:`xx`, :math:`yy`,
:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the constant for the duration of the run; use the *dynamic/dof* option of
:doc:`compute_modify <compute_modify>` command if this is not the case. the :doc:`compute_modify <compute_modify>` command if this is not the
case.
This compute subtracts out translational degrees-of-freedom due to This compute subtracts out translational degrees-of-freedom due to
fixes that constrain molecular motion, such as :doc:`fix shake <fix_shake>` fixes that constrain molecular motion, such as :doc:`fix shake <fix_shake>`
and :doc:`fix rigid <fix_rigid>`. This means the and :doc:`fix rigid <fix_rigid>`. This means the
temperature of groups of atoms that include these constraints will be temperature of groups of atoms that include these constraints will be
computed correctly. If needed, the subtracted degrees-of-freedom can computed correctly. If needed, the subtracted degrees-of-freedom can
be altered using the *extra* option of the be altered using the *extra/dof* option of the
:doc:`compute_modify <compute_modify>` command. :doc:`compute_modify <compute_modify>` command.
See the :doc:`Howto thermostat <Howto_thermostat>` page for a See the :doc:`Howto thermostat <Howto_thermostat>` page for a

View File

@ -75,7 +75,8 @@ Restrictions
The number of degrees of freedom contributing to the temperature is The number of degrees of freedom contributing to the temperature is
assumed to be constant for the duration of the run unless the assumed to be constant for the duration of the run unless the
*fix_modify* command sets the option *dynamic yes*\ . :doc:`fix_modify command <fix_modify>` sets the option *dynamic/dof
yes*\ .
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -49,14 +49,13 @@ each has three degrees of freedom (two translational, one rotational).
.. note:: .. note::
This choice for degrees of freedom (DOF) assumes that all This choice for degrees of freedom (DOF) assumes that all finite-size
finite-size spherical particles in your model will freely rotate, spherical particles in your model will freely rotate, sampling all
sampling all their rotational DOF. It is possible to use a their rotational DOF. It is possible to use a combination of
combination of interaction potentials and fixes that induce no torque interaction potentials and fixes that induce no torque or otherwise
or otherwise constrain some of all of your particles so that this is constrain some of all of your particles so that this is not the case.
not the case. Then there are less DOF and you should use the Then there are less DOF and you should use the :doc:`compute_modify
:doc:`compute_modify extra <compute_modify>` command to adjust the DOF extra/dof <compute_modify>` command to adjust the DOF accordingly.
accordingly.
The translational kinetic energy is computed the same as is described The translational kinetic energy is computed the same as is described
by the :doc:`compute temp <compute_temp>` command. The rotational by the :doc:`compute temp <compute_temp>` command. The rotational
@ -73,20 +72,22 @@ velocity.
A kinetic energy tensor, stored as a six-element vector, is also A kinetic energy tensor, stored as a six-element vector, is also
calculated by this compute. The formula for the components of the calculated by this compute. The formula for the components of the
tensor is the same as the above formulas, except that :math:`v^2` and tensor is the same as the above formulas, except that :math:`v^2` and
:math:`\omega^2` are replaced by :math:`v_x v_y` and :math:`\omega_x \omega_y` :math:`\omega^2` are replaced by :math:`v_x v_y` and :math:`\omega_x
for the :math:`xy` component. The six components of the vector are ordered \omega_y` for the :math:`xy` component. The six components of the
:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. vector are ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`,
:math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the constant for the duration of the run; use the *dynamic* option of the
:doc:`compute_modify <compute_modify>` command if this is not the case. :doc:`compute_modify <compute_modify>` command if this is not the case.
This compute subtracts out translational degrees-of-freedom due to This compute subtracts out translational degrees-of-freedom due to fixes
fixes that constrain molecular motion, such as :doc:`fix shake <fix_shake>` and :doc:`fix rigid <fix_rigid>`. This means the that constrain molecular motion, such as :doc:`fix shake <fix_shake>`
temperature of groups of atoms that include these constraints will be and :doc:`fix rigid <fix_rigid>`. This means the temperature of groups
computed correctly. If needed, the subtracted degrees of freedom can of atoms that include these constraints will be computed correctly. If
be altered using the *extra* option of the needed, the subtracted degrees of freedom can be altered using the
:doc:`compute_modify <compute_modify>` command. *extra/dof* option of the :doc:`compute_modify <compute_modify>`
command.
See the :doc:`Howto thermostat <Howto_thermostat>` page for a See the :doc:`Howto thermostat <Howto_thermostat>` page for a
discussion of different ways to compute temperature and perform discussion of different ways to compute temperature and perform

View File

@ -171,7 +171,7 @@ Langevin thermostat:
.. code-block:: LAMMPS .. code-block:: LAMMPS
compute dtemp all temp compute dtemp all temp
compute_modify dtemp dynamic yes compute_modify dtemp dynamic/dof yes
fix fT all langevin 1.0 1.0 1.0 123 fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp fix_modify fT temp dtemp

View File

@ -95,10 +95,9 @@ default group "all" and the group specified in the fix deposit command
(which can also be "all"). (which can also be "all").
If you are computing temperature values which include inserted If you are computing temperature values which include inserted
particles, you will want to use the particles, you will want to use the :doc:`compute_modify dynamic/dof yes
:doc:`compute_modify <compute_modify>` dynamic option, which ensures the <compute_modify>` option, which ensures the current number of atoms is
current number of atoms is used as a normalizing factor each time the used as a normalizing factor each time the temperature is computed.
temperature is computed.
Care must be taken that inserted particles are not too near existing Care must be taken that inserted particles are not too near existing
atoms, using the options described below. When inserting particles atoms, using the options described below. When inserting particles
@ -160,15 +159,17 @@ command which also appears in your input script.
.. note:: .. note::
If you wish the new rigid molecules (and other rigid molecules) If you wish the new rigid molecules (and other rigid molecules) to be
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
or :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
"fix_modify dynamic/dof yes" command for the rigid fix. This is to :doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
inform that fix that the molecule count will vary dynamically. fix. This is to inform that fix that the molecule count will vary
dynamically.
If you wish to insert molecules via the *mol* keyword, that will have If you wish to insert molecules via the *mol* keyword, that will have
their bonds or angles constrained via SHAKE, use the *shake* keyword, their bonds or angles constrained via SHAKE, use the *shake* keyword,
specifying as its value the ID of a separate :doc:`fix shake <fix_shake>` command which also appears in your input script. specifying as its value the ID of a separate :doc:`fix shake
<fix_shake>` command which also appears in your input script.
Each timestep a particle is inserted, the coordinates for its atoms Each timestep a particle is inserted, the coordinates for its atoms
are chosen as follows. For insertion of individual atoms, the are chosen as follows. For insertion of individual atoms, the
@ -268,8 +269,8 @@ units of distance or velocity.
If you are monitoring the temperature of a system where the atom If you are monitoring the temperature of a system where the atom
count is changing due to adding particles, you typically should use count is changing due to adding particles, you typically should use
the :doc:`compute_modify dynamic yes <compute_modify>` command for the the :doc:`compute_modify dynamic/dof yes <compute_modify>` command
temperature compute you are using. for the temperature compute you are using.
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""

View File

@ -69,14 +69,15 @@ incur overhead due to the cost of building neighbor lists.
If you are monitoring the temperature of a system where the atom If you are monitoring the temperature of a system where the atom
count is changing due to evaporation, you typically should use the count is changing due to evaporation, you typically should use the
:doc:`compute_modify dynamic yes <compute_modify>` command for the :doc:`compute_modify dynamic/dof yes <compute_modify>` command for the
temperature compute you are using. temperature compute you are using.
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options No information about this fix is written to :doc:`binary restart files
are relevant to this fix. <restart>`. None of the :doc:`fix_modify <fix_modify>` options are
relevant to this fix.
This fix computes a global scalar, which can be accessed by various This fix computes a global scalar, which can be accessed by various
:doc:`output commands <Howto_output>`. The scalar is the cumulative :doc:`output commands <Howto_output>`. The scalar is the cumulative
@ -84,7 +85,8 @@ number of deleted atoms. The scalar value calculated by this fix is
"intensive". "intensive".
No parameter of this fix can be used with the *start/stop* keywords of No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`. the :doc:`run <run>` command. This fix is not invoked during
:doc:`energy minimization <minimize>`.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -146,8 +146,8 @@ center-of-mass is inside the specified region.
If used with :doc:`fix nvt <fix_nh>`, the temperature of the imaginary If used with :doc:`fix nvt <fix_nh>`, the temperature of the imaginary
reservoir, T, should be set to be equivalent to the target temperature reservoir, T, should be set to be equivalent to the target temperature
used in fix nvt. Otherwise, the imaginary reservoir will not be in used in fix nvt. Otherwise, the imaginary reservoir will not be in
thermal equilibrium with the simulation cell. Also, it is important thermal equilibrium with the simulation cell. Also, it is important that
that the temperature used by fix nvt be dynamic/dof, which can be the temperature used by *fix nvt* is dynamically updated, which can be
achieved as follows: achieved as follows:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -197,15 +197,17 @@ which also appears in your input script.
.. note:: .. note::
If you wish the new rigid molecules (and other rigid molecules) If you wish the new rigid molecules (and other rigid molecules) to be
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
or :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
"fix_modify dynamic/dof yes" command for the rigid fix. This is to :doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
inform that fix that the molecule count will vary dynamically. fix. This is to inform that fix that the molecule count will vary
dynamically.
If you wish to insert molecules via the *mol* keyword, that will have If you wish to insert molecules via the *mol* keyword, that will have
their bonds or angles constrained via SHAKE, use the *shake* keyword, their bonds or angles constrained via SHAKE, use the *shake* keyword,
specifying as its value the ID of a separate :doc:`fix shake <fix_shake>` command which also appears in your input script. specifying as its value the ID of a separate :doc:`fix shake
<fix_shake>` command which also appears in your input script.
Optionally, users may specify the relative amounts of different MC Optionally, users may specify the relative amounts of different MC
moves using the *mcmoves* keyword. The values *Patomtrans*, moves using the *mcmoves* keyword. The values *Patomtrans*,
@ -335,31 +337,30 @@ temperature.
Some fixes have an associated potential energy. Examples of such fixes Some fixes have an associated potential energy. Examples of such fixes
include: :doc:`efield <fix_efield>`, :doc:`gravity <fix_gravity>`, include: :doc:`efield <fix_efield>`, :doc:`gravity <fix_gravity>`,
:doc:`addforce <fix_addforce>`, :doc:`langevin <fix_langevin>`, :doc:`addforce <fix_addforce>`, :doc:`langevin <fix_langevin>`,
:doc:`restrain <fix_restrain>`, :doc:`restrain <fix_restrain>`, :doc:`temp/berendsen
:doc:`temp/berendsen <fix_temp_berendsen>`, <fix_temp_berendsen>`, :doc:`temp/rescale <fix_temp_rescale>`, and
:doc:`temp/rescale <fix_temp_rescale>`, and :doc:`wall fixes <fix_wall>`. :doc:`wall fixes <fix_wall>`. For that energy to be included in the
For that energy to be included in the total potential energy of the total potential energy of the system (the quantity used when performing
system (the quantity used when performing GCMC exchange and MC moves), GCMC exchange and MC moves), you MUST enable the :doc:`fix_modify
you MUST enable <fix_modify>` *energy* option for that fix. The doc pages for
the :doc:`fix_modify <fix_modify>` *energy* option for that fix. The individual :doc:`fix <fix>` commands specify if this should be done.
doc pages for individual :doc:`fix <fix>` commands specify if this
should be done.
Use the *charge* option to insert atoms with a user-specified point Use the *charge* option to insert atoms with a user-specified point
charge. Note that doing so will cause the system to become charge. Note that doing so will cause the system to become non-neutral.
non-neutral. LAMMPS issues a warning when using long-range LAMMPS issues a warning when using long-range electrostatics (kspace)
electrostatics (kspace) with non-neutral systems. See the :doc:`compute group/group <compute_group_group>` documentation for more details with non-neutral systems. See the :doc:`compute group/group
about simulating non-neutral systems with kspace on. <compute_group_group>` documentation for more details about simulating
non-neutral systems with kspace on.
Use of this fix typically will cause the number of atoms to fluctuate, Use of this fix typically will cause the number of atoms to fluctuate,
therefore, you will want to use the therefore, you will want to use the :doc:`compute_modify dynamic/dof
:doc:`compute_modify dynamic/dof <compute_modify>` command to ensure that the <compute_modify>` command to ensure that the current number of atoms is
current number of atoms is used as a normalizing factor each time used as a normalizing factor each time temperature is computed. A simple
temperature is computed. A simple example of this is: example of this is:
.. code-block:: LAMMPS .. code-block:: LAMMPS
compute_modify thermo_temp dynamic yes compute_modify thermo_temp dynamic/dof yes
A more complicated example is listed earlier on this page A more complicated example is listed earlier on this page
in the context of NVT dynamics. in the context of NVT dynamics.
@ -369,31 +370,29 @@ in the context of NVT dynamics.
If the density of the cell is initially very small or zero, and If the density of the cell is initially very small or zero, and
increases to a much larger density after a period of equilibration, increases to a much larger density after a period of equilibration,
then certain quantities that are only calculated once at the start then certain quantities that are only calculated once at the start
(kspace parameters) may no longer be accurate. The (kspace parameters) may no longer be accurate. The solution is to
solution is to start a new simulation after the equilibrium density start a new simulation after the equilibrium density has been
has been reached. reached.
With some pair_styles, such as :doc:`Buckingham <pair_buck>`, With some pair_styles, such as :doc:`Buckingham <pair_buck>`,
:doc:`Born-Mayer-Huggins <pair_born>` and :doc:`ReaxFF <pair_reaxff>`, two :doc:`Born-Mayer-Huggins <pair_born>` and :doc:`ReaxFF <pair_reaxff>`,
atoms placed close to each other may have an arbitrary large, negative two atoms placed close to each other may have an arbitrary large,
potential energy due to the functional form of the potential. While negative potential energy due to the functional form of the potential.
these unphysical configurations are inaccessible to typical dynamical While these unphysical configurations are inaccessible to typical
trajectories, they can be generated by Monte Carlo moves. The dynamical trajectories, they can be generated by Monte Carlo moves. The
*overlap_cutoff* keyword suppresses these moves by effectively *overlap_cutoff* keyword suppresses these moves by effectively assigning
assigning an infinite positive energy to all new configurations that an infinite positive energy to all new configurations that place any
place any pair of atoms closer than the specified overlap cutoff pair of atoms closer than the specified overlap cutoff distance.
distance.
The *max* and *min* keywords allow for the restriction of the number The *max* and *min* keywords allow for the restriction of the number of
of atoms in the simulation. They automatically reject all insertion atoms in the simulation. They automatically reject all insertion or
or deletion moves that would take the system beyond the set boundaries. deletion moves that would take the system beyond the set boundaries.
Should the system already be beyond the boundary, only moves that bring Should the system already be beyond the boundary, only moves that bring
the system closer to the bounds may be accepted. the system closer to the bounds may be accepted.
The *group* keyword adds all inserted atoms to the The *group* keyword adds all inserted atoms to the :doc:`group <group>`
:doc:`group <group>` of the group-ID value. The *grouptype* keyword of the group-ID value. The *grouptype* keyword adds all inserted atoms
adds all inserted atoms of the specified type to the of the specified type to the :doc:`group <group>` of the group-ID value.
:doc:`group <group>` of the group-ID value.
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
@ -446,22 +445,21 @@ called. Reneighboring is required.
Only usable for 3D simulations. Only usable for 3D simulations.
Can be run in parallel, but aspects of the GCMC part will not scale This fix can be run in parallel, but aspects of the GCMC part will not
well in parallel. Currently, molecule translations and rotations scale well in parallel. Currently, molecule translations and rotations
are not supported with more than one MPI process. are not supported with more than one MPI process. It is still possible
It is still possible to do parallel molecule exchange without to do parallel molecule exchange without translation and rotation moves
translation and rotation moves by setting MC moves to zero by setting MC moves to zero and/or by using the *mcmoves* keyword with
and/or by using the *mcmoves* keyword with *Pmoltrans* = *Pmolrotate* = 0 . *Pmoltrans* = *Pmolrotate* = 0 .
When using fix gcmc in combination with fix shake or fix rigid, When using fix gcmc in combination with fix shake or fix rigid, only
only GCMC exchange moves are supported, so the argument GCMC exchange moves are supported, so the argument *M* must be zero.
*M* must be zero.
When using fix gcmc in combination with fix rigid, deletion When using fix gcmc in combination with fix rigid, deletion of the last
of the last remaining molecule is not allowed for technical reasons, remaining molecule is not allowed for technical reasons, and so the
and so the molecule count will never drop below 1, regardless of the molecule count will never drop below 1, regardless of the specified
specified chemical potential. chemical potential.
Note that very lengthy simulations involving insertions/deletions of Note that very lengthy simulations involving insertions/deletions of
billions of gas molecules may run out of atom or molecule IDs and billions of gas molecules may run out of atom or molecule IDs and

View File

@ -131,24 +131,24 @@ with their specified level at the beginning of a r-RESPA run.
The *dynamic/dof* keyword determines whether the number of atoms N in The *dynamic/dof* keyword determines whether the number of atoms N in
the fix group and their associated degrees of freedom are re-computed the fix group and their associated degrees of freedom are re-computed
each time a temperature is computed. Only fix styles that calculate each time a temperature is computed. Only fix styles that calculate
their own internal temperature use this option. Currently this is their own internal temperature use this option. Currently this is only
only the :doc:`fix rigid/nvt/small <fix_rigid>` and :doc:`fix the :doc:`fix rigid/nvt/small <fix_rigid>` and :doc:`fix rigid/npt/small
rigid/npt/small <fix_rigid>` commands for the purpose of <fix_rigid>` commands for the purpose of thermostatting rigid body
thermostatting rigid body translation and rotation. By default, N and translation and rotation. By default, N and their DOF are assumed to be
their DOF are assumed to be constant. If you are adding atoms or constant. If you are adding atoms or molecules to the system (see the
molecules to the system (see the :doc:`fix pour <fix_pour>`, :doc:`fix :doc:`fix pour <fix_pour>`, :doc:`fix deposit <fix_deposit>`, and
deposit <fix_deposit>`, and :doc:`fix gcmc <fix_gcmc>` commands) or :doc:`fix gcmc <fix_gcmc>` commands) or expect atoms or molecules to be
expect atoms or molecules to be lost (e.g. due to exiting the lost (e.g. due to exiting the simulation box or via :doc:`fix evaporate
simulation box or via :doc:`fix evaporate <fix_evaporate>`), then this <fix_evaporate>`), then this option should be used to ensure the
option should be used to ensure the temperature is correctly temperature is correctly normalized.
normalized.
.. note:: .. note::
Other thermostatting fixes, such as :doc:`fix nvt <fix_nh>`, do Other thermostatting fixes, such as :doc:`fix nvt <fix_nh>`, do not
not use the *dynamic/dof* keyword because they use a temperature use the *dynamic/dof* keyword because they use a temperature compute
compute to calculate temperature. See the :doc:`compute_modify dynamic/dof <compute_modify>` command for a similar way to ensure to calculate temperature. See the :doc:`compute_modify dynamic/dof
correct temperature normalization for those thermostats. <compute_modify>` command for a similar way to ensure correct
temperature normalization for those thermostats.
The *bodyforces* keyword determines whether the forces and torques The *bodyforces* keyword determines whether the forces and torques
acting on rigid bodies are computed *early* at the post-force stage of acting on rigid bodies are computed *early* at the post-force stage of
@ -156,7 +156,8 @@ each timestep (right after per-atom forces have been computed and
communicated among processors), or *late* at the final-integrate stage communicated among processors), or *late* at the final-integrate stage
of each timestep (after any other fixes have finished their post-force of each timestep (after any other fixes have finished their post-force
tasks). Only the rigid-body integration fixes use this option, which tasks). Only the rigid-body integration fixes use this option, which
includes :doc:`fix rigid <fix_rigid>` and :doc:`fix rigid/small <fix_rigid>`, and their variants, and also :doc:`fix poems <fix_poems>`. includes :doc:`fix rigid <fix_rigid>` and :doc:`fix rigid/small
<fix_rigid>`, and their variants, and also :doc:`fix poems <fix_poems>`.
The default is *late*\ . If there are other fixes that add forces to The default is *late*\ . If there are other fixes that add forces to
individual atoms, then the rigid-body constraints will include these individual atoms, then the rigid-body constraints will include these

View File

@ -123,15 +123,17 @@ command which also appears in your input script.
.. note:: .. note::
If you wish the new rigid molecules (and other rigid molecules) If you wish the new rigid molecules (and other rigid molecules) to be
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
or :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
"fix_modify dynamic/dof yes" command for the rigid fix. This is to :doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
inform that fix that the molecule count will vary dynamically. fix. This is to inform that fix that the molecule count will vary
dynamically.
If you wish to insert molecules via the *mol* keyword, that will have If you wish to insert molecules via the *mol* keyword, that will have
their bonds or angles constrained via SHAKE, use the *shake* keyword, their bonds or angles constrained via SHAKE, use the *shake* keyword,
specifying as its value the ID of a separate :doc:`fix shake <fix_shake>` command which also appears in your input script. specifying as its value the ID of a separate :doc:`fix shake
<fix_shake>` command which also appears in your input script.
Each timestep particles are inserted, they are placed randomly inside Each timestep particles are inserted, they are placed randomly inside
the insertion volume so as to mimic a stream of poured particles. If the insertion volume so as to mimic a stream of poured particles. If
@ -148,10 +150,10 @@ many timesteps until the desired # of particles has been inserted.
.. note:: .. note::
If you are monitoring the temperature of a system where the If you are monitoring the temperature of a system where the particle
particle count is changing due to adding particles, you typically count is changing due to adding particles, you typically should use
should use the :doc:`compute_modify dynamic yes <compute_modify>` the :doc:`compute_modify dynamic/dof yes <compute_modify>` command
command for the temperature compute you are using. for the temperature compute you are using.
---------- ----------

View File

@ -1,11 +1,11 @@
# This test evaluates Hardy fields for a small block of LJ material # This test evaluates Hardy fields for a small block of LJ material
# that's undergoing translation in the x-direction through the # that's undergoing translation in the x-direction through the
# periodic boundary. # periodic boundary.
echo both echo both
log log.flying_cube log log.flying_cube
units real units real
atom_style atomic atom_style atomic
variable lattice_constant equal 5.256227487 variable lattice_constant equal 5.256227487
variable c equal 6 variable c equal 6
variable L equal (${lattice_constant}*$c) variable L equal (${lattice_constant}*$c)
variable V equal $L*$L*$L variable V equal $L*$L*$L
@ -23,15 +23,15 @@ create_box 1 box
create_atoms 1 region box create_atoms 1 region box
mass 1 $m mass 1 $m
group all region box group all region box
pair_style lj/cut 13.5 pair_style lj/cut 13.5
pair_coeff 1 1 0.238 3.405 pair_coeff 1 1 0.238 3.405
# define region # define region
neighbor 1.0 bin neighbor 1.0 bin
neigh_modify delay 0 every 200 check no neigh_modify delay 0 every 200 check no
# neigh_modify delay 0 every $n # neigh_modify delay 0 every $n
reset_timestep 0 reset_timestep 0
thermo $s thermo $s
compute_modify thermo_temp extra 0 compute_modify thermo_temp extra/dof 0
thermo_style custom step temp pxx pyy pzz etotal lx ly lz thermo_style custom step temp pxx pyy pzz etotal lx ly lz
timestep ${dt} timestep ${dt}
min_modify line quadratic min_modify line quadratic
@ -46,10 +46,10 @@ variable zHI equal zhi
# region BOX block ${xLO} ${xHI} ${yLO} ${yHI} ${zLO} ${zHI} units box # region BOX block ${xLO} ${xHI} ${yLO} ${yHI} ${zLO} ${zHI} units box
region BOX block ${xLO} ${xHI} -0.5 31.7 -0.5 31.7 units box region BOX block ${xLO} ${xHI} -0.5 31.7 -0.5 31.7 units box
fix ATC all atc field fix ATC all atc field
fix_modify ATC mesh create 1 1 1 box p p p fix_modify ATC mesh create 1 1 1 box p p p
fix_modify ATC fields add stress velocity displacement fix_modify ATC fields add stress velocity displacement
fix_modify ATC fields add temperature kinetic_temperature fix_modify ATC fields add temperature kinetic_temperature
fix_modify ATC fields add internal_energy energy fix_modify ATC fields add internal_energy energy
fix_modify ATC output flying_cubeFE $s text binary tensor_components fix_modify ATC output flying_cubeFE $s text binary tensor_components
# fix_modify ATC atomic_output flying_cubeMD $m text binary tensor_components # fix_modify ATC atomic_output flying_cubeMD $m text binary tensor_components
dump dumpfc all atom $s flying_cube.dmp dump dumpfc all atom $s flying_cube.dmp

View File

@ -1,34 +1,34 @@
# This test compares Hardy and Cauchy-Born metrics of energy density and stress # This test compares Hardy and Cauchy-Born metrics of energy density and stress
# for an Ar system undergoing dynamics at a finite temperature. # for an Ar system undergoing dynamics at a finite temperature.
echo both echo both
log ftcb_constV.log log ftcb_constV.log
units real units real
atom_style atomic atom_style atomic
variable lattice_constant equal 5.256227487 variable lattice_constant equal 5.256227487
variable c equal 6 variable c equal 6
variable L equal (${lattice_constant}*$c) variable L equal (${lattice_constant}*$c)
variable V equal $L*$L*$L variable V equal $L*$L*$L
print "Volume : $V" print "Volume : $V"
variable Ti equal 0.0001 variable Ti equal 0.0001
variable dT equal 0.2 variable dT equal 0.2
variable n equal 10000 variable n equal 10000
variable m equal 200 variable m equal 200
variable dt equal 0.1 variable dt equal 0.1
# create system # create system
lattice fcc ${lattice_constant} lattice fcc ${lattice_constant}
region box block 0 $c 0 $c 0 $c region box block 0 $c 0 $c 0 $c
boundary p p p boundary p p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data ftcb_constV_setup.init read_data ftcb_constV_setup.init
mass 1 39.95 mass 1 39.95
pair_coeff 1 1 0.238 3.405 pair_coeff 1 1 0.238 3.405
# define region # define region
neighbor 1.0 bin neighbor 1.0 bin
neigh_modify delay 0 every 2000 check no neigh_modify delay 0 every 2000 check no
reset_timestep 0 reset_timestep 0
thermo $m thermo $m
compute_modify thermo_temp extra 0 compute_modify thermo_temp extra/dof 0
variable nrepeat equal $n/$m variable nrepeat equal $n/$m
variable sxx equal -pxx variable sxx equal -pxx
variable intenergy equal etotal variable intenergy equal etotal
fix TDAVE all ave/time $m ${nrepeat} $n c_thermo_temp v_sxx v_intenergy ave one file ftcb_constV.profile fix TDAVE all ave/time $m ${nrepeat} $n c_thermo_temp v_sxx v_intenergy ave one file ftcb_constV.profile
@ -37,7 +37,7 @@ timestep ${dt}
# filtered # filtered
fix ATCFILT all atc field Ar_CauchyBorn.mat fix ATCFILT all atc field Ar_CauchyBorn.mat
#fix_modify ATCFILT reset_atomic_reference_positions ftcb_constV_setup.data #fix_modify ATCFILT reset_atomic_reference_positions ftcb_constV_setup.data
fix_modify ATCFILT mesh create 1 1 1 box p p p fix_modify ATCFILT mesh create 1 1 1 box p p p
fix_modify ATCFILT fields none fix_modify ATCFILT fields none
fix_modify ATCFILT fields add internal_energy stress cauchy_born_energy cauchy_born_stress fix_modify ATCFILT fields add internal_energy stress cauchy_born_energy cauchy_born_stress
fix_modify ATCFILT fields add temperature displacement fix_modify ATCFILT fields add temperature displacement
@ -51,7 +51,7 @@ fix_modify ATCFILT filter type step
# not filtered # not filtered
fix ATC all atc field Ar_CauchyBorn.mat fix ATC all atc field Ar_CauchyBorn.mat
#fix_modify ATC reset_atomic_reference_positions ftcb_constV_setup.data #fix_modify ATC reset_atomic_reference_positions ftcb_constV_setup.data
fix_modify ATC mesh create 1 1 1 box p p p fix_modify ATC mesh create 1 1 1 box p p p
fix_modify ATC fields none fix_modify ATC fields none
fix_modify ATC fields add internal_energy stress cauchy_born_energy cauchy_born_stress fix_modify ATC fields add internal_energy stress cauchy_born_energy cauchy_born_stress
fix_modify ATC fields add temperature displacement fix_modify ATC fields add temperature displacement
@ -59,7 +59,7 @@ fix_modify ATC gradients add displacement
fix_modify ATC output ftcb_constVFE $m text binary tensor_components fix_modify ATC output ftcb_constVFE $m text binary tensor_components
velocity all create ${Ti} 102486 mom yes rot yes dist gaussian velocity all create ${Ti} 102486 mom yes rot yes dist gaussian
# step iu T,V space # step iu T,V space
variable i loop 1 variable i loop 1
label loop_i label loop_i
print ">>> step $i, T: ${Ti}, V: $V" print ">>> step $i, T: ${Ti}, V: $V"
variable Tf equal ${Ti}+${dT} variable Tf equal ${Ti}+${dT}
@ -69,6 +69,6 @@ label loop_i
fix NVT all nvt temp ${Tf} ${Tf} 20 drag 0.5 tchain 1 fix NVT all nvt temp ${Tf} ${Tf} 20 drag 0.5 tchain 1
run $n run $n
unfix NVT unfix NVT
variable Ti equal ${Tf} variable Ti equal ${Tf}
next i next i
jump in.ftcb_constV loop_i jump in.ftcb_constV loop_i

View File

@ -5,50 +5,50 @@
# out # to the FEM on the right. Insufficient time is captured to reach the # out # to the FEM on the right. Insufficient time is captured to reach the
# linear # steady state, but heat crossing both boundaries should be observed. # linear # steady state, but heat crossing both boundaries should be observed.
log bar1d_fluids.log log bar1d_fluids.log
units real units real
atom_style atomic atom_style atomic
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data temp.init read_data temp.init
#read_restart post_eq.dat #read_restart post_eq.dat
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#region mdRegion block -7 7 -3 3 -3 3 #region mdRegion block -7 7 -3 3 -3 3
#boundary f p p #boundary f p p
#create_box 2 mdRegion #create_box 2 mdRegion
#create_atoms 1 region mdRegion #create_atoms 1 region mdRegion
#mass * 39.95 #mass * 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
#region mdInternal block -6 6 -3 3 -3 3 #region mdInternal block -6 6 -3 3 -3 3
#region mdGhost block -6 6 -3 3 -3 3 side out #region mdGhost block -6 6 -3 3 -3 3 side out
#create_atoms 1 region mdGhost #create_atoms 1 region mdGhost
#lattice fcc 6.5 origin 0.25 0.25 0.25 #lattice fcc 6.5 origin 0.25 0.25 0.25
#create_atoms 2 region mdInternal #create_atoms 2 region mdInternal
group internal type 2 group internal type 2
group ghost type 1 group ghost type 1
# velocities have Vcm = 0, NOTE next four lines commented out for restart # velocities have Vcm = 0, NOTE next four lines commented out for restart
#velocity internal create 100. 87287 mom yes loop geom #velocity internal create 100. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
##pair_coeff 1 1 0.010323166 3.405 13.5 ##pair_coeff 1 1 0.010323166 3.405 13.5
#pair_coeff * * .238 3.405 13.5 #pair_coeff * * .238 3.405 13.5
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
#write_restart tinit.dat #write_restart tinit.dat
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region atcRegion block -6.25 6.25 -3 3 -3 3 region atcRegion block -6.25 6.25 -3 3 -3 3
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
# ID part keywords nx ny nz region periodicity # ID part keywords nx ny nz region periodicity
fix_modify AtC mesh create 6 1 1 atcRegion f p p fix_modify AtC mesh create 6 1 1 atcRegion f p p
fix_modify AtC time_integration fractional_step fix_modify AtC time_integration fractional_step
fix_modify AtC atom_element_map eulerian 10 # NOTE this introduces a minor amount of time integration error tracking the atomic temperature fix_modify AtC atom_element_map eulerian 10 # NOTE this introduces a minor amount of time integration error tracking the atomic temperature
fix_modify AtC internal_quadrature off fix_modify AtC internal_quadrature off
#fix_modify AtC mass_matrix fe #fix_modify AtC mass_matrix fe
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 100. fix_modify AtC fix temperature all 100.
# add nodesets # add nodesets
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -6.3 -6.2 -INF INF -INF INF fix_modify AtC mesh create_nodeset lbc -6.3 -6.2 -INF INF -INF INF
@ -56,43 +56,43 @@ fix_modify AtC mesh create_nodeset rbc 6.2 6.3 -INF INF -INF INF
#fix_modify AtC fix temperature lbc 120. #fix_modify AtC fix temperature lbc 120.
#fix_modify AtC fix temperature rbc 100. #fix_modify AtC fix temperature rbc 100.
#used for restarting #used for restarting
#fix_modify AtC consistent_fe_initialization on #fix_modify AtC consistent_fe_initialization on
#fix_modify AtC initial temperature all 100. #fix_modify AtC initial temperature all 100.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
# equilibrate MD field # equilibrate MD field
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
#fix_modify AtC output bar1d_fluids_eqFE 200 text binary #fix_modify AtC output bar1d_fluids_eqFE 200 text binary
#dump D1 all atom 200 dump_eq.bar1d #dump D1 all atom 200 dump_eq.bar1d
timestep 2 timestep 2
thermo 200 thermo 200
run 2000 run 2000
#write_restart post_eq.dat #write_restart post_eq.dat
# change thermostat to hoover # change thermostat to hoover
reset_timestep 0 reset_timestep 0
fix_modify AtC reset_time fix_modify AtC reset_time
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
variable deltaT equal 2.*2000. variable deltaT equal 2.*2000.
fix_modify AtC fix temperature lbc temporal_ramp 100. 120. ${deltaT} fix_modify AtC fix temperature lbc temporal_ramp 100. 120. ${deltaT}
#fix_modify AtC fix temperature lbc 100. #fix_modify AtC fix temperature lbc 100.
fix_modify AtC fix temperature rbc 100. fix_modify AtC fix temperature rbc 100.
fix_modify AtC control thermal flux no_boundary fix_modify AtC control thermal flux no_boundary
fix_modify AtC control tolerance 1.e-14 fix_modify AtC control tolerance 1.e-14
fix_modify AtC control localized_lambda on fix_modify AtC control localized_lambda on
fix_modify AtC filter type exponential fix_modify AtC filter type exponential
fix_modify AtC filter scale 1000.0 fix_modify AtC filter scale 1000.0
fix_modify AtC filter on fix_modify AtC filter on
# output commands # output commands
fix_modify AtC output bar1d_fluidsFE 100 text fix_modify AtC output bar1d_fluidsFE 100 text
#undump D1 #undump D1
#dump D2 all atom 200 dump.bar1d #dump D2 all atom 200 dump.bar1d
#dump D2 all custom 200 dump.bar1d id type xs ys zs vx vy vz #dump D2 all custom 200 dump.bar1d id type xs ys zs vx vy vz
# set-up non-equilibrium IC # set-up non-equilibrium IC
thermo 100 thermo 100
run 2000 run 2000
# run non-equilibrium condition # run non-equilibrium condition
fix_modify AtC fix temperature lbc 120. fix_modify AtC fix temperature lbc 120.
run 4000 run 4000

View File

@ -1,10 +1,10 @@
echo both echo both
units real units real
atom_style full # charge atom_style full # charge
### NOTE p p p is required for both lammps & atc since periodic images are employed in ExtrinsicModelElectrostatic::correct_electrostatic_forces ### NOTE p p p is required for both lammps & atc since periodic images are employed in ExtrinsicModelElectrostatic::correct_electrostatic_forces
########### BEGIN PARAMETERS #################################### ########### BEGIN PARAMETERS ####################################
variable T equal 300 variable T equal 300
variable a equal 1.0 # 5.719025032 variable a equal 1.0 # 5.719025032
variable i equal 10 # thermo variable i equal 10 # thermo
variable f equal 50 # neighbor & conc interval variable f equal 50 # neighbor & conc interval
variable s equal 100 # 10 # 100 # output variable s equal 100 # 10 # 100 # output
@ -12,18 +12,18 @@ variable n equal 800 # 20 # 200 # 300 # duration
variable x equal 4 # 40 # 2 # 4 # exchanges variable x equal 4 # 40 # 2 # 4 # exchanges
variable e equal 100. # 1. # 100. # 10. # energy variable e equal 100. # 1. # 100. # 10. # energy
variable h equal 5 # nelems variable h equal 5 # nelems
variable dt equal 4. #1. # 0 # 4.0 variable dt equal 4. #1. # 0 # 4.0
############## END PARAMETERS ################################# ############## END PARAMETERS #################################
dimension 3 dimension 3
boundary p p p boundary p p p
pair_style lj/cut/coul/cut 13.0 pair_style lj/cut/coul/cut 13.0
lattice sc $a lattice sc $a
read_data concentration_init.data read_data concentration_init.data
atom_modify sort 0 1 atom_modify sort 0 1
mass * 39.948 mass * 39.948
pair_coeff * * 0.2381 3.405 pair_coeff * * 0.2381 3.405
pair_coeff 1 * 0.4 3.405 pair_coeff 1 * 0.4 3.405
dielectric 80.0 dielectric 80.0
variable xlo equal xlo variable xlo equal xlo
variable xhi equal xhi variable xhi equal xhi
variable xmid equal 0.5*(${xhi}+${xlo}) variable xmid equal 0.5*(${xhi}+${xlo})
@ -37,9 +37,9 @@ region FLUID block ${xlo} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
region R block ${xmid} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box region R block ${xmid} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
group SOLID type 1 group SOLID type 1
variable xdof equal 3*count(SOLID) variable xdof equal 3*count(SOLID)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
#set group SOLID charge 0 #set group SOLID charge 0
group NEUTRAL type 2 group NEUTRAL type 2
group FLUID type 2 3 4 group FLUID type 2 3 4
group NION type 3 group NION type 3
group PION type 4 group PION type 4
@ -72,16 +72,16 @@ compute PMIN PION reduce min x
compute PMAX PION reduce max x compute PMAX PION reduce max x
compute NMIN NION reduce min x compute NMIN NION reduce min x
compute NMAX NION reduce max x compute NMAX NION reduce max x
timestep ${dt} timestep ${dt}
#neighbor 13 bin #neighbor 13 bin
neigh_modify every $i check no neigh_modify every $i check no
# coulombic interactions # coulombic interactions
fix ATC FLUID atc species_electrostatic Ar_electrostatic.mat fix ATC FLUID atc species_electrostatic Ar_electrostatic.mat
#fix_modify ATC parallel_consistency off #fix_modify ATC parallel_consistency off
fix_modify ATC extrinsic short_range off fix_modify ATC extrinsic short_range off
#fix_modify ATC boundary SOLID #fix_modify ATC boundary SOLID
fix_modify ATC atom_element_map eulerian $i fix_modify ATC atom_element_map eulerian $i
fix_modify ATC internal_quadrature off fix_modify ATC internal_quadrature off
fix_modify ATC consistent_fe_initialization on fix_modify ATC consistent_fe_initialization on
fix_modify ATC filter type exponential fix_modify ATC filter type exponential
fix_modify ATC filter scale $i fix_modify ATC filter scale $i
@ -97,31 +97,31 @@ fix_modify ATC mesh create_elementset BOX BOX
fix_modify ATC mass_matrix fe fix_modify ATC mass_matrix fe
fix_modify ATC include atomic_charge fix_modify ATC include atomic_charge
fix_modify ATC add_species N type 3 fix_modify ATC add_species N type 3
fix_modify ATC add_species P type 4 fix_modify ATC add_species P type 4
fix_modify ATC add_species Nt type 5 fix_modify ATC add_species Nt type 5
fix_modify ATC add_species Pt type 6 fix_modify ATC add_species Pt type 6
## CC ## CC
fix_modify ATC control concentration N R 0.001 Nt # deletions R fix_modify ATC control concentration N R 0.001 Nt # deletions R
fix_modify ATC control concentration N frequency $f fix_modify ATC control concentration N frequency $f
fix_modify ATC control concentration N max_energy $e fix_modify ATC control concentration N max_energy $e
fix_modify ATC control concentration N max_attempts 100 fix_modify ATC control concentration N max_attempts 100
fix_modify ATC control concentration N max_exchanges $x fix_modify ATC control concentration N max_exchanges $x
#- #-
fix_modify ATC control concentration P R 0.002 Pt # addtions R fix_modify ATC control concentration P R 0.002 Pt # addtions R
fix_modify ATC control concentration P frequency $f fix_modify ATC control concentration P frequency $f
fix_modify ATC control concentration P max_energy $e fix_modify ATC control concentration P max_energy $e
fix_modify ATC control concentration P max_attempts 100 fix_modify ATC control concentration P max_attempts 100
fix_modify ATC control concentration P max_exchanges $x fix_modify ATC control concentration P max_exchanges $x
fix_modify ATC output volume_integral all mass_density fix_modify ATC output volume_integral all mass_density
fix_modify ATC output volume_integral all charge_density fix_modify ATC output volume_integral all charge_density
# data reduction # data reduction
fix PP all atc field fix PP all atc field
#fix_modify PP add_species ions type 3 4 #fix_modify PP add_species ions type 3 4
#fix_modify PP add_species IONS type 3 4 1 2 #fix_modify PP add_species IONS type 3 4 1 2
fix_modify PP add_species n type 3 fix_modify PP add_species n type 3
fix_modify PP add_species p type 4 fix_modify PP add_species p type 4
fix_modify PP add_species s type 1 fix_modify PP add_species s type 1
fix_modify PP add_species o type 2 fix_modify PP add_species o type 2
fix_modify PP fields add species_concentration mass_density charge_density temperature fix_modify PP fields add species_concentration mass_density charge_density temperature
fix_modify PP fields add charge_flux species_flux fix_modify PP fields add charge_flux species_flux
fix_modify PP output volume_integral all mass_density fix_modify PP output volume_integral all mass_density
@ -129,7 +129,7 @@ fix_modify PP output volume_integral all charge_density
fix_modify PP mesh create $h 1 1 BOX f p p fix_modify PP mesh create $h 1 1 BOX f p p
fix_modify PP atom_element_map eulerian $i fix_modify PP atom_element_map eulerian $i
# output # output
thermo $i thermo $i
variable dN equal f_ATC[1] variable dN equal f_ATC[1]
variable dP equal f_ATC[2] variable dP equal f_ATC[2]
variable Nc equal f_ATC[3] variable Nc equal f_ATC[3]
@ -141,19 +141,19 @@ variable Nu equal f_ATC[7]
variable Pu equal f_ATC[8] variable Pu equal f_ATC[8]
variable Ng equal f_ATC[9] variable Ng equal f_ATC[9]
variable Pg equal f_ATC[10] variable Pg equal f_ATC[10]
thermo_style custom step temp etotal & thermo_style custom step temp etotal &
atoms v_F v_P v_N v_dP v_dN v_Pc v_Nc v_Pr v_Nr v_Pt v_Nt & atoms v_F v_P v_N v_dP v_dN v_Pc v_Nc v_Pr v_Nr v_Pt v_Nt &
c_PMIN c_NMIN c_PMAX c_NMAX c_Q c_M c_Qf c_Mf v_Pu v_Nu v_Pg v_Ng c_PMIN c_NMIN c_PMAX c_NMAX c_Q c_M c_Qf c_Mf v_Pu v_Nu v_Pg v_Ng
# NOTE this doesn't seem to work # NOTE this doesn't seem to work
#thermo_modify format 4 %5d format 5 %5d format 6 %5d format 7 %5d format 8 %5d #thermo_modify format 4 %5d format 5 %5d format 6 %5d format 7 %5d format 8 %5d
#thermo_modify format 4 %5d #thermo_modify format 4 %5d
#thermo_modify format 5 %5d #thermo_modify format 5 %5d
#thermo_modify format 6 %5d #thermo_modify format 6 %5d
#thermo_modify format 7 %5d #thermo_modify format 7 %5d
#thermo_modify format 8 %5d #thermo_modify format 8 %5d
#thermo_modify format 9 %5d #thermo_modify format 9 %5d
#thermo_modify format 10 %5d #thermo_modify format 10 %5d
#thermo_modify format 11 %5d #thermo_modify format 11 %5d
log concentration.log log concentration.log
fix_modify ATC output concentrationFE $s text binary fix_modify ATC output concentrationFE $s text binary
fix_modify PP output concentrationPP $s text fix_modify PP output concentrationPP $s text

View File

@ -2,42 +2,42 @@
# This benchmark tests momentum flux as a BC to the MD region to generate shear flow. # This benchmark tests momentum flux as a BC to the MD region to generate shear flow.
# Currently heat will be generated as it will have no where to go. # Currently heat will be generated as it will have no where to go.
log shear_flow.log log shear_flow.log
units real units real
atom_style atomic atom_style atomic
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
#read_data temp.init #read_data temp.init
read_data post_eq.init read_data post_eq.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#region mdRegion block -8 8 -3 3 -3 3 #region mdRegion block -8 8 -3 3 -3 3
#boundary f p p #boundary f p p
#create_box 2 mdRegion #create_box 2 mdRegion
#create_atoms 1 region mdRegion #create_atoms 1 region mdRegion
#mass * 39.95 #mass * 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
#region mdInternal block -6 6 -3 3 -3 3 #region mdInternal block -6 6 -3 3 -3 3
#region mdGhost block -6 6 -3 3 -3 3 side out #region mdGhost block -6 6 -3 3 -3 3 side out
#create_atoms 1 region mdGhost #create_atoms 1 region mdGhost
#lattice fcc 6.5 origin 0.25 0.25 0.25 #lattice fcc 6.5 origin 0.25 0.25 0.25
#create_atoms 2 region mdInternal #create_atoms 2 region mdInternal
group internal type 2 group internal type 2
group ghost type 1 group ghost type 1
# velocities have Vcm = 0, NOTE next four lines commented out for restart # velocities have Vcm = 0, NOTE next four lines commented out for restart
#velocity internal create 100. 87287 mom yes loop geom #velocity internal create 100. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
##pair_coeff 1 1 0.010323166 3.405 13.5 ##pair_coeff 1 1 0.010323166 3.405 13.5
#pair_coeff * * .238 3.405 13.5 #pair_coeff * * .238 3.405 13.5
#write_restart tinit.dat #write_restart tinit.dat
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
# equilibrate MD field # equilibrate MD field
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe temp thermo_style custom step cpu etotal pe temp
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
#fix NVT internal nvt temp 100 100 10 drag 0.2 #fix NVT internal nvt temp 100 100 10 drag 0.2
@ -49,28 +49,28 @@ timestep 2
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region atcRegion block -6.25 6.25 -3 3 -3 3 region atcRegion block -6.25 6.25 -3 3 -3 3
fix AtC internal atc shear Ar_viscosity.mat fix AtC internal atc shear Ar_viscosity.mat
# ID part keywords nx ny nz region periodicity # ID part keywords nx ny nz region periodicity
fix_modify AtC mesh create 6 1 1 atcRegion f p p fix_modify AtC mesh create 6 1 1 atcRegion f p p
#fix_modify AtC time_integration fractional_step #fix_modify AtC time_integration fractional_step
##fix_modify AtC atom_element_map eulerian 10 # NOTE this introduces a minor amount of time integration error tracking the atomic temperature ##fix_modify AtC atom_element_map eulerian 10 # NOTE this introduces a minor amount of time integration error tracking the atomic temperature
fix_modify AtC internal_quadrature off fix_modify AtC internal_quadrature off
#fix_modify AtC mass_matrix fe #fix_modify AtC mass_matrix fe
# add nodesets # add nodesets
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_elementset rbc 4.12 6.3 -INF INF -INF INF fix_modify AtC mesh create_elementset rbc 4.12 6.3 -INF INF -INF INF
#used for restarting #used for restarting
fix_modify AtC consistent_fe_initialization on fix_modify AtC consistent_fe_initialization on
#fix_modify AtC initial velocity x all 0. #fix_modify AtC initial velocity x all 0.
# turn on kinetostat # turn on kinetostat
reset_timestep 0 reset_timestep 0
fix_modify AtC reset_time fix_modify AtC reset_time
fix_modify AtC source velocity y rbc .0000001 fix_modify AtC source velocity y rbc .0000001
fix_modify AtC control momentum flux no_boundary fix_modify AtC control momentum flux no_boundary
fix_modify AtC control tolerance 1.e-14 fix_modify AtC control tolerance 1.e-14
fix_modify AtC control localized_lambda on fix_modify AtC control localized_lambda on
#fix_modify AtC filter type exponential #fix_modify AtC filter type exponential
#fix_modify AtC filter scale 1000.0 #fix_modify AtC filter scale 1000.0
#fix_modify AtC filter on #fix_modify AtC filter on
@ -78,7 +78,7 @@ fix_modify AtC control localized_lambda on
# output commands # output commands
fix_modify AtC output shear_flowFE 100 text #binary fix_modify AtC output shear_flowFE 100 text #binary
#undump D1 #undump D1
#dump D1 all custom 100 shear_flow.dmp id type xs ys zs vx vy vz #dump D1 all custom 100 shear_flow.dmp id type xs ys zs vx vy vz
# set-up non-equilibrium IC # set-up non-equilibrium IC
thermo 100 thermo 100
run 2000 run 2000

View File

@ -1,4 +1,4 @@
# This test calculates the J-integral for a sequence of different loads # This test calculates the J-integral for a sequence of different loads
# for a system with a crack tip. # for a system with a crack tip.
# #
# loops around crack and one around undefected material # loops around crack and one around undefected material
@ -7,17 +7,17 @@
# loop 2 - medium contour around left crack tip # loop 2 - medium contour around left crack tip
# loop 3 - largest contour around left crack tip # loop 3 - largest contour around left crack tip
# loop 4 - medium contour around right crack tip # loop 4 - medium contour around right crack tip
#for Lennard-Jones potential for gold: #for Lennard-Jones potential for gold:
# surface energy (gamma) of 0.1599 eV/Å^2 = 2.56191 J/m2. # surface energy (gamma) of 0.1599 eV/Å^2 = 2.56191 J/m2.
# 2*gamma = 0.3198 eV/Å^2 = 5.12382 J/m2 # 2*gamma = 0.3198 eV/Å^2 = 5.12382 J/m2
# using the internal nktv2p conversion factor, # using the internal nktv2p conversion factor,
# the units of eshelby_stress are eV/Å^3, and # the units of eshelby_stress are eV/Å^3, and
# the resulting boundary integral is eV/Å since we also include thickness (a # the resulting boundary integral is eV/Å since we also include thickness (a
# boundary surface area rather than a periphery). If we multiply the 2*gamma # boundary surface area rather than a periphery). If we multiply the 2*gamma
# quantity times the thickness t = 3*4.08 = 12.24 Å, we obtain 2*gamma*t = # quantity times the thickness t = 3*4.08 = 12.24 Å, we obtain 2*gamma*t =
# 3.914352 eV/Å, which agrees with the mesh calculation. # 3.914352 eV/Å, which agrees with the mesh calculation.
echo both echo both
log eshelby_static.log log eshelby_static.log
units metal units metal
dimension 3 dimension 3
boundary p p p boundary p p p
@ -29,12 +29,12 @@ lattice fcc 4.08 origin 0.25 0.25 0.25
region SYSTEM block -10 10 -10 10 0 3 region SYSTEM block -10 10 -10 10 0 3
region UPPER block -10 10 0 10 0 3 region UPPER block -10 10 0 10 0 3
region LOWER block -10 0 -10 10 0 3 region LOWER block -10 0 -10 10 0 3
create_box 1 SYSTEM create_box 1 SYSTEM
create_atoms 1 region SYSTEM create_atoms 1 region SYSTEM
mass 1 63.55 mass 1 63.55
group internal region SYSTEM group internal region SYSTEM
group upper region UPPER group upper region UPPER
group lower region LOWER group lower region LOWER
#pair_style eam #pair_style eam
#pair_coeff * * ../../../../potentials/Cu_u3.eam #pair_coeff * * ../../../../potentials/Cu_u3.eam
#pair_style lj/smooth 8.0 10.0 #pair_style lj/smooth 8.0 10.0
@ -42,27 +42,27 @@ group lower region LOWER
pair_style lj/smooth/linear 5.456108274435118 pair_style lj/smooth/linear 5.456108274435118
pair_coeff * * 0.7242785984051078 2.598146797350056 pair_coeff * * 0.7242785984051078 2.598146797350056
# define region # define region
region abovecrack block -2.01 2.01 0 8 INF INF units lattice region abovecrack block -2.01 2.01 0 8 INF INF units lattice
group abovecrack region abovecrack group abovecrack region abovecrack
region belowcrack block -2.01 2.01 -8 0 INF INF units lattice region belowcrack block -2.01 2.01 -8 0 INF INF units lattice
group belowcrack region belowcrack group belowcrack region belowcrack
neighbor 1.0 bin neighbor 1.0 bin
neigh_modify delay 1000000 neigh_modify delay 1000000
neigh_modify exclude group abovecrack belowcrack neigh_modify exclude group abovecrack belowcrack
thermo 10 thermo 10
compute_modify thermo_temp extra 0 compute_modify thermo_temp extra/dof 0
region FORCECHECK block -6 0 6 10 0 3 region FORCECHECK block -6 0 6 10 0 3
group FORCECHECK region FORCECHECK group FORCECHECK region FORCECHECK
compute fxsum FORCECHECK reduce sum fx compute fxsum FORCECHECK reduce sum fx
compute fysum FORCECHECK reduce sum fy compute fysum FORCECHECK reduce sum fy
compute fzsum FORCECHECK reduce sum fz compute fzsum FORCECHECK reduce sum fz
thermo_style custom step ke pe press c_fxsum c_fysum c_fzsum thermo_style custom step ke pe press c_fxsum c_fysum c_fzsum
thermo_modify format 1 %4i format 2 %3.1g format 3 %20.16g thermo_modify format 1 %4i format 2 %3.1g format 3 %20.16g
timestep 0.0 timestep 0.0
# (1) minimize the system to get a relaxed configuration # (1) minimize the system to get a relaxed configuration
min_modify line quadratic min_modify line quadratic
variable tol equal 1.e-11 variable tol equal 1.e-11
minimize 0.0 ${tol} 100000 1000000 minimize 0.0 ${tol} 100000 1000000
write_restart eshelby.restart write_restart eshelby.restart
# (2) pull crack apart # (2) pull crack apart
reset_timestep 0 reset_timestep 0
@ -70,13 +70,13 @@ fix PK1 internal atc field
# NOTE tune this relative to lattice size # NOTE tune this relative to lattice size
fix_modify PK1 mesh create 10 10 1 SYSTEM p f p fix_modify PK1 mesh create 10 10 1 SYSTEM p f p
fix_modify PK1 fields none fix_modify PK1 fields none
fix_modify PK1 fields add mass_density internal_energy temperature stress displacement fix_modify PK1 fields add mass_density internal_energy temperature stress displacement
fix_modify PK1 fields add eshelby_stress transformed_stress fix_modify PK1 fields add eshelby_stress transformed_stress
fix_modify PK1 gradients add displacement fix_modify PK1 gradients add displacement
fix_modify PK1 set reference_potential_energy fix_modify PK1 set reference_potential_energy
fix_modify PK1 output eshelby_staticFE 1 text binary tensor_components fix_modify PK1 output eshelby_staticFE 1 text binary tensor_components
#fix_modify PK1 on_the_fly #fix_modify PK1 on_the_fly
#-- make concentric loops around one/both of the crack tips #-- make concentric loops around one/both of the crack tips
#-- & another around undefected material (loop0) #-- & another around undefected material (loop0)
fix_modify PK1 mesh create_faceset loop0 box -6 0 6 10 -INF INF outward fix_modify PK1 mesh create_faceset loop0 box -6 0 6 10 -INF INF outward
fix_modify PK1 output boundary_integral eshelby_stress faceset loop0 fix_modify PK1 output boundary_integral eshelby_stress faceset loop0

View File

@ -5,12 +5,12 @@ atom_style atomic
echo both echo both
dimension 3 dimension 3
boundary p p p boundary p p p
lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
region box block 0 5 0 5 0 5 region box block 0 5 0 5 0 5
read_data nvt.init read_data nvt.init
pair_style lj/cut 13.0 pair_style lj/cut 13.0
pair_coeff 1 1 0.2381 3.405 pair_coeff 1 1 0.2381 3.405
group internal region box group internal region box
fix ATC internal atc field fix ATC internal atc field
fix_modify ATC mesh create 1 1 1 box p p p fix_modify ATC mesh create 1 1 1 box p p p
@ -27,12 +27,12 @@ fix_modify PP atom_element_map eulerian 100
fix_modify PP fields add mass_density energy stress temperature kinetic_temperature fix_modify PP fields add mass_density energy stress temperature kinetic_temperature
fix_modify PP fields add velocity thermal_energy kinetic_energy fix_modify PP fields add velocity thermal_energy kinetic_energy
fix_modify PP output nvtPP 100 text fix_modify PP output nvtPP 100 text
thermo 100 thermo 100
compute_modify thermo_temp extra 0 compute_modify thermo_temp extra/dof 0
thermo_style custom step temp etotal ke pe press vol thermo_style custom step temp etotal ke pe press vol
timestep 4.0 timestep 4.0
reset_timestep 0 reset_timestep 0
# NOTE fixes performing time integration (init_integrate/final_integrate) should be defined after atc # NOTE fixes performing time integration (init_integrate/final_integrate) should be defined after atc
fix NVT all nvt temp 30 30 10.0 drag 0.2 tchain 1 fix NVT all nvt temp 30 30 10.0 drag 0.2 tchain 1
log nvt.log log nvt.log
run 1000 run 1000

View File

@ -1,38 +1,38 @@
#AtC Thermal Coupling #AtC Thermal Coupling
# This benchmark tests heat conducting into and out of the MD region. The # This benchmark tests heat conducting into and out of the MD region. The
# temperature is initially 20 everywhere and the left boundary BC is fixed at 40. # temperature is initially 20 everywhere and the left boundary BC is fixed at 40.
# The result should show heat diffusing through the FEM to the MD and back out # The result should show heat diffusing through the FEM to the MD and back out
# to the FEM on the right. Insufficient time is captured to reach the linear # to the FEM on the right. Insufficient time is captured to reach the linear
# steady state, but heat crossing both boundaries should be observed. # steady state, but heat crossing both boundaries should be observed.
units real units real
atom_style atomic atom_style atomic
echo both echo both
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data temp.init read_data temp.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -12 12 -3 3 -3 3 region simRegion block -12 12 -3 3 -3 3
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#region mdRegion block -5 5 -3 3 -3 3 #region mdRegion block -5 5 -3 3 -3 3
#boundary f p p #boundary f p p
#create_box 1 mdRegion #create_box 1 mdRegion
#create_atoms 1 region mdRegion #create_atoms 1 region mdRegion
#mass 1 39.95 #mass 1 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
region mdInternal block -4 4 -3 3 -3 3 region mdInternal block -4 4 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
group ghost subtract all internal group ghost subtract all internal
# velocities have Vcm = 0, NOTE next four lines commented out for restart # velocities have Vcm = 0, NOTE next four lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom #velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
##pair_coeff 1 1 0.010323166 3.405 13.5 ##pair_coeff 1 1 0.010323166 3.405 13.5
#pair_coeff 1 1 .238 3.405 13.5 #pair_coeff 1 1 .238 3.405 13.5
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
fix_modify AtC boundary ghost fix_modify AtC boundary ghost
@ -40,26 +40,26 @@ fix_modify AtC boundary ghost
fix_modify AtC mesh create 12 1 1 simRegion f p p fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC internal_quadrature off fix_modify AtC internal_quadrature off
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
# equilibrate MD field # equilibrate MD field
#dump D1 all atom 100 dump.bar1d #dump D1 all atom 100 dump.bar1d
#fix_modify AtC output bar1dfe 100 #fix_modify AtC output bar1dfe 100
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100
run 400 run 400
# change thermostat to hoover # change thermostat to hoover
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
fix_modify AtC control thermal hoover fix_modify AtC control thermal hoover
#fix_modify AtC localized_lambda on #fix_modify AtC localized_lambda on
fix_modify AtC filter type exponential fix_modify AtC filter type exponential
fix_modify AtC filter scale 10000.0 fix_modify AtC filter scale 10000.0
fix_modify AtC filter on fix_modify AtC filter on
# add nodesets # add nodesets
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
@ -67,13 +67,13 @@ fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature lbc 40.
fix_modify AtC fix temperature rbc 20. fix_modify AtC fix temperature rbc 20.
# initialize filter # initialize filter
thermo 1 thermo 1
run 100 run 100
# set up output, should be before a "run" # set up output, should be before a "run"
fix_modify AtC output bar1dFE 100 text binary fix_modify AtC output bar1dFE 100 text binary
# output command # output command
#dump D1 all atom 1000 dump.bar1d #dump D1 all atom 1000 dump.bar1d
# run with FE # run with FE
reset_timestep 0 reset_timestep 0
thermo 100 thermo 100
run 10000 run 10000

View File

@ -4,33 +4,33 @@
# 40.# The result should show heat diffusing through the FEM to the MD and back # 40.# The result should show heat diffusing through the FEM to the MD and back
# out # to the FEM on the right. Insufficient time is captured to reach the # out # to the FEM on the right. Insufficient time is captured to reach the
# linear # steady state, but heat crossing both boundaries should be observed. # linear # steady state, but heat crossing both boundaries should be observed.
units real units real
atom_style atomic atom_style atomic
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data all_atoms.init read_data all_atoms.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -7 7 -3 3 -3 3 region simRegion block -7 7 -3 3 -3 3
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#boundary f p p #boundary f p p
#create_box 1 simRegion #create_box 1 simRegion
#create_atoms 1 region simRegion #create_atoms 1 region simRegion
#mass 1 39.95 #mass 1 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3 region mdInternal block -6 6 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
group ghost subtract all internal group ghost subtract all internal
# velocities have Vcm = 0, NOTE next four lines commented out for restart # velocities have Vcm = 0, NOTE next four lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom #velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
##pair_coeff 1 1 0.010323166 3.405 13.5 ##pair_coeff 1 1 0.010323166 3.405 13.5
#pair_coeff 1 1 .238 3.405 13.5 #pair_coeff 1 1 .238 3.405 13.5
#write_restart all_atoms.init #write_restart all_atoms.init
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
# ID part keywords nx ny nz region # ID part keywords nx ny nz region
@ -39,34 +39,34 @@ fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF out
fix_modify AtC mesh create_faceset lbndy box -6.0 16.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset lbndy box -6.0 16.0 -INF INF -INF INF outward
fix_modify AtC mesh create_faceset rbndy box -16.0 6.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset rbndy box -16.0 6.0 -INF INF -INF INF outward
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
fix_modify AtC internal_quadrature off fix_modify AtC internal_quadrature off
# equilibrate MD field # equilibrate MD field
#dump D1 all atom 100 dump.bar1d #dump D1 all atom 100 dump.bar1d
#fix_modify AtC output bar1dfe 100 #fix_modify AtC output bar1dfe 100
#fix_modify AtC time_integration frac_step #fix_modify AtC time_integration frac_step
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100
run 400 run 400
# change thermostat to hoover # change thermostat to hoover
fix_modify AtC control thermal hoover fix_modify AtC control thermal hoover
#fix_modify AtC thermal control flux interpolate #fix_modify AtC thermal control flux interpolate
#fix_modify AtC thermal control flux faceset obndy #fix_modify AtC thermal control flux faceset obndy
fix_modify AtC filter scale 1000.0 fix_modify AtC filter scale 1000.0
#fix_modify AtC filter equilibrate #fix_modify AtC filter equilibrate
#fix_modify AtC filter on #fix_modify AtC filter on
#fix_modify AtC localized_lambda on #fix_modify AtC localized_lambda on
fix_modify AtC boundary_faceset is obndy fix_modify AtC boundary_faceset is obndy
# initialize filter # initialize filter
#fix_modify AtC output bar1d_all_atoms_preqFE 1 #fix_modify AtC output bar1d_all_atoms_preqFE 1
reset_timestep 0 reset_timestep 0
thermo 1 thermo 1
#run 5000 #run 5000
# add nodesets and ramp temperature # add nodesets and ramp temperature
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
@ -76,26 +76,26 @@ thermo 1
#fix_modify AtC fix temperature rbc 20. #fix_modify AtC fix temperature rbc 20.
# initialize filter # initialize filter
#fix_modify AtC output bar1d_all_atoms_eqFE 200 #fix_modify AtC output bar1d_all_atoms_eqFE 200
reset_timestep 0 reset_timestep 0
fix_modify AtC reset_time fix_modify AtC reset_time
#run 5000 #run 5000
# release and let run # release and let run
#fix_modify AtC filter on #fix_modify AtC filter on
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
#fix_modify AtC localized_lambda on #fix_modify AtC localized_lambda on
fix_modify AtC control lumped_lambda_solve on fix_modify AtC control lumped_lambda_solve on
# dirichlet boundaries # dirichlet boundaries
#fix_modify AtC fix temperature lbc 40. #fix_modify AtC fix temperature lbc 40.
#fix_modify AtC fix temperature rbc 20. #fix_modify AtC fix temperature rbc 20.
# neumann boundaries # neumann boundaries
fix_modify AtC control thermal flux no_boundary fix_modify AtC control thermal flux no_boundary
fix_modify AtC fix_flux temperature lbndy 0.0000000001 fix_modify AtC fix_flux temperature lbndy 0.0000000001
fix_modify AtC fix_flux temperature rbndy -0.0000000001 fix_modify AtC fix_flux temperature rbndy -0.0000000001
# set up output, should be before a "run" # set up output, should be before a "run"
fix_modify AtC output bar1d_all_atomsFE 200 text binary fix_modify AtC output bar1d_all_atomsFE 200 text binary
# output command # output command
#dump D1 all atom 1000 dump.bar1d #dump D1 all atom 1000 dump.bar1d
# run with FE # run with FE
reset_timestep 0 reset_timestep 0
thermo 200 thermo 200
run 5000 run 5000

View File

@ -6,62 +6,62 @@
# linear # steady state, but heat crossing the boundaries should be observed, # linear # steady state, but heat crossing the boundaries should be observed,
# as should the interaction of the two themostat types. # as should the interaction of the two themostat types.
#echo both #echo both
units real units real
atom_style atomic atom_style atomic
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data temp.init read_data temp.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -16 4 -3 3 -3 3 region simRegion block -16 4 -3 3 -3 3
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#region mdRegion block -5 5 -3 3 -3 3 #region mdRegion block -5 5 -3 3 -3 3
#boundary f p p #boundary f p p
#create_box 1 mdRegion #create_box 1 mdRegion
#create_atoms 1 region mdRegion #create_atoms 1 region mdRegion
#mass 1 39.95 #mass 1 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
region mdInternal block -4 4 -3 3 -3 3 region mdInternal block -4 4 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
region mdGhost block -5 -4 -3 3 -3 3 region mdGhost block -5 -4 -3 3 -3 3
group ghost region mdGhost group ghost region mdGhost
# velocities have Vcm = 0, NOTE next four lines commented out for restart # velocities have Vcm = 0, NOTE next four lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom #velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
##pair_coeff 1 1 0.010323166 3.405 13.5 ##pair_coeff 1 1 0.010323166 3.405 13.5
#pair_coeff 1 1 .238 3.405 13.5 #pair_coeff 1 1 .238 3.405 13.5
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
#write_restart tinit.dat #write_restart tinit.dat
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
fix_modify AtC boundary ghost fix_modify AtC boundary ghost
fix_modify AtC time_integration fractional_step fix_modify AtC time_integration fractional_step
fix_modify AtC internal_quadrature off fix_modify AtC internal_quadrature off
# ID part keywords nx ny nz region # ID part keywords nx ny nz region
fix_modify AtC mesh create 10 1 1 simRegion f p p fix_modify AtC mesh create 10 1 1 simRegion f p p
fix_modify AtC mesh create_faceset ibndy box -4.0 40.0 -INF INF -INF INF in fix_modify AtC mesh create_faceset ibndy box -4.0 40.0 -INF INF -INF INF in
fix_modify AtC mesh create_faceset obndy box -4.0 40.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset obndy box -4.0 40.0 -INF INF -INF INF outward
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
# equilibrate MD field # equilibrate MD field
#fix_modify AtC output bar1dfe_combined_init 100 #fix_modify AtC output bar1dfe_combined_init 100
timestep 5 timestep 5
thermo 10 thermo 10
run 400 run 400
# change thermostat to flux # change thermostat to flux
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
fix_modify AtC control thermal flux faceset obndy fix_modify AtC control thermal flux faceset obndy
#fix_modify AtC control thermal hoover #fix_modify AtC control thermal hoover
fix_modify AtC control localized_lambda on fix_modify AtC control localized_lambda on
#fix_modify AtC control tolerance 1.e-16 # this tolerance seems necessary to prevent noticeable drift #fix_modify AtC control tolerance 1.e-16 # this tolerance seems necessary to prevent noticeable drift
# add nodesets # add nodesets
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
@ -74,8 +74,8 @@ fix_modify AtC fix temperature rbc 20.
fix_modify AtC filter type exponential fix_modify AtC filter type exponential
fix_modify AtC filter scale 1000.0 fix_modify AtC filter scale 1000.0
#fix_modify AtC filter on #fix_modify AtC filter on
thermo 100 thermo 100
#run 100 #run 100
# set up output, should be before a "run" # set up output, should be before a "run"
fix_modify AtC output bar1d_combinedFE 100 text fix_modify AtC output bar1d_combinedFE 100 text
@ -83,5 +83,5 @@ fix_modify AtC output bar1d_combinedFE 100 text
#dump D1 all atom 100 dump.bar1d_combined #dump D1 all atom 100 dump.bar1d_combined
# run with FE # run with FE
reset_timestep 0 reset_timestep 0
thermo 100 thermo 100
run 5000 run 5000

View File

@ -5,34 +5,34 @@
# out # to the FEM on the right. Insufficient time is captured to reach the # out # to the FEM on the right. Insufficient time is captured to reach the
# linear # steady state, but heat crossing both boundaries should be observed. # linear # steady state, but heat crossing both boundaries should be observed.
#echo both #echo both
units real units real
atom_style atomic atom_style atomic
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data temp.init read_data temp.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -12 12 -3 3 -3 3 region simRegion block -12 12 -3 3 -3 3
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#region mdRegion block -5 5 -3 3 -3 3 #region mdRegion block -5 5 -3 3 -3 3
#boundary f p p #boundary f p p
#create_box 1 mdRegion #create_box 1 mdRegion
#create_atoms 1 region mdRegion #create_atoms 1 region mdRegion
#mass 1 39.95 #mass 1 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
region mdInternal block -4 4 -3 3 -3 3 region mdInternal block -4 4 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
group ghost subtract all internal group ghost subtract all internal
# velocities have Vcm = 0, NOTE next four lines commented out for restart # velocities have Vcm = 0, NOTE next four lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom #velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
##pair_coeff 1 1 0.010323166 3.405 13.5 ##pair_coeff 1 1 0.010323166 3.405 13.5
#pair_coeff 1 1 .238 3.405 13.5 #pair_coeff 1 1 .238 3.405 13.5
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
#write_restart tinit.dat #write_restart tinit.dat
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
fix_modify AtC boundary ghost fix_modify AtC boundary ghost
@ -42,25 +42,25 @@ fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in
fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. #fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
# equilibrate MD field # equilibrate MD field
#fix_modify AtC output bar1dfe_flux_init 100 #fix_modify AtC output bar1dfe_flux_init 100
timestep 5 timestep 5
thermo 10 thermo 10
run 400 run 400
# change thermostat to hoover # change thermostat to hoover
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
fix_modify AtC control thermal flux faceset obndy fix_modify AtC control thermal flux faceset obndy
fix_modify AtC filter type exponential fix_modify AtC filter type exponential
fix_modify AtC filter scale 10000.0 fix_modify AtC filter scale 10000.0
#fix_modify AtC filter on #fix_modify AtC filter on
# add nodesets # add nodesets
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
@ -68,12 +68,12 @@ fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature lbc 40.
fix_modify AtC fix temperature rbc 20. fix_modify AtC fix temperature rbc 20.
# initialize filter # initialize filter
run 100 run 100
# set up output, should be before a "run" # set up output, should be before a "run"
fix_modify AtC output bar1d_fluxFE 100 text binary fix_modify AtC output bar1d_fluxFE 100 text binary
# output command # output command
#dump D1 all atom 1000 dump.bar1d #dump D1 all atom 1000 dump.bar1d
# run with FE # run with FE
reset_timestep 0 reset_timestep 0
thermo 100 thermo 100
run 10000 run 10000

View File

@ -4,33 +4,33 @@
# 40.# The result should show heat diffusing through the FEM to the MD and back # 40.# The result should show heat diffusing through the FEM to the MD and back
# out # to the FEM on the right. Insufficient time is captured to reach the # out # to the FEM on the right. Insufficient time is captured to reach the
# linear # steady state, but heat crossing both boundaries should be observed. # linear # steady state, but heat crossing both boundaries should be observed.
units real units real
atom_style atomic atom_style atomic
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data temp.init read_data temp.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -12 12 -3 3 -3 3 region simRegion block -12 12 -3 3 -3 3
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#region mdRegion block -5 5 -3 3 -3 3 #region mdRegion block -5 5 -3 3 -3 3
#boundary f p p #boundary f p p
#create_box 1 mdRegion #create_box 1 mdRegion
#create_atoms 1 region mdRegion #create_atoms 1 region mdRegion
#mass 1 39.95 #mass 1 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
region mdInternal block -4 4 -3 3 -3 3 region mdInternal block -4 4 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
group ghost subtract all internal group ghost subtract all internal
# velocities have Vcm = 0, NOTE next four lines commented out for restart # velocities have Vcm = 0, NOTE next four lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom #velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
##pair_coeff 1 1 0.010323166 3.405 13.5 ##pair_coeff 1 1 0.010323166 3.405 13.5
#pair_coeff 1 1 .238 3.405 13.5 #pair_coeff 1 1 .238 3.405 13.5
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
# ID part keywords nx ny nz region # ID part keywords nx ny nz region
@ -40,7 +40,7 @@ fix_modify AtC internal_atom_integrate off
fix iNVE internal nve fix iNVE internal nve
fix_modify AtC internal_quadrature off fix_modify AtC internal_quadrature off
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
# add nodesets # add nodesets
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -4.1 -3.9 -INF INF -INF INF fix_modify AtC mesh create_nodeset lbc -4.1 -3.9 -INF INF -INF INF
@ -48,25 +48,25 @@ fix_modify AtC mesh create_nodeset rbc 3.9 4.1 -INF INF -INF INF
fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature lbc 40.
fix_modify AtC fix temperature rbc 20. fix_modify AtC fix temperature rbc 20.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
# equilibrate MD field # equilibrate MD field
#dump D1 all atom 100 dump.bar1d #dump D1 all atom 100 dump.bar1d
#fix_modify AtC output bar1dfe 100 text #fix_modify AtC output bar1dfe 100 text
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100
run 400 run 400
# change thermostat to hoover # change thermostat to hoover
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature lbc 40.
fix_modify AtC fix temperature rbc 20. fix_modify AtC fix temperature rbc 20.
fix_modify AtC control thermal flux no_boundary fix_modify AtC control thermal flux no_boundary
fix_modify AtC control tolerance 1.e-9 # this is to remove looser benchmark tolerance because the lambda solution was reacting to numerical noise, but it results in a slight drift in the constraints fix_modify AtC control tolerance 1.e-9 # this is to remove looser benchmark tolerance because the lambda solution was reacting to numerical noise, but it results in a slight drift in the constraints
#fix_modify AtC thermal control none #fix_modify AtC thermal control none
fix_modify AtC control localized_lambda on fix_modify AtC control localized_lambda on
fix_modify AtC filter type exponential fix_modify AtC filter type exponential
fix_modify AtC filter scale 1000.0 fix_modify AtC filter scale 1000.0
fix_modify AtC filter on fix_modify AtC filter on
@ -76,5 +76,5 @@ fix_modify AtC output bar1d_frac_stepFE 200 text
#dump D1 all atom 1000 dump.bar1d #dump D1 all atom 1000 dump.bar1d
# run with FE # run with FE
reset_timestep 0 reset_timestep 0
thermo 100 thermo 100
run 10000 run 10000

View File

@ -4,35 +4,35 @@
# 40.# The result should show heat diffusing through the FEM to the MD and back # 40.# The result should show heat diffusing through the FEM to the MD and back
# out # to the FEM on the right. Insufficient time is captured to reach the # out # to the FEM on the right. Insufficient time is captured to reach the
# linear # steady state, but heat crossing both boundaries should be observed. # linear # steady state, but heat crossing both boundaries should be observed.
units real units real
atom_style atomic atom_style atomic
log bar1d_hoover.log log bar1d_hoover.log
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data all_atoms.init read_data all_atoms.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -7 7 -3 3 -3 3 region simRegion block -7 7 -3 3 -3 3
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#boundary f p p #boundary f p p
#create_box 1 simRegion #create_box 1 simRegion
#create_atoms 1 region simRegion #create_atoms 1 region simRegion
#mass 1 39.95 #mass 1 39.95
#atom_modify sort 0 0 #atom_modify sort 0 0
# specify interal/ghost atoms # specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3 region mdInternal block -6 6 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
group ghost subtract all internal group ghost subtract all internal
# velocities have Vcm = 0, NOTE next four lines commented out for restart # velocities have Vcm = 0, NOTE next four lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom #velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
##pair_coeff 1 1 0.010323166 3.405 13.5 ##pair_coeff 1 1 0.010323166 3.405 13.5
#pair_coeff 1 1 .238 3.405 13.5 #pair_coeff 1 1 .238 3.405 13.5
#write_restart all_atoms.init #write_restart all_atoms.init
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
# ID part keywords nx ny nz region # ID part keywords nx ny nz region
@ -40,9 +40,9 @@ fix AtC internal atc thermal Ar_thermal.mat
# switch depending on application of BCs or coupling # switch depending on application of BCs or coupling
#variable nEls equal 6 # for boundary conditions #variable nEls equal 6 # for boundary conditions
variable nEls equal 12 # for coupling variable nEls equal 12 # for coupling
fix_modify AtC boundary ghost # for coupling fix_modify AtC boundary ghost # for coupling
region atcRegion block -${nEls} ${nEls} -3 3 -3 3 region atcRegion block -${nEls} ${nEls} -3 3 -3 3
fix_modify AtC mesh create ${nEls} 1 1 atcRegion f p p fix_modify AtC mesh create ${nEls} 1 1 atcRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
fix_modify AtC mesh create_faceset lbndy box -6.0 16.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset lbndy box -6.0 16.0 -INF INF -INF INF outward
@ -50,39 +50,39 @@ fix_modify AtC mesh create_faceset rbndy box -16.0 6.0 -INF INF -INF INF ou
variable tol equal 0.1 variable tol equal 0.1
variable uBnd equal ${nEls}+${tol} variable uBnd equal ${nEls}+${tol}
variable lBnd equal ${nEls}-${tol} variable lBnd equal ${nEls}-${tol}
fix_modify AtC mesh create_nodeset lbc -${uBnd} -${lBnd} -INF INF -INF INF fix_modify AtC mesh create_nodeset lbc -${uBnd} -${lBnd} -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc ${lBnd} ${uBnd} -INF INF -INF INF fix_modify AtC mesh create_nodeset rbc ${lBnd} ${uBnd} -INF INF -INF INF
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
#fix_modify AtC initial temperature all 20. #fix_modify AtC initial temperature all 20.
#fix_modify AtC consistent_fe_initialization on #fix_modify AtC consistent_fe_initialization on
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
fix_modify AtC internal_quadrature off fix_modify AtC internal_quadrature off
# equilibrate MD field # equilibrate MD field
#dump D1 all atom 100 dump.bar1d_hoover_init #dump D1 all atom 100 dump.bar1d_hoover_init
#fix_modify AtC output bar1d_hoover_init 100 text binary #fix_modify AtC output bar1d_hoover_init 100 text binary
fix_modify AtC time_integration fractional_step fix_modify AtC time_integration fractional_step
fix_modify AtC temperature_definition total fix_modify AtC temperature_definition total
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100
run 400 run 400
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
fix_modify AtC filter type exponential fix_modify AtC filter type exponential
fix_modify AtC filter scale 1000.0 fix_modify AtC filter scale 1000.0
fix_modify AtC filter on fix_modify AtC filter on
# boundary conditions------------------------ # boundary conditions------------------------
# dirichlet with ramp (unstable when filtered due to instantaneous change in rate) # dirichlet with ramp (unstable when filtered due to instantaneous change in rate)
#fix_modify AtC fix temperature lbc temporal_ramp 20. 40. 25000. #fix_modify AtC fix temperature lbc temporal_ramp 20. 40. 25000.
#fix_modify AtC fix temperature rbc 20. #fix_modify AtC fix temperature rbc 20.
#fix_modify AtC localized_lambda on #fix_modify AtC localized_lambda on
#fix_modify AtC control thermal flux no_boundary #fix_modify AtC control thermal flux no_boundary
#fix_modify AtC output test_rampFE 200 text binary #fix_modify AtC output test_rampFE 200 text binary
@ -94,7 +94,7 @@ fix_modify AtC filter on
#fix_modify AtC fix temperature lbc 40. #fix_modify AtC fix temperature lbc 40.
# dirichlet with rescaling # dirichlet with rescaling
#fix_modify AtC filter off #fix_modify AtC filter off
#fix_modify AtC fix temperature all 20. #fix_modify AtC fix temperature all 20.
#fix_modify AtC fix temperature lbc 40. #fix_modify AtC fix temperature lbc 40.
#fix_modify AtC output test_rampFE 200 text binary #fix_modify AtC output test_rampFE 200 text binary
@ -126,13 +126,13 @@ fix_modify AtC fix temperature rbc 20.
#fix_modify AtC lumped_lambda_solve on #fix_modify AtC lumped_lambda_solve on
# hoover # hoover
fix_modify AtC control thermal hoover fix_modify AtC control thermal hoover
fix_modify AtC control localized_lambda on fix_modify AtC control localized_lambda on
fix_modify AtC control tolerance 1.e-14 fix_modify AtC control tolerance 1.e-14
fix_modify AtC output bar1d_hooverFE 200 text binary fix_modify AtC output bar1d_hooverFE 200 text binary
#dump D1 all atom 200 dump.bar1d_hoover #dump D1 all atom 200 dump.bar1d_hoover
reset_timestep 0 reset_timestep 0
fix_modify AtC reset_time fix_modify AtC reset_time
thermo 100 thermo 100
run 5000 run 5000

View File

@ -4,65 +4,65 @@
# 40.# The result should show heat diffusing through the FEM to the MD and back # 40.# The result should show heat diffusing through the FEM to the MD and back
# out # to the FEM on the right. Insufficient time is captured to reach the # out # to the FEM on the right. Insufficient time is captured to reach the
# linear # steady state, but heat crossing both boundaries should be observed. # linear # steady state, but heat crossing both boundaries should be observed.
units real units real
atom_style atomic atom_style atomic
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data temp.init read_data temp.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -12 12 -3 3 -3 3 region simRegion block -12 12 -3 3 -3 3
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#region mdRegion block -5 5 -3 3 -3 3 #region mdRegion block -5 5 -3 3 -3 3
#boundary f p p #boundary f p p
#create_box 1 mdRegion #create_box 1 mdRegion
#create_atoms 1 region mdRegion #create_atoms 1 region mdRegion
#mass 1 39.95 #mass 1 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
region mdInternal block -4 4 -3 3 -3 3 region mdInternal block -4 4 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
group ghost subtract all internal group ghost subtract all internal
# velocities have Vcm = 0, NOTE next three lines commented out for restart # velocities have Vcm = 0, NOTE next three lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom #velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
#pair_coeff 1 1 .238 3.405 13.5 #pair_coeff 1 1 .238 3.405 13.5
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
fix_modify AtC boundary ghost fix_modify AtC boundary ghost
# numerical parameters # numerical parameters
fix_modify AtC time_integration fractional_step fix_modify AtC time_integration fractional_step
# ID part keywords nx ny nz region # ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in
fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. #fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30.
#fix_modify AtC fix temperature all quadratic 0 0 0 -0.154 0 0 30. 0.01 0.0 0.0 0 0 0 #fix_modify AtC fix temperature all quadratic 0 0 0 -0.154 0 0 30. 0.01 0.0 0.0 0 0 0
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
# equilibrate MD field # equilibrate MD field
#fix_modify AtC output bar1dfe_flux_init 100 #fix_modify AtC output bar1dfe_flux_init 100
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100
run 400 run 400
# change thermostat to hoover # change thermostat to hoover
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
fix_modify AtC control thermal none fix_modify AtC control thermal none
fix_modify AtC control thermal flux interpolate fix_modify AtC control thermal flux interpolate
fix_modify AtC control localized_lambda on fix_modify AtC control localized_lambda on
#fix_modify AtC thermal control flux faceset obndy #fix_modify AtC thermal control flux faceset obndy
fix_modify AtC filter type exponential fix_modify AtC filter type exponential
fix_modify AtC filter scale 10000.0 fix_modify AtC filter scale 10000.0
fix_modify AtC filter on fix_modify AtC filter on
# add nodesets # add nodesets
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
@ -70,11 +70,11 @@ fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature lbc 40.
fix_modify AtC fix temperature rbc 20. fix_modify AtC fix temperature rbc 20.
# initialize filter # initialize filter
run 100 run 100
# set up output, should be before a "run" # set up output, should be before a "run"
fix_modify AtC output bar1d_interpolateFE 100 text fix_modify AtC output bar1d_interpolateFE 100 text
# run with FE # run with FE
reset_timestep 0 reset_timestep 0
thermo 100 thermo 100
#run 10 #run 10
run 10000 run 10000

View File

@ -5,32 +5,32 @@
# out # to the FEM on the right. Insufficient time is captured to reach the # out # to the FEM on the right. Insufficient time is captured to reach the
# linear # steady state, but heat crossing both boundaries should be observed. # linear # steady state, but heat crossing both boundaries should be observed.
echo both echo both
units real units real
atom_style atomic atom_style atomic
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
# NOTE following 3 lines added for restart # NOTE following 3 lines added for restart
boundary f p p boundary f p p
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data temp.init read_data temp.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -12 12 -3 3 -3 3 region simRegion block -12 12 -3 3 -3 3
# create atoms, NOTE commented out for restart # create atoms, NOTE commented out for restart
#region mdRegion block -5 5 -3 3 -3 3 #region mdRegion block -5 5 -3 3 -3 3
#boundary f p p #boundary f p p
#create_box 1 mdRegion #create_box 1 mdRegion
#create_atoms 1 region mdRegion #create_atoms 1 region mdRegion
#mass 1 39.95 #mass 1 39.95
# specify interal/ghost atoms # specify interal/ghost atoms
region mdInternal block -4 4 -3 3 -3 3 region mdInternal block -4 4 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
group ghost subtract all internal group ghost subtract all internal
# velocities have Vcm = 0, NOTE next three lines commented out for restart # velocities have Vcm = 0, NOTE next three lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom #velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.5 #pair_style lj/cut 13.5
#pair_coeff 1 1 .238 3.405 13.5 #pair_coeff 1 1 .238 3.405 13.5
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc thermal Ar_thermal.mat fix AtC internal atc thermal Ar_thermal.mat
fix_modify AtC boundary ghost fix_modify AtC boundary ghost
@ -42,30 +42,30 @@ fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in
fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward
# fix a temperature # fix a temperature
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. #fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30.
#fix_modify AtC fix temperature all quadratic 0 0 0 -0.154 0 0 30. 0.01 0.0 0.0 0 0 0 #fix_modify AtC fix temperature all quadratic 0 0 0 -0.154 0 0 30. 0.01 0.0 0.0 0 0 0
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
# output # output
thermo 100 thermo 100
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
# equilibrate MD field # equilibrate MD field
#fix_modify AtC output bar1d_lumped_initFE 1 text #fix_modify AtC output bar1d_lumped_initFE 1 text
timestep 5 timestep 5
run 400 run 400
#run 100 #run 100
# change thermostat to hoover # change thermostat to hoover
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
#fix_modify AtC thermal control flux interpolate #fix_modify AtC thermal control flux interpolate
fix_modify AtC control thermal flux faceset obndy fix_modify AtC control thermal flux faceset obndy
fix_modify AtC control localized_lambda on fix_modify AtC control localized_lambda on
fix_modify AtC filter type exponential fix_modify AtC filter type exponential
fix_modify AtC filter scale 10000.0 fix_modify AtC filter scale 10000.0
fix_modify AtC filter on fix_modify AtC filter on
# add nodesets # add nodesets
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
@ -73,13 +73,13 @@ fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix temperature lbc 80. fix_modify AtC fix temperature lbc 80.
fix_modify AtC fix temperature rbc 80. fix_modify AtC fix temperature rbc 80.
# initialize # initialize
thermo 10 thermo 10
run 100 run 100
# relax # relax
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
# output # output
fix_modify AtC output bar1d_lumpedFE 100 text fix_modify AtC output bar1d_lumpedFE 100 text
# run with FE # run with FE
reset_timestep 0 reset_timestep 0
thermo 100 thermo 100
run 10000 run 10000

View File

@ -1,41 +1,41 @@
# needs description # needs description
#AtC Thermal Coupling #AtC Thermal Coupling
echo both echo both
units real units real
atom_style atomic atom_style atomic
boundary f p p boundary f p p
# create domain # create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) #lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
pair_style lj/cut 13.5 pair_style lj/cut 13.5
read_data uniform_heating.init read_data uniform_heating.init
lattice fcc 5.405 origin 0.25 0.25 0.25 lattice fcc 5.405 origin 0.25 0.25 0.25
region mdRegion block -8 8 -3 3 -3 3 region mdRegion block -8 8 -3 3 -3 3
region mdInternal block -6 6 -3 3 -3 3 region mdInternal block -6 6 -3 3 -3 3
group internal region mdInternal group internal region mdInternal
neighbor 5. bin neighbor 5. bin
neigh_modify every 10 delay 0 check no neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile # ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat fix AtC internal atc two_temperature Ar_ttm.mat
# ID part keywords nx ny nz region # ID part keywords nx ny nz region
fix_modify AtC mesh create 6 1 1 mdInternal f p p fix_modify AtC mesh create 6 1 1 mdInternal f p p
fix_modify AtC internal_quadrature on fix_modify AtC internal_quadrature on
# fix a temperature # fix a temperature
fix_modify AtC initial temperature all 20. fix_modify AtC initial temperature all 20.
fix_modify AtC fix temperature all 20. fix_modify AtC fix temperature all 20.
fix_modify AtC initial electron_temperature all 20. fix_modify AtC initial electron_temperature all 20.
fix_modify AtC fix electron_temperature all 20. fix_modify AtC fix electron_temperature all 20.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
# output # output
thermo_style custom step cpu pe etotal temp f_AtC[1] f_AtC[2] thermo_style custom step cpu pe etotal temp f_AtC[1] f_AtC[2]
thermo 100 thermo 100
log uniform_heating.log log uniform_heating.log
# make thermo output the correct temperature by removing ghost dof # make thermo output the correct temperature by removing ghost dof
# variable xdof equal 3*count(ghost) # variable xdof equal 3*count(ghost)
# compute_modify thermo_temp extra ${xdof} # compute_modify thermo_temp extra/dof ${xdof}
# equilibrate MD field # equilibrate MD field
timestep 5 timestep 5
run 400 run 400
# change thermostat # change thermostat
fix_modify AtC output uniform_heatingFE 100 text fix_modify AtC output uniform_heatingFE 100 text
fix_modify AtC unfix temperature all fix_modify AtC unfix temperature all
@ -50,4 +50,4 @@ fix_modify AtC fix temperature rbc 20.
fix_modify AtC source temperature all 6.3363e-10 fix_modify AtC source temperature all 6.3363e-10
# run with FE # run with FE
reset_timestep 0 reset_timestep 0
run 1000 run 1000

View File

@ -25,7 +25,7 @@ pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve fix fnve all nve
compute dtemp all temp compute dtemp all temp
compute_modify dtemp dynamic yes compute_modify dtemp dynamic/dof yes
fix fT all langevin 1.0 1.0 1.0 123 fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp fix_modify fT temp dtemp

View File

@ -6,12 +6,12 @@ neighbor 10.0 bin
read_data data.chreg-acid-real read_data data.chreg-acid-real
#real units #real units
variable sigma equal 7.2 # particle diameter 0.72 nm variable sigma equal 7.2 # particle diameter 0.72 nm
variable temperature equal 298 # temperature 298 K variable temperature equal 298 # temperature 298 K
variable kb index 0.0019872067 # kB in Kcal/mol/K variable kb index 0.0019872067 # kB in Kcal/mol/K
variable epsilon equal ${kb}*${temperature} variable epsilon equal ${kb}*${temperature}
variable tunit equal 2000 # time unit is 2000 fs variable tunit equal 2000 # time unit is 2000 fs
variable timestep equal 0.005*${tunit} variable timestep equal 0.005*${tunit}
variable cut_long equal 12.5*${sigma} variable cut_long equal 12.5*${sigma}
variable nevery equal 100 variable nevery equal 100
@ -27,13 +27,13 @@ velocity all create ${temperature} 8008 loop geom
pair_style lj/cut/coul/long ${cut_lj} ${cut_long} pair_style lj/cut/coul/long ${cut_lj} ${cut_long}
pair_coeff * * ${epsilon} ${sigma} pair_coeff * * ${epsilon} ${sigma}
kspace_style pppm 1.0e-3 kspace_style pppm 1.0e-3
dielectric 78 dielectric 78
pair_modify shift yes pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve fix fnve all nve
compute dtemp all temp compute dtemp all temp
compute_modify dtemp dynamic yes compute_modify dtemp dynamic/dof yes
fix fT all langevin $(v_temperature) $(v_temperature) $(v_tunit) 123 fix fT all langevin $(v_temperature) $(v_temperature) $(v_tunit) 123
fix_modify fT temp dtemp fix_modify fT temp dtemp

View File

@ -17,7 +17,7 @@ dielectric 1.0
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve fix fnve all nve
compute dtemp all temp compute dtemp all temp
compute_modify dtemp dynamic yes compute_modify dtemp dynamic/dof yes
fix fT all langevin 1.0 1.0 1.0 123 fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp fix_modify fT temp dtemp

View File

@ -3,35 +3,35 @@
# rho ~ 0.5 # rho ~ 0.5
# p ~ 1.5 # p ~ 1.5
# mu_ex ~ 0.0 # mu_ex ~ 0.0
# comparable to Frenkel and Smit GCMC Case Study, Figure 5.8 # comparable to Frenkel and Smit GCMC Case Study, Figure 5.8
# variables modifiable using -var command line switch # variables modifiable using -var command line switch
variable mu index -1.25 variable mu index -1.25
variable temp index 2.0 variable temp index 2.0
variable disp index 1.0 variable disp index 1.0
variable lbox index 5.0 variable lbox index 5.0
# global model settings # global model settings
units lj units lj
atom_style atomic atom_style atomic
pair_style lj/cut 3.0 pair_style lj/cut 3.0
pair_modify tail no # turn of to avoid triggering full_energy pair_modify tail no # turn of to avoid triggering full_energy
# box # box
region box block 0 ${lbox} 0 ${lbox} 0 ${lbox} region box block 0 ${lbox} 0 ${lbox} 0 ${lbox}
create_box 1 box create_box 1 box
# lj parameters # lj parameters
pair_coeff * * 1.0 1.0 pair_coeff * * 1.0 1.0
mass * 1.0 mass * 1.0
# we recommend setting up a dedicated group for gcmc # we recommend setting up a dedicated group for gcmc
group gcmcgroup type 1 group gcmcgroup type 1
# gcmc # gcmc
@ -39,29 +39,29 @@ fix mygcmc gcmcgroup gcmc 1 100 100 1 29494 ${temp} ${mu} ${disp}
# atom count # atom count
variable type1 atom "type==1" variable type1 atom "type==1"
group type1 dynamic gcmcgroup var type1 group type1 dynamic gcmcgroup var type1
variable n1 equal count(type1) variable n1 equal count(type1)
# averaging # averaging
variable rho equal density variable rho equal density
variable p equal press variable p equal press
variable nugget equal 1.0e-8 variable nugget equal 1.0e-8
variable lambda equal 1.0 variable lambda equal 1.0
variable muex equal ${mu}-${temp}*ln(density*${lambda}+${nugget}) variable muex equal ${mu}-${temp}*ln(density*${lambda}+${nugget})
fix ave all ave/time 10 100 1000 v_rho v_p v_muex v_n1 ave one file rho_vs_p.dat fix ave all ave/time 10 100 1000 v_rho v_p v_muex v_n1 ave one file rho_vs_p.dat
variable rhoav equal f_ave[1] variable rhoav equal f_ave[1]
variable pav equal f_ave[2] variable pav equal f_ave[2]
variable muexav equal f_ave[3] variable muexav equal f_ave[3]
variable n1av equal f_ave[4] variable n1av equal f_ave[4]
# output # output
variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+${nugget}) variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+${nugget})
variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+${nugget}) variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+${nugget})
variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+${nugget}) variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+${nugget})
compute_modify thermo_temp dynamic yes compute_modify thermo_temp dynamic/dof yes
thermo_style custom step temp press pe ke density atoms v_iacc v_dacc v_tacc v_rhoav v_pav v_muexav v_n1av thermo_style custom step temp press pe ke density atoms v_iacc v_dacc v_tacc v_rhoav v_pav v_muexav v_n1av
thermo 1000 thermo 1000