adding energy to a single atom

Dear LAMMPS users and developers,

I would like to add no translational energy to a single atom (heat). This single atom is an addatom inserted by “fix deposit” that I want to release thermal energy after being stopped by the substrate.
I have tried to use “fix heat” but I got a message: “Fix heat group has no atoms” even after deposition.

Additionaly, I want to add energy only to atoms just deposited, not to the atoms deposited many steps before.

Thanks,

Fernanda S Teixeira

Dear LAMMPS users and developers,

   I would like to add no translational energy to a single atom (heat).
This single atom is an addatom inserted by "fix deposit" that I want to
release thermal energy after being stopped by the substrate.
  I have tried to use "fix heat" but I got a message: "Fix heat group has
no atoms" even after deposition.

fix deposit allows you to add a kinetic energy, i.e. velocity to deposited
atoms. that energy is automatically released (or rather transferred) to the
substrate, when the atoms collide with it.

  Additionaly, I want to add energy only to atoms just deposited, not to
the atoms deposited many steps before.

​you sound like you are talking about some other kind of "internal" energy,
however with classical MD point particles there is only kinetic energy.

axel.

Hi Axel

    For my experimental configuration, ions are deposited. So, besides kinect energy, there is ionization potential energy. This energy is released as heat when the ion becomes a neutral. So I am trying to mimic this. I was thinking in add this energy as more velocity for the incoming ions, but I will spend that energy in stopping. It is a slightly different scenario. Do you think it is the only way?

Thank you

Fernanda

Citando Axel Kohlmeyer <[email protected]>:

Hi Axel

   For my experimental configuration, ions are deposited. So, besides kinect
energy, there is ionization potential energy. This energy is released as
heat when the ion becomes a neutral. So I am trying to mimic this. I was
thinking in add this energy as more velocity for the incoming ions, but I
will spend that energy in stopping. It is a slightly different scenario. Do
you think it is the only way?

it is really up to you how you build your model, but the kind of
operation you want to perform is not built into LAMMPS.

so you would have to, for example, write a custom fix style for your
purpose. that fix could track atoms by having a custom property added,
and then when its kinetic energy drops below a pre-defined value, i.e.
it has hit the surface, you add a certain amount of kinetic energy
(i.e. random velocities) to the atoms within a given distance. at that
you change the custom property to indicate, that this ion has been
neutralized. not a trivial thing to program, but not too difficult
either.

axel.

Fix heat will not work b/c it expects there to be some atoms
in the group, not zero before deposition takes place.

You could just thermostat (e.g. with fix langevin) the atom(s)
that you deposit.

Steve

Thank you Axel.

Thank you Steve.

Dear Steve

I am doing one deposition for each loop and I want to langevin just the atom I have just deposited.
I am trying to do that:

fernanda,

as i already told you, if you want to add kinetic energy to the just deposited atom, you can do that directly with fix deposit (you can specify the velocity). fix langevin makes no sense for this. any energy that is added orthogonal to the deposition direction is not having the effect you desire.

i also mentioned, that in my opinion the way to model the scenario you are describing is to not change the kinetic energy of the deposited atom, but rather add a specific amount of kinetic energy to the neighboring atoms and after your atom has reached the surface (which can be determined simply through the change in its velocity).
however, this model will require some programming. there ain’t no escape from the blues.

please note, that for what you are doing fix deposit is the wrong tool. you can just use the create_atoms, and velocity commands. give the newly created atom a different atom type. define a new group with just that one atom, if needed (please be aware, that new group commands add to the group if it already exists, so in your case you need to delete the group before you can update it with a newly created atom) and then set up your run from there. the complex, inefficient and error-prone compute reduce is overkill here, too. just using an additional atom type for the newly created atoms solves the issue elegantly and much simpler (after it is deposited, you simply change the atom type back).

axel.

axel,

I got it!
Thank you for the valuable suggestions.

Fernanda