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
Dear Quantumwise staff:
 Hi, i found the Fermi energy in band diagram is different for VASP and ATK. Take MoS2 for example, For VASP, the Fermi energy is near valence band (See VASP.jpg). However, for ATK. the Fermi energy locates about half of valence and conduction (see ATK.jpg). So, i want to know, how to determine Fermi energy in ATK? DOS integration from the lowest energy to Fermi energy=total electron?

2
General Questions and Answers / Warning on calculating FET
« on: June 21, 2020, 03:01 »
Dear Quantumwise staff:
 Hi,
 I want to simulate the MoS2 and WSe2 Van der Waals FET, the electrodes are p-doping. at the beginning of Equivalent Bulk calculation,  ATK shows a warning:
"Not all occupied bands were included in the diagonalization.  The eigenvalues will be re-calculated with an increased number of bands"
i want to know what causes this warning? 
Thanks

3
the script is as follow (https://docs.quantumatk.com/manual/Types/ElectronDensity/ElectronDensity.html):
***************************************
# import an electron density
path = u'/home/Electron Density.nc'
density = nlread(path, ElectronDensity)[0]

# Get the shape of the data.
ni, nj, nk = density.shape()
# Find the volume elements.
dX, dY, dZ = density.volumeElement()
length_unit = dX.unit()
# Calculate the volume of the volume element.
dV = numpy.dot(dX, numpy.cross(dY,dZ)) * length_unit**3
# Get a reference for the data of the density.
grid_data = density[:,:,:]*Units.e

# Calculate the absoute density sum.
density_abs_sum = abs(grid_data).sum()

# Calculate center of mass
Mi = sum([ i*abs(grid_data[i,:,:]).sum() for i in range(ni)])/density_abs_sum
Mj = sum([ j*abs(grid_data[:,j,:]).sum() for j in range(nj)])/density_abs_sum
Mk = sum([ k*abs(grid_data[:,:,k]).sum() for k in range(nk)])/density_abs_sum
center_of_mass = Mi*dX + Mj*dY+ Mk*dZ

# Calculate monopole
density_sum = grid_data.sum()
m0 = density_sum*dV

#calculate dipole
dens_i = sum([ (i-Mi)*grid_data[i,:,:].sum() for i in range(ni)])
dens_j = sum([ (j-Mj)*grid_data[:,j,:].sum() for j in range(nj)])
dens_k = sum([ (k-Mk)*grid_data[:,:,k].sum() for k in range(nk)])
m1 = (dX*dens_i + dY*dens_j + dZ*dens_k)*dV

# Calculate quadropoles (3 x_i *x_j-r*r delta_ij)*dens
dens_ii = sum([ (i-Mi)**2 * grid_data[i,:,:].sum() for i in range(ni)])
dens_jj = sum([ (j-Mj)**2 * grid_data[:,j,:].sum() for j in range(nj)])
dens_kk = sum([ (k-Mk)**2 * grid_data[:,:,k].sum() for k in range(nk)])
dens_ij = sum([ (i-Mi)*(j-Mj)*grid_data[i,j,:].sum()
             for i in range(ni) for j in range(nj)])
dens_ik = sum([ (i-Mi)*(k-Mk)*grid_data[i,:,k].sum()
             for i in range(ni) for k in range(nk)])
dens_jk = sum([ (j-Mj)*(k-Mk)*grid_data[:,j,k].sum()
             for j in range(nj) for k in range(nk)])

m2 = (dX.outer(dX)*dens_ii + dY.outer(dY)*dens_jj + dZ.outer(dZ)*dens_kk\
   + (dX.outer(dY)+dY.outer(dX))*dens_ij + (dX.outer(dZ)+dZ.outer(dX))*dens_ik\
   + (dY.outer(dZ)+dZ.outer(dY))*dens_jk) * dV

r2 = sum(m2)
m2 = 3*m2 - numpy.identity(3)*r2

print("center of mass (bohr)  = ", center_of_mass)

print("monopole   (e)         = ", m0)
print("dipole     (e*bohr)    = ", m1)
print("quadropole (e*bohr**2) = ", m2)
***********************************************************

4
Dear quantunwise staff:
      Here is the molecule system in the attachment,we calculate the dipole in Gaussian and ATK, respectively.
For atk(GGA-PBE,DZP):dipole     (e*bohr)    = 5.3662629780200824e-14, -7.290162499260885e-13, -2.6478867127832016e-12
For Gaussian(B3LYP,6-31g*):dipole     (debye)  9.03655361E-01, -8.41922597E-01, -1.92566377E-02

PS: The structure optimization is performed in Gaussian(B3LYP,6-31g*). Then, put the relaxed molecular configuration to atk and Gaussian for electronic structure calculation.

why such a big different?

5
General 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

6
thank you

7
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)

8
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)?

9
General 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

10
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?

11
General 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?

12
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

13
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?

14
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?

15
thank you prof.Anders Blom, it works.

i really use atk 2014.3

Pages: [1] 2 3 ... 9