Poisuille flow

Dear LAMMPS users,

I am trying to simulate argon flow between two parallel metallic plates with different constant temperatures. In order to simulate the argon flow, I use the “fix ID group-ID addforce f_x 0.0 0.0” but after applying the force, the temperature of flow region increases dramatically. When there is no force applied on the argon particles, the temperature is reasonable.

I would really appreciate if somebody could help me to figure out this issue.

Santiago

Dear LAMMPS users,

I am trying to simulate argon flow between two parallel metallic plates
with different constant temperatures. In order to simulate the argon flow,
I use the "fix ID group-ID addforce f_x 0.0 0.0" but after applying the
force, the temperature of flow region increases dramatically. When there
is no force applied on the argon particles, the temperature is reasonable.

I would really appreciate if somebody could help me to figure out this
issue.

​trivial. the stronger the force you add, the more you accelerate your
flowing particles, the more they heat up. simple as that.

axel.

Thanks Axel. That’s totally right. Is there any other way to simulate a flow between parallel plates? In other words, is it more reasonable to use the “velocity flow set V_x 0.0 0.0” command in order to prevent from the continuous increase in temperature?

Dear LAMMPS users,

I am trying to simulate argon flow between two parallel metallic plates with different constant temperatures. In order to simulate the argon flow, I use the “fix ID group-ID addforce f_x 0.0 0.0” but after applying the force, the temperature of flow region increases dramatically. When there is no force applied on the argon particles, the temperature is reasonable.

I would really appreciate if somebody could help me to figure out this issue.

​trivial. the stronger the force you add, the more you accelerate your flowing particles, the more they heat up. simple as that.

axel.

Hi Santiago,

Are you using any thermostats to control the temperature?

Kasra.

Hi Kasra,

Actually, I use the “fix NVT” for the metallic walls with constant temperatures in order to make the wall’s temperature constant and “fix NVE” for the argon flow. Any idea?

Hi Santiago,
Are you using any thermostats to control the temperature?

Kasra.

Thanks Axel. That's totally right. Is there any other way to simulate a
flow between parallel plates? In other words, is it more reasonable to use
the "velocity flow set V_x 0.0 0.0" command in order to prevent from the
continuous increase in temperature?

​well, first of all, you have to be certain about how you define
"temperature" for your flowing medium.
typically, you don't want the kinetic energy of the center of mass of your
flowing medium included.
i.e. you either look only at temperature orthogonal to that direction or
you subtract out the center of mass motion (cf. compute temp/partial and
compute temp/com).

then you have to decide what is exactly the state you want to simulate. if
you want a steady flow at a given velocity, you can initialize that flow
with a velocity command, but you also need to add a small force, to
compensate for the dissipation of energy through interaction with the
walls. so you need to monitor the overall center of mass velocity of your
flowing medium and tweak your settings to reach the desired steady state.

with the differently thermostatted walls, you have another variable to
control. that will add/subtract kinetic energy to your medium. so you have
to observe that as well and equilibrate your setup into a steady state for
that as well.

this is no rocket science, but it also is not as straightforward as a
simple homogeneous bulk system. it is important that you carefully
characterize and observe what your system is doing and that you confirm
what is happening is actually what you are aiming to simulate. your initial
question indicates, that you approaching your simulations with the right
attitude, you just have to understand, that you are looking at something
much more complex, and thus you have to be correspondingly more careful and
diligent in your observations and considerations.

axel.

Dear Axel,

Thank you so much for your detailed explanation. It was very helpful.

Best,
Santiago

Thanks Axel. That’s totally right. Is there any other way to simulate a flow between parallel plates? In other words, is it more reasonable to use the “velocity flow set V_x 0.0 0.0” command in order to prevent from the continuous increase in temperature?

​well, first of all, you have to be certain about how you define “temperature” for your flowing medium.
typically, you don’t want the kinetic energy of the center of mass of your flowing medium included.
i.e. you either look only at temperature orthogonal to that direction or you subtract out the center of mass motion (cf. compute temp/partial and compute temp/com).

then you have to decide what is exactly the state you want to simulate. if you want a steady flow at a given velocity, you can initialize that flow with a velocity command, but you also need to add a small force, to compensate for the dissipation of energy through interaction with the walls. so you need to monitor the overall center of mass velocity of your flowing medium and tweak your settings to reach the desired steady state.

with the differently thermostatted walls, you have another variable to control. that will add/subtract kinetic energy to your medium. so you have to observe that as well and equilibrate your setup into a steady state for that as well.

this is no rocket science, but it also is not as straightforward as a simple homogeneous bulk system. it is important that you carefully characterize and observe what your system is doing and that you confirm what is happening is actually what you are aiming to simulate. your initial question indicates, that you approaching your simulations with the right attitude, you just have to understand, that you are looking at something much more complex, and thus you have to be correspondingly more careful and diligent in your observations and considerations.

axel.

Dear Axel,

According to your last comment, in order to simulate a steady flow at a given velocity, I initialized the flow with a velocity command and added a small force, to compensate for the dissipation of energy through interaction with the walls:

velocity flow set 1.0 0.0 0.0
fix 1 flow addforce 0.01 0.0 0.0

In order to define “temperature” for the flowing medium, I used “compute temp/com” command to exclude the kinetic energy of the center of mass of the flowing medium:

compute hot upper temp
compute flow argon temp/com

compute cold lower temp

Moreover, for controlling the temperature of the walls I have used the following commands:

fix hot upper nvt temp 150 150 0.01

fix cold lower nvt temp 90 90 0.01
fix nve flow nve

The temperature of the flow region decreased after I used the “compute temp/com” from 1250 to 840 but there are still some biases.

I would really appreciate if you could help me to figure it out.

Best,
Santiago

Thanks Axel. That’s totally right. Is there any other way to simulate a flow between parallel plates? In other words, is it more reasonable to use the “velocity flow set V_x 0.0 0.0” command in order to prevent from the continuous increase in temperature?

​well, first of all, you have to be certain about how you define “temperature” for your flowing medium.
typically, you don’t want the kinetic energy of the center of mass of your flowing medium included.
i.e. you either look only at temperature orthogonal to that direction or you subtract out the center of mass motion (cf. compute temp/partial and compute temp/com).

then you have to decide what is exactly the state you want to simulate. if you want a steady flow at a given velocity, you can initialize that flow with a velocity command, but you also need to add a small force, to compensate for the dissipation of energy through interaction with the walls. so you need to monitor the overall center of mass velocity of your flowing medium and tweak your settings to reach the desired steady state.

with the differently thermostatted walls, you have another variable to control. that will add/subtract kinetic energy to your medium. so you have to observe that as well and equilibrate your setup into a steady state for that as well.

this is no rocket science, but it also is not as straightforward as a simple homogeneous bulk system. it is important that you carefully characterize and observe what your system is doing and that you confirm what is happening is actually what you are aiming to simulate. your initial question indicates, that you approaching your simulations with the right attitude, you just have to understand, that you are looking at something much more complex, and thus you have to be correspondingly more careful and diligent in your observations and considerations.

axel.

Dear Axel,

According to your last comment, in order to simulate a steady flow at a
given velocity, I initialized the flow with a velocity command and added a
small force, to compensate for the dissipation of energy through
interaction with the walls:

velocity flow set 1.0 0.0 0.0
fix 1 flow addforce 0.01 0.0 0.0

In order to define "temperature" for the flowing medium, I used "compute
temp/com" command to exclude the kinetic energy of the center of mass of
the flowing medium:

compute hot upper temp
compute flow argon temp/com
compute cold lower temp

Moreover, for controlling the temperature of the walls I have used the
following commands:

fix hot upper nvt temp 150 150 0.01
fix cold lower nvt temp 90 90 0.01
fix nve flow nve

The temperature of the flow region decreased after I used the "compute
temp/com" from 1250 to 840 but there are still some biases.

I would really appreciate if you could help me to figure it out.

​sorry, i don't have the time to debug everybody's inputs and figure out
for them how they need to do their research.
i have outlined the problems and explained how you can approach individual
steps. if this doesn't work, you have to do what everybody has to do: turn
off features (e.g. the heated walls) one by one until your input is so
simple, that everything works as expected or you can tell what is the
problem and how to address it.

this really isn't a LAMMPS issue anymore, but a question of how to do
research.

axel.