Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - kaypu

Pages: [1] 2 3 ... 9
1
Questions and Answers / DFT+MD with electric field
« on: May 15, 2019, 11:34 »
Dear QuantumWise staffs:
Using a 'post-step-hook' hook function,  as shown in https://forum.quantumatk.com/index.php?topic=4696.msg20375#msg20375,  the corresponding script as follows:
*********************************************************************
charges = PartialCharges(bulk_configuration).evaluate()
field = [0.01, 0.0, 0.0]*Volt/Ang
class ElectricFieldHook(object):
   def __init__(self, charges, electric_field):
      # Store the charges and the electric field.
      charges = charges.reshape(-1, 1)
      field = electric_field.reshape(1, 3)
      self.efield_forces = (charges*field).convertTo(eV/Ang)

   def __call__(self, step, time, configuration, forces, stress):
        # Add the electric field forces to the forces vector.
      forces += self.efield_forces

electric_field_hook = ElectricFieldHook(
    charges=partial_charges,
    electric_field=field
)

# -------------------------------------------------------------
# Molecular Dynamics
# -------------------------------------------------------------

initial_velocity = None

method = NVTBerendsen(
    time_step=1*femtoSecond,
    reservoir_temperature=300*Kelvin,
    thermostat_timescale=100*femtoSecond,
    initial_velocity=initial_velocity,
    heating_rate=0*Kelvin/picoSecond,
)

rigid_indices_0 = [203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
                   213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
                   223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
                   233, 234, 235, 236, 237, 238, 239, 240, 241, 242]
rigid_indices_1 = [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,
                   13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
                   26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
                   39]

constraints = [RigidBody(rigid_indices_0),
               RigidBody(rigid_indices_1)]

md_trajectory = MolecularDynamics(
    bulk_configuration,
    constraints=constraints,
    trajectory_filename='trajectory.nc',
    steps=200,
    log_interval=1,
    post_step_hook=electric_field_hook,
    method=method
)

bulk_configuration = md_trajectory.lastImage()
nlsave('Device-AGNR-Tran1-MDopt.nc', md_trajectory)
*****************************************************************************
it doesn't work,  the error message is "NL.ComputerScienceUtilities.Exceptions.NLTypeError: The LCAOCalculator does not
support calculation of PartialCharges."
how to deal with it? Thanks

2
Questions and Answers / Re: Question on Transmission Paths
« on: October 10, 2018, 08:12 »
thank you

3
Questions and Answers / Re: Question on Transmission Paths
« on: October 10, 2018, 02:19 »
Thank you for the reply
Could you offer us a Script file that could devide the total local current into two parts (σ and π local current)

4
Questions and Answers / Re: Question on Transmission Paths
« on: October 9, 2018, 11:13 »
Thank you Petr Khomyakov
Maybe I didn't make it clear. In the paper, the local current (transmission paths) can be devided into two parts, σ and π components (as shown in the attachment). In ATK, as far as i know, it only calculated the total local current(transmission paths). how could i devide the total local current into two parts (σ and π local current)?

5
Questions and Answers / Question on Transmission Paths
« on: October 9, 2018, 04:34 »
Dear QuantumWise staff:
I have read the paper exploring local currents in molecular juctions. http://www.nature.com/nchem/journal/v2/n3/pdf/nchem.546.pdf

As the author said, the local currents could divide into sigma and pi systems, how could i do the same thing in ATK?

Thanks

6
When you do the calculations of  force constants and dynamic matrix, you can fix the atoms of substrate. In such case, only the atoms of adsorbate molecule will be made by small displacement to calculate the vibration frequencies.
see:
http://docs.quantumwise.com/manuals/Types/DynamicalMatrix/DynamicalMatrix.html#dynamicalmatrix-c

constraints(),
The list of constrained atoms.

Thank you zh, here is another question, the ATK does not work on constraints(),
***************************************************
+
  File "phonon.py", line 219
    constraints(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
SyntaxError: non-keyword arg after keyword arg
  File "phonon.py", line 219
    constraints(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
SyntaxError: non-keyword arg after keyword arg
  File "C20-NO-phonon.py", line 219
    constraints(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
SyntaxError: non-keyword arg after keyword arg
  File "C20-NO-phonon.py", line 219
    constraints(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
SyntaxError: non-keyword arg after keyword arg
  File "C20-NO-phonon.py", line 219
    constraints(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
SyntaxError: non-keyword arg after keyword arg
  File "C20-NO-phonon.py", line 219
    constraints(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
SyntaxError: non-keyword arg after keyword arg
  File "C20-NO-phonon.py", line 219
    constraints(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
SyntaxError: non-keyword arg after keyword arg

***************************************************
i use in ATK 2014.3, how to solve this problem?

7
Questions and Answers / VibrationalMode of molecule
« on: March 8, 2017, 14:23 »
Dear QuantumWise staff:

     The ATK can do VibrationalMode and PhononDensityofState of an isolate molecule,  whether the energy in phonon density of state corresponds to the vibration frequencies of the molecule (plus hbar)? Or, the vibrationalMode is the vibration frequencies of molecule?

8
Assume that the contribution from phonons of substrates can be cancelled before and after the gas adsorption.
1. Calculate the vibration frequencies of an isolated gas molecule (i.e., the adsorbate);
2. Calculate the vibration frequencies only for the atoms belonging to the adsorbed molecules;
Following the formula in the following webpage to calculate the enthalpy for the adsorbate molecules before and after adsorption:
https://wiki.fysik.dtu.dk/ase/ase/thermochemistry/thermochemistry.html
Thank you zh, another question,
How to "Calculate the vibration frequencies only for the atoms belonging to the adsorbed molecules" Can the ATK do ProjectionList on selected atom?
BTW, i use ATK2014.3

9
Dear QuantumWise staff:
      In the process of gas adsorption, A stands for pristine adsorbate (such as graphene), B is gas molecule (for example CO), and C is the adsorbate with an absorbed gas molecule (graphene+CO). the adsorption process can be represent as A+B=C, the adsorption energy is defined as: Eads=EC-EA-EB. We can calculate the Total energy of A, B, and C respectively by ATK, and get adsorption energy. how to calculate enthalpy in the adsorption process by ATK?

10
Dear QuantumWise staff:

    How to set spin multiplicity in ATK? For example, the spin state of O2 molecule is triplet, using Dmol3 or Gaussian, we can use spin unrestricted and the mulitiplicity is chosen Triplet. Now, for ATK, how to set?

11
thank you prof.Anders Blom, it works.

i really use atk 2014.3

12
thank you prof. Umberto Martinez, the tutorial only contains how to calculate blochstate at one k-point. however, i want to get the electron density for a specific band, it means the summation of blochstate from G-Z.  how to modify the script?

13
Dear Quantumwise staff:

according to the page from http://quantumwise.com/forum/index.php?topic=2203.msg10537#msg10537
i try to do it using atk 14.3, but something wrong with it. the script as follows:
**********************************************
from NanoLanguage import *
import NLEngine

def makeGridValues(datagrid, cell, origin, unit):

    n0, n1, n2 = datagrid.shape
    gA, gB, gC = cell
    u0 = NLEngine.Cartesian3D(gA[0],gA[1],gA[2])
    u1 = NLEngine.Cartesian3D(gB[0],gB[1],gB[2])
    u2 = NLEngine.Cartesian3D(gC[0],gC[1],gC[2])
    cell_origin = NLEngine.Cartesian3D(origin[0],origin[1],origin[2])

    grid_descriptor = NLEngine.GridDescriptor(n0,n1,n2,
                                              NLEngine.UnitCell(u0,u1,u2,cell_origin))
    grid3d = NLEngine.RealGrid3D(grid_descriptor,
                                 NLEngine.doubleSequenceToRealVector(datagrid.flatten()),True)

    return GridValues(grid3d,unit)

bulk_configuration = nlread("C:\Users\kaypu\Desktop/zigzag12-band.nc", BulkConfiguration)[0]
conf = nlread("C:\Users\kaypu\Desktop/zigzag12-band.nc", BulkConfiguration, read_state=False)[0]

dm = bulk_configuration.calculator()._densityMatrixCalculator()
number_of_electrons = int(dm.fermiDistribution().numberOfElectrons())

LUMO = number_of_electrons/2
LLUMO = LUMO+1

# Which state to compute?
spin = Spin.Up
state = LUMO
filename = "bloch_z12_LUMO_up.nc"

# Number of points to sample from G to Z
Nk = 100

density = None
for kz in numpy.linspace(0.2,0.5,Nk):
    b = BlochState(bulk_configuration, quantum_number=state, k_point=[0,0,kz], spin=spin)
    psi = b.toArray()
    if density == None:
        density = (psi*psi.conj()).real
    else:
        density += (psi*psi.conj()).real

cell = conf.bravaisLattice().primitiveVectors().inUnitsOf(Bohr)
origin = conf.bravaisLattice().origin().inUnitsOf(Bohr)
grid = makeGridValues(density,cell,origin,unit = eV/eV)

nlsave(filename, grid)
nlsave(filename, conf)
******************************************************
the wrong message shows as follows:

Traceback (most recent call last):
  File "c:\users\kaypu\appdata\local\temp\1676064135181985.py", line 52, in <module>
    grid = makeGridValues(density,cell,origin,unit = eV/eV)
  File "c:\users\kaypu\appdata\local\temp\1676064135181985.py", line 12, in makeGridValues
    u0 = NLEngine.Cartesian3D(gA[0],gA[1],gA[2])
AttributeError: 'module' object has no attribute 'Cartesian3D'

what's wrong with it, i use 2014.3

14
Dear QuantumWise staff

Following your advice(http://quantumwise.com/forum/index.php?topic=3385.0), I increase the scattering region and recalculate the s-PDOS. The negative s-PDOS is gone. thank you

in the attachment, there is a dip in the Fermi energy, is that QI or numerical artifact?
near -1.8eV, is there Fano resonance? how to explain it?

thank you

15
Questions and Answers / Question on negative s-PDOS
« on: May 4, 2015, 08:57 »
Dear QuantumWise staff:

In the attachment, the device is composed of carbon nanotube(m=n=4) and anthracene (certral molecule). all the device has been optmized using LBFGS(z vetor is not fixed).The corresponding script is also in the attachment. The self-energy is chosen recursionself energy to avoid negative transmission appearing. Integral lower bound is set to 4.0 hartree to  eliminate charge missing problem.

but there are still some problem...

in the s-PDOS.jpg, near -1 eV, the PDOS of s state is negative, is that right? could  you help me to figure out this problem?

                                             Thanks

Pages: [1] 2 3 ... 9