Show Posts
|
|
Pages: [1] 2 3 ... 7
|
|
1
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / How to re-start the un-finished opt ?
|
on: May 5, 2013, 13:04
|
|
Dear Sir, I have one question about how to restart the unfinished opt.
For example, I set the relaxation "Max Force = 0.05 eV/A". In calculation process, when the force come to 0.06 eV/A, suppose some thing wrong happens at this moment, and the calculation stop here. Any method can restore "SCF and BulkConfiguration" when the force is 0.06 eV/A ? Or, we can wirte some script to store the latest opt "SCF and BulkConfiguration" ? As I know, I can just restore the initial configuration and the first SCF.
Thanks~
FangYong
|
|
|
|
|
3
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / Re: Question about nlread usage
|
on: May 3, 2013, 07:53
|
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 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
|
|
|
|
|
4
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / How to "inspect_.nc_file" ?
|
on: May 2, 2013, 16:51
|
|
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
|
|
|
|
|
5
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / How to get the un-scf electron density ?
|
on: May 2, 2013, 12:57
|
|
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
|
|
|
|
|
6
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / Re: How to use " nlread() " to read the scf only ?
|
on: May 1, 2013, 15:56
|
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, 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: 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.
|
|
|
|
|
7
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / How to use " nlread() " to read the scf only ?
|
on: May 1, 2013, 07:40
|
|
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
|
|
|
|
|
11
|
NanoLangauge / ATK / Virtual NanoLab / 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~
|
|
|
|
|
12
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / About the max_forces and max_stress in GeometryOpt.
|
on: April 14, 2013, 15:05
|
|
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~
|
|
|
|
|
13
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / One question about: the structure relax by atk_2010.8
|
on: April 14, 2013, 08:58
|
|
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)
|
|
|
|
|
14
|
NanoLangauge / ATK / Virtual NanoLab / 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~
|
|
|
|
|
15
|
NanoLangauge / ATK / Virtual NanoLab / Questions and Answers / difference version ATK get a small different result
|
on: April 13, 2013, 04:42
|
|
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)
|
|
|
|
|