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

Pages: 1 2 3 [4] 5 6 ... 10
46
Thanks for your help~

There is an "nlinspect", but perhaps you just need to use

print total_energy.evaluate()

instead of nlprint(total_energy) to achieve what you want?

47
First, results in ".nc" file have a list form. For example, there are three "TotalEnergy" (e1,e2,e3) in you file.nc, you can use this line to read them:

e_list = nlread ( 'aa.nc', TotalEnergy)
e1=e_list[0]
e2=e_list[1]
e3=e_list[2]=e_list[-1]

here the "-1" correspond to the last one, e3. Same thing, e2=e_list[-2]

Second, if you want to read content by the object_id, and you want to get e2,
so ,use this:

e2 = nlread(filename = 'file.cn',object_id = '**')[0],
"**" is the object_id of your e2,
and the default value is "gID00*"








Dear Forum,

I am a little confused about how to properly use the nlread function.
I have done a major calculation on a quite big system (120 atoms) which took days on my computer :), but I would like to redo the DOS and transmission.
I got this example of how to load the "device configuration" from the .nc file that was saved to along the way

Code
device_configuration = nlread('file.nc', DeviceConfiguration)[-1]

I am not quite sure why the object type/name is DeviceConfiguration. Where can I see a list of suitable names usable for nlread?
I would expect it to be 'device_configuration' since that is how it got saved in the original script (the standard when doing the script out the the Script Generator), or otherwise 'Device Configuration' as shown in the the VNL window when clicking on my .nc file.
Otherwise, I can refer to the object handle eg. 'gID000', right?

Lastly I do not know what the [-1] means. I learned that nlread gets a list (array?) and so you need to specify the element that you want to use, but how can that be [-1] ? In the VNL window I have two objects, 'Device Configuration' and 'Density of States'  (the one I wish to redo). I would expect that the device configuration would be
  • and DOS would be [1]. Is this correct/wrong?


Thank you a lot!

Kaspar

48
Dear Sir,

1. the sript "inspect_vnl_file" helps me alot, now is there some kind of "inspect_nc_file"?

2. the problem in my hand is: If I want to get the "TotalEnergy" and the corresponding id_,
such as:

E0,  id0
E1,  id1
E2,  id2
....

 the tranditional way is use "nlprint". But this conmand give alot information about the total energy, However, I just want the final value and the id
so, could you show me a sript on how to get this ?

Thanks~

FangYong

49
Dear Sir,

1.
I am not familiar with the background of DFT. Could I get the un-scf electron density by ATK?
Take "electron_difference_density" for example, I guess it is come from:
pho1 = pho2(scf) - pho3(a superposition of all isolate atomic charge densities)
so, the pho3 is the un-scf electron density, is there a simple way to get this ?

2.
the specific work in my hand is: I want to get the electron density change because of one vacancy in a bulk system. I already get the electron_difference_density of the my system(with one vacancy), what to do next ?

Thanks~


FangYong

50
Thanks for your help~


There are two ways to do it.

First of all, note that the "scf" is not a separate thing from the configuration. When you have run the self-consistent loop, the scf is stored on the configuration itself. So, if you want to use the approach to read the scf from the NC file, you would do like normal,

Code: python
scf = nlread("energy.nc", BulkConfiguration)[-1]
...
bulk_configuration.setCalculator(calculator, initial_state=scf)

There is however a better way to do it in your case. Since you are looping in the same script, you can just remember the state for the next step, like so:

Code: python
vector_a = [10.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 10.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 10.0]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
elements = [Hydrogen]*2

scf = None    # NEW
for dis in (a1,a2,a3,a4):   # ai is the distance   
    fractional_coordinates = [[ 0.  ,  0.  ,  0.  ],
                                           [ 0.  ,  0.  ,  dis]]
    bulk_configuration = BulkConfiguration(
        bravais_lattice=lattice,
        elements=elements,
        fractional_coordinates=fractional_coordinates
        )

    calculator = LCAOCalculator()

    bulk_configuration.setCalculator(calculator, initial_state=scf)    # NEW
    bulk_configuration.update()
    scf = bulk_configuration    # NEW
    nlsave('energy.nc', bulk_configuration)

    total_energy = TotalEnergy(bulk_configuration)
    nlsave('energy.nc', total_energy)
    nlprint(total_energy)

Only 3 lines were modified, indicated by "NEW" above.


51
Dear Sir,
we use "nlread()" to save scf time in calculation, now I have a problem:

eg: I want to get the H-H bond length through a loop calculation , and I build a script as below:

vector_a = [10.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 10.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 10.0]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
elements = [Hydrogen]*2

for dis in (a1,a2,a3,a4):   # ai is the distance   
    fractional_coordinates = [[ 0.  ,  0.  ,  0.  ],
                                           [ 0.  ,  0.  ,  dis]]
    bulk_configuration = BulkConfiguration(
        bravais_lattice=lattice,
        elements=elements,
        fractional_coordinates=fractional_coordinates
        )

    calculator = LCAOCalculator()

    bulk_configuration.setCalculator(calculator)
    bulk_configuration.update()
    nlsave('energy.nc', bulk_configuration)

    total_energy = TotalEnergy(bulk_configuration)
    nlsave('energy.nc', total_energy)
    nlprint(total_energy)

In the above script, I hope to import the "a1-scf" as the initial scf guess, for the next  "a2-scf" calculation. Here, I just want to import the scf of a1, not the bulk_configuration of a1.
So, is there any method to change the above script to get that ?

Thanks~

FangYong

52
Dear Sir,
I find the atk-12.8.0 can help us build interface model very easily, it helps me alot, and I love it very much.
In the interface build process, the ATK will give you alot of chooses with different "atoms number" and "mean strain", I have one question about it:
what's the algorithm to get the "atoms number"--"mean strain", or some paper mentioned how to get a picture like that ?

Thanks~

53
General Questions and Answers / Re: Can not use Demo lic
« on: April 22, 2013, 02:41 »
Thanks for your reply,
I did as you said, but it still can not work.
my license file is located in C:\lic\atklic\qw_license.lic

when I click vnl, the same error message happens.


54
General Questions and Answers / Re: Can not use Demo lic
« on: April 21, 2013, 03:24 »
Dear Sir, thanks for you reply.
but I don't quite understand it. You said "It's recommended to use the "..." file locator button instead of typing in the filename of the license file". Could you say it more detail ?   Thanks~

55
General Questions and Answers / Can not use Demo lic
« on: April 20, 2013, 09:57 »
Dear Sir,
I want to use atk-12.8.2 with Demo lic (# Demo license for ATK 12.8, valid until 2013-05-16
), I did like this:
Windows system start -> QuantumWise -> ATK License Server -> ATK License Configuration,
choose  Standalone

but error happens, like the attachment shows
I wonder the reason.
Thanks~

56
Dear,

I want to get the acceptable parameters for my system, so I did a loop calculation like below:
 
for ecut/mas_force/k-points in (a1,a2,a3,a4,....):
      do calculation

the ecut and k-points are OK for me, but the max_stress or max_forces, always bothers me. Take max_stress for example, in my test calculation, the results are like this:

mas_stress(eV/Ang**3)       delta(E/eV)
0.2   -1.269
0.18   -1.269
0.15   -1.269
0.1   -1.269
0.08   -1.269
0.06   -1.269
0.05   -1.8165
0.03   -2.11
0.02   -2.11
0.015   -2.187
0.013   -2.187
0.008   -2.201
0.006   -2.201
0.002   -2.204
0.001   -2.204

the results are step-like drop, seems not convergent. The definition of stress can be found in the manual, and the default value for max_stress is 0.05.

So, my question is: could you give me some experience on how to set the max_stress, or which one is acceptable.

Thanks~


57
Dear Sir,
I have two questions:
1.
I used atk-2010.8 to optimize one system with the following file, the problem is the optimization process just optmize the coordinates of atoms, not the lattice constants.

the "optimizeGeometry" in 2010.8 is :
OptimizeGeometry(
configuration,
maximum_forces,
constraints,
trajectory_filename)


So,my question is: what commond I missed in the scripte ?


2.
In 2010.8 the OptimizeGeometry have no max_stress term, so , this optimization in this version did not consider the stress effect , right?


Thanks~

# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------

# Set up lattice
lattice = FaceCenteredCubic(5.64056*Angstrom)

# Define elements
elements = [Sodium, Chlorine]

# Define coordinates
cartesian_coordinates = [[ 0.     ,  0.     ,  0.     ],
                         [ 2.92028,  2.92028,  2.82028]]*Angstrom

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    cartesian_coordinates=cartesian_coordinates
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = GGABasis.SingleZetaPolarized

#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = SGGA.PBE

numerical_accuracy_parameters = NumericalAccuracyParameters(
    grid_mesh_cutoff=70.0*Hartree,
    k_point_sampling=(10, 10, 10),
    )

calculator = LCAOCalculator(
    basis_set=basis_set,
    exchange_correlation=exchange_correlation,
    numerical_accuracy_parameters=numerical_accuracy_parameters,
    )

bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('analysis.nc', bulk_configuration)

bulk_configuration = OptimizeGeometry(
        bulk_configuration,
        maximum_forces=0.02*eV/Ang,
        trajectory_filename=None,
        )
nlsave('analysis.nc', bulk_configuration)
nlprint(bulk_configuration)

58
General Questions and Answers / One problem in using VNL
« on: April 13, 2013, 16:50 »
Dear,
I bought atk2010_8 version, and installed in my cluster. I use the vnl to build model and analysis results through vnc.
Now I have a problem:
open vnl is OK
click the "Job", "editor" is OK
we I click the "custom", "Database", or "scripter",the vnl disappear and shows these message:

/opt/software/atk/vnl/bin/vnl: line 3: 16590 Segmentation fault      VNL_PATH=$EXEC_DIR/../.. PSEUDOPOTENTIALS_PATH=$EXEC_DIR/../../atkpython/share/pseudopotentials PYTHONHOME=$EXEC_DIR/.. PYTHONPATH= LD_LIBRARY_PATH=$EXEC_DIR/../lib $EXEC_DIR/vnl_exec $*

I wonder what's the problem is ?

Another question is : I build the model and analysis result must be done through VNC, is there any method that I can install 2010.8 to my PC (the license problem), so this would be more convenient to customers.

Or, give a temp license for each old versions like atk2012.8.

Thanks~

59
the calculation results of two version ATK

Dear,
I use atk 2010.8 (with official license) and 2012.8 (temp license)
to calculate the energy of one system, but get a small difference

version_2012: -4931.6453 eV (version 2011 get the same result)
version_2010: -4931.63 eV

what caused the difference ?
because some default setting are different ?

Thanks




# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------
# Set up lattice
vector_a = [3.55, -4.03779418951e-13, 1.2407414431e-10]*Angstrom
vector_b = [-4.03779421568e-13, 3.55, 8.05456427157e-11]*Angstrom
vector_c = [4.77081609186e-10, 3.09914276141e-10, 14.22]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
elements = [Potassium, Potassium, Iron, Iron, Iron, Iron, Selenium, Selenium, Selenium, Selenium]

# Define coordinates
fractional_coordinates = [[  1.14468617e-11,   8.78736620e-12,  -9.23438392e-04],
                          [  5.00000000e-01,   5.00000000e-01,   4.99103142e-01],
                          [  9.41847484e-11,   5.00000000e-01,   2.49187516e-01],
                          [  5.00000000e-01,   9.56876004e-11,   2.49187512e-01],
                          [  5.28106589e-10,   4.99999999e-01,   7.48865737e-01],
                          [  4.99999999e-01,   4.12406619e-10,   7.48865716e-01],
                          [ -4.40822247e-11,  -4.24698793e-11,   3.67582854e-01],
                          [  5.00000000e-01,   5.00000000e-01,   8.67292159e-01],
                          [ -1.73557970e-10,  -1.40654216e-10,   6.30480239e-01],
                          [  5.00000000e-01,   5.00000000e-01,   1.30763705e-01]]

# Set up configuration
bulk_configuration = BulkConfiguration(
            bravais_lattice=lattice,
            elements=elements,
            fractional_coordinates=fractional_coordinates
            )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
            LDABasis.Potassium_SingleZetaPolarized,
            LDABasis.Iron_SingleZetaPolarized,
            LDABasis.Selenium_SingleZetaPolarized,
            ]
ex = LDA.PW

numerical_accuracy_parameters = NumericalAccuracyParameters(
            grid_mesh_cutoff=50.0*Hartree,
            k_point_sampling=(9, 9, 3),
            )

calculator = LCAOCalculator(
            basis_set=basis_set,
            exchange_correlation = ex,
            numerical_accuracy_parameters=numerical_accuracy_parameters,
            )

bulk_configuration.setCalculator(calculator)
# bulk_configuration.update()



# -------------------------------------------------------------
# Total energy
# -------------------------------------------------------------

total_energy = TotalEnergy(bulk_configuration)
nlsave('2010.nc', total_energy)
nlprint(total_energy)





# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------
# Set up lattice
vector_a = [3.55, -4.03779418951e-13, 1.2407414431e-10]*Angstrom
vector_b = [-4.03779421568e-13, 3.55, 8.05456427157e-11]*Angstrom
vector_c = [4.77081609186e-10, 3.09914276141e-10, 14.22]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
elements = [Potassium, Potassium, Iron, Iron, Iron, Iron, Selenium, Selenium, Selenium, Selenium]

# Define coordinates
fractional_coordinates = [[  1.14468617e-11,   8.78736620e-12,  -9.23438392e-04],
                          [  5.00000000e-01,   5.00000000e-01,   4.99103142e-01],
                          [  9.41847484e-11,   5.00000000e-01,   2.49187516e-01],
                          [  5.00000000e-01,   9.56876004e-11,   2.49187512e-01],
                          [  5.28106589e-10,   4.99999999e-01,   7.48865737e-01],
                          [  4.99999999e-01,   4.12406619e-10,   7.48865716e-01],
                          [ -4.40822247e-11,  -4.24698793e-11,   3.67582854e-01],
                          [  5.00000000e-01,   5.00000000e-01,   8.67292159e-01],
                          [ -1.73557970e-10,  -1.40654216e-10,   6.30480239e-01],
                          [  5.00000000e-01,   5.00000000e-01,   1.30763705e-01]]

# Set up configuration
bulk_configuration = BulkConfiguration(
            bravais_lattice=lattice,
            elements=elements,
            fractional_coordinates=fractional_coordinates
            )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
            LDABasis.Potassium_SingleZetaPolarized,
            LDABasis.Iron_SingleZetaPolarized,
            LDABasis.Selenium_SingleZetaPolarized,
            ]
ex = LDA.PW

numerical_accuracy_parameters = NumericalAccuracyParameters(
            grid_mesh_cutoff=50.0*Hartree,
            k_point_sampling=(9, 9, 3),
            )

calculator = LCAOCalculator(
            basis_set=basis_set,
            exchange_correlation = ex,
            numerical_accuracy_parameters=numerical_accuracy_parameters,
            )

bulk_configuration.setCalculator(calculator)
bulk_configuration.update()



# -------------------------------------------------------------
# Total energy
# -------------------------------------------------------------

total_energy = TotalEnergy(bulk_configuration)
nlsave('2012.nc', total_energy)
nlprint(total_energy)

60
Dear,
I have posted one question about the cutoff test with gga before:
http://quantumwise.com/forum/index.php?topic=2110.0
and get a good answer, I increased the cutoff up to 1500 Ry step by step, it still can't convergent.
I thought it might be the reason of the system I used (KFeSe),
 I try the gga with other material, such as NaCl, to test the cutoff
the samething happens, the cutoff set is hard to convergence, even the value is up to 500Ry.

However, this won't happen to LDA (it convergent about ~60 Ry)

So, my question is: what's happens with the cutoff test with GGA ?

Thanks~

Pages: 1 2 3 [4] 5 6 ... 10