Langevin Thermostat in a Dynamic Group Affecting Fluid Temperature of Other Group: A Case Study of Flow Boiling

Continuation of the previous post: Langevin Thermostat Preventing Boiling : Static vs Dynamic Group Conflicts In a Flow

Updates:

  1. Flow successfully occurs.
  2. Dynamic group applied. Temperature at inlet maintains at 86k.
  3. Compute added & modified to remove flow velocity bias, i.e Vx (so that temperature is counted for only Vy & Vz). Previously langevin was conflicting with the applied force/motion.

The paper investigates how argon flows and boils over a heated substrate (Copper) in a simulation setup with three fluid regions and a copper wall/substrate. A force drives the flow, a Langevin thermostat resets the inlet temperature (at 86K), and data is collected to study boiling.
However, maintaining a constant inlet temperature (86K) causes the liquid temperature to drop unexpectedly (contradicting the results of the paper).
I’m curious to understand the phenomenon.

Fluid Regions:

Force Region (0–10mm): A force is applied to drive the argon flow.
Reset Region (10–17mm): The fluid’s temperature is set to 86K to ensure a constant inlet temperature for the next region. The paper uses a Langevin thermostat, but applying it in a continuous flow (where atoms enter and exit) is challenging : atoms are continuously entering & exiting the region.
Study Region (17–370mm): Data is to be collected here to observe boiling and bubble formation.

Copper Wall (3 Layers):

Fixed Layer: Bottom most layer, no heating, just structural support.
Ghost Layer (or popularly known as Phantom layer): Middle layer, heated to 180K to trigger boiling.
Real Layer: Top layer in contact with the fluid, conducts heat from the ghost layer to the argon.

Simulation Method as per the paper:

The system uses a continuous flow with periodic boundaries.
Steps:
NVT run (4ns): Equilibrates the system at 86K.
NVE run (0.2ns): Heats the copper wall’s ghost layer to 180K. Applies force & langevin thermostat in the reset region for constant inlet temperature.
NVE run (4ns): Collects data on temperature and boiling.

Issue:
With the langevin thermostat in the reset group (dynamic), the liquid atoms start cooling down after reaching ~115-120K.
But reset region temperature is maintained at 86K, substrate temperature is also at 180K, flow also occurs- everything seems right. But liquid temperature doesn’t rise upto 135-140K as per the paper.

Key Part of my input script (I’ve attached both the paper and input script. The picture is symbolic):

T_inlet.dat (7.9 KB)
T_LiquidTemp_at_study_region.dat (7.9 KB)
T_phantom_ghost.dat (7.9 KB)

#Temp Calculate
compute T_liq liq temp/partial 0 1 1
fix liquid liq ave/time 1 1000 1000 c_T_liq file T_liquid.dat

compute T_study study temp/partial 0 1 1
compute_modify T_study dynamic/dof yes
fix study_region study ave/time 1 1000 1000 c_T_study file T_study.dat

compute T_inlet inlet temp/partial 0 1 1
compute_modify T_inlet dynamic/dof yes
fix inlet_reset inlet ave/time 1 1000 1000 c_T_inlet file T_inlet.dat

compute T_ghost ghost temp
fix ghost ghost ave/time 1 1000 1000 c_T_ghost file T_ghost.dat

compute T_real real temp
fix real real ave/time 1 1000 1000 c_T_real file T_real.dat

# For inlet temperature control
compute thermal_temp reset temp/partial 0 1 1
compute_modify thermal_temp dynamic/dof yes

# Initial Velocities
velocity integration create 86 12345 dist gaussian mom yes rot yes
fix freeze fixed setforce 0.0 0.0 0.0

# Equilibrate the whole system
fix spring fgm_integration spring/self 2.93
fix equilibrate integration nvt temp 86 86 0.5

run 400000
unfix equilibrate

# Heating
variable Th equal 180

fix temp_elevate ghost langevin ${Th} ${Th} 0.1 498094 # temp raise of copper substrate
fix force_flow force addforce 0.000185 0.0 0.0 # 300fN

fix cold_inlet reset langevin 86 86 0.1 122345 # cold inlet maintaining
fix_modify cold_inlet temp thermal_temp

fix NVE integration nve

dump dump1 all atom 10000 dump_heat_nvt1.equil
run 40000
unfix temp_elevate
unfix cold_inlet
unfix force_flow
unfix NVE

# Data Collection
fix temp_maintain ghost langevin ${Th} ${Th} 0.2 14756
fix force_flow2 force addforce 0.000185 0.0 0.0 # 300fN

fix cold_inlet reset langevin 86 86 0.1 122345 # cold inlet maintaining
fix_modify cold_inlet temp thermal_temp

fix NVE_final integration nve
dump dump2 all atom 10000 dump_final_nvt1.equil
run 800000

The paper uses a time step of 2fs. Your input script has a time step of 5fs, which is very brave for a condensed system (even if it is only LJ). Have you run this simulation with 2fs time steps?

No sir. I didn’t go for it yet.
I used 5fs for saving computation sir.
I thought going with 5fs will at least show me the trend. Perhaps the values might be deviated with a slight amount.
I did go for 2fs at early stages, and found that 5fs looked similar.
That’s why chose it sir.

Well, you should try it with 2fs.

1 Like

Ok sir then.