Author Topic: NPT_Melchionna  (Read 2685 times)

0 Members and 1 Guest are viewing this topic.

Offline Dipankar Saha

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 516
  • Country: in
  • Reputation: 5
    • View Profile
NPT_Melchionna
« on: May 27, 2016, 14:27 »

Hi,

What's the role of "mask" in NPT_Melchionna simulation? I guess this is for denoting the the stress tensor components.....
If so_
why do we need to set the couplings @ [False, False, False]... in Z-direction (along the length) ??

Regards_
Dipankar

Offline Julian Schneider

  • QuantumATK Staff
  • QuantumATK Guru
  • *****
  • Posts: 163
  • Country: dk
  • Reputation: 25
    • View Profile
Re: NPT_Melchionna
« Reply #1 on: May 27, 2016, 14:47 »
Quote
What's the role of "mask" in NPT_Melchionna simulation? I guess this is for denoting the the stress tensor components.....
Via the mask you can swicth on/off the coupling to selected components of the stress tensor.

Quote
why do we need to set the couplings @ [False, False, False]... in Z-direction (along the length) ??
I suppose you refer to the "Interfacial thermal conductance" tutorial?
Here, we don't need to couple to the z-component, because we use a free surface, which can automatically relax in the surface-direction, no matter whether the cell-length changes or not.

Offline Dipankar Saha

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 516
  • Country: in
  • Reputation: 5
    • View Profile
Re: NPT_Melchionna
« Reply #2 on: May 27, 2016, 19:57 »
Okay.... !!! / Thank you Julian ....  :)

Offline Dipankar Saha

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 516
  • Country: in
  • Reputation: 5
    • View Profile
Re: NPT_Melchionna
« Reply #3 on: May 30, 2016, 11:42 »
How do you set the "pfactor" (or, the constant in the barostat diff. eqn.) ? Using Bulk modulus value, I guess. / What if I select the 'none' option @ "barostat_timescale"  (Although, the external stress is set to 1 Bar)?

[Initially, I want equilibrate  the sample at const temp., const. pressure (RT, atm.).... Later I want to see the changes in phase with the increase of temp. / Is it possible?? Perhaps, we can't set temp. grad. in NPT_Melchionna simulation.....

In that case_
is it  a viable option... to go for a no. of constant temp. simulations...,  where in each case the input sample will actually be the final struct. of the previous NPT_Melchionna simulation...??!! ]

Thanks & Regards_
Dipankar
« Last Edit: May 30, 2016, 11:51 by Dipankar Saha »

Offline Julian Schneider

  • QuantumATK Staff
  • QuantumATK Guru
  • *****
  • Posts: 163
  • Country: dk
  • Reputation: 25
    • View Profile
Re: NPT_Melchionna
« Reply #4 on: May 30, 2016, 16:03 »
Quote
How do you set the "pfactor" (or, the constant in the barostat diff. eqn.) ? Using Bulk modulus value, I guess. / What if I select the 'none' option @ "barostat_timescale"  (Although, the external stress is set to 1 Bar)?
The "pfactor"-parameter (if you are talking about the ASE-definition), corresponds to the barostat_timescale parameter in our API. If the barostat_timescale (or the bulk_modulus) is set to None, then the barostat is switched off completely, i.e. simulation is carried out in the NVT-NoseHoover ensemble, no matter what external-stress-value you specify. Note that the NPTMelcionna-barostat will be phased out from the ATK-2016-release, as it will be replaced by a more modern barostat-algorithm (Martyna-Tobias-Tuckerman-Klein, MTTK).
Quote
Initially, I want equilibrate  the sample at const temp., const. pressure (RT, atm.).... Later I want to see the changes in phase with the increase of temp. / Is it possible?? Perhaps, we can't set temp. grad. in NPT_Melchionna simulation.....
You can't set a temperature gradient in NPTMelchionna, but you will be able to do so in the new barostats in ATK-2016.
Quote
In that case_ is it  a viable option... to go for a no. of constant temp. simulations...,  where in each case the input sample will actually be the final struct. of the previous NPT_Melchionna simulation...??!!
Yes, for now you can run a series of constant temperature simulations, with increasing temperature values, e.g.
Code
# Set up a list of increasing temperatures.
temperature_range = [300.0, 400.0, 500.0, 600.0]

# Run a NPT-simulation at each temperature.
for temperature in temperature_range:
    
    initial_velocity = MaxwellBoltzmannDistribution(
        temperature=temperature*Kelvin,
        remove_center_of_mass_momentum=True
    )

    method = NPTMelchionna(
        time_step=1*femtoSecond,
        reservoir_temperature=temperature*Kelvin,
        external_stress=1*bar,
        thermostat_timescale=100*femtoSecond,
        barostat_timescale=100*femtoSecond,
        bulk_modulus=1e+06*bar,
        initial_velocity=initial_velocity,
        mask=[[True, False, False], [False, True, False], [False, False, True]]
    )

    md_trajectory = MolecularDynamics(
        bulk_configuration,
        constraints=[],
        trajectory_filename=('trajectory_%iK.nc' % temperature),
        steps=20000,
        log_interval=500,
        method=method
    )

    bulk_configuration = md_trajectory.lastImage()

Offline Dipankar Saha

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 516
  • Country: in
  • Reputation: 5
    • View Profile
Re: NPT_Melchionna
« Reply #5 on: May 30, 2016, 17:00 »
 
Thanks a lot Julian for your help...!!!  :)  [I was planning to do it in steps....manually...., but you wrote a nice script !!!  :)]
______
Of course, it will be interesting to see the new barostat-algorithm ( MTTK ) in ATK-2016..../ But, for the time being, I have to find a suitable value of the bulk modulus (as you mentioned) to use  NPTMelchionna (@ RT, atm.)..../ Correct? 

Best Regards_
Dipankar