-
Notifications
You must be signed in to change notification settings - Fork 1
Input File for creation of Gaussian Input Files
Input file is very much similar to Gaussian input file, the only difference is the addition of the needed keywords and blocks with information to be read by Python.
Running the file
From The command line
$ python -u "/Users/petru/Documents/filename.py" "create_input" "absolute/path/to/file"
Or from Python itself
Entering into Python:
$ python
When in Python, type the following:
>>>import numpy as np
>>>import donostia_girona as dg
>>>path = "path/to/your/file"
>>>read_input_file(path)
To exit Python type:
>>>exit()
(But, it is not yet implemented as a library.)
More detailed information on how to run the script can be found in the following section Installing of Python and Usage of the Code
Example of Input File
keywords: gen_e_field_direction(0, 0, 1, -0.0025, 0.0025, 0.00005, cartesian, step) update_old_chk(n-1) basis_set(origin) read_geom() new_kw
zip((cphf(grid=sg1grid), delete), (sg1grid, 350974, fine, 750974, superfine, ultrafine))
***kw_e_field_calc***
#P B3LYP
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=check density=current ChkBasis guess=(read) IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(Conver=11,MaxCycles=300) Integral(Grid=sg1grid,Acc2E=14)
IOp(3/14=-6) polar cphf(grid=sg1grid)
***kw_e_field_calc***
***kw_basis_set***
B N Li H 0
6-31+G(d)
****
***kw_basis_set***
***start_gaussian_file***
%nproc=8
%mem=24Gb
%oldchk=
%chk=lib_bnnt-3_LC-BLYP.chk
#P B3LYP/gen
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=nocrowd density=current IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(XQC,Conver=11,MaxCycles=300) Integral(Grid=sg1grid,Acc2E=14)
IOp(3/33=5) polar cphf(grid=sg1grid)
Performing B3LYP calculation and saving the results
0 2
@/Users/petru/Documents/geometry.txt
After the "start_gaussian_file" line, the structure is identical to the gaussian File
All files will be created in the folder where file is situated. So for each input file, a new folder needs to be created.
An example of the file is presented above.
There are 3 main parts of the file
- Keywords
- Additional input for the keywords
- Usual Gaussian input file (with minor changes which are related to the keywords introduced in section 1)
The file starts without blank lines.
After the keywords:
string. We write all the needed keywords in the following format keywords: keyword1(option1=(), option2=()), keyword2(option1=(), option2=(), ...)
Keywords can be specified in multiple lines. The keyword section ends with a blank line.
The keywords can be separated by spaces(" "), or comma and a space (", "), or a come (","). The list of all available keywords is provided in a section further.
Some keywords might require using additional input data. For example, it is possible to specify a different set of keywords for the files which have electric field. This is done using the following structure:
***kw_e_field_calc***
new_keyword_line_1
new_keyword_line_2
***kw_e_field_calc***
The block starts with a specific word, for example for electric fields it is kw_e_field_calc
. And enclosed in this block, the new input is specified. If any keyword requires additional info, it will be specified in the description of this keyword. Also, do not forget to add the new_kw
keyword, if new Gaussian keywords are being specified.
After the first two sections are completed. We need to write ***start_gaussian_file***
, and the structure of the file is identical to the one which is to be submitted to Gaussian.
Important Things to keep in mind/Differences from the format of a Gaussian input file
-
The keywords specified in the Gaussian Section will be used for the file with (0, 0, 0) electric field. If it is specified by keywords at the start of the file, a different set of gaussian keywords can be specified.
-
If it is desired to use old checkpoint files for files with electric field, but to not use checkpoint file for the file with 0 field, then we use the line
%oldchk=
to reserve this line for writing the oldchk files. This line will be deleted for the files which do not use an oldchk file. -
If the
read_geom
keyword is specified, than instead of writing the Geometry Coordinates we specify the absolute path to the geometry coordinates in the following format@absolute/path/to/geometry
-
Name of all resulting files will derive from the name of input file.
-
When writing Gaussian keywords, it is important to always write the method in the first line, and all other keywords on next lines. Otherwise there might be errors.
Keywords will be specified at the beginning of the file after the "keywords: " string. Keywords will be indicated in the following format keyword(option1, option2, ...)
In the following table is a general description of the keywords. A detailed description will be given after the table.
Keyword Name | Options | General Description |
---|---|---|
gen_e_field_direction | c1, c2, c3, start, finish, step type_coordinates, type_space |
Use of all parameters is mandatory c1, c2, c3 - Coordinates of the direction start, finish, step - Specifying a range for electric field. Check detailed description to see how to specify range for each type of space. type_coordinates - Type in which coordinates c1, c2, c3 are given Possible options cartesian, spherical, cylindrical type_space - Specifying how the points in the given range will be generated Possible options are linear, step, log |
new_kw | None | This will tell the the program to look for new keywords, for the cases when some methods require change of keywords for some files. (Ex. gen_e_field_direction) For each method the needed keywords will be specified in a separate block (see detailed description). |
update_old_chk | n-1, zero, file_name | This keyword will update old checkpoint files in all created files. n-1 - Files will be referencing the file which has the previous values of electric field. For example, value (-5, 0, 0) will be referencing (-4, 0, 0), which will be referencing (-3, 0, 0) and so on until it reaches (0, 0, 0) value. oldchk file for the file without electric field will not be updated. zero - All files will be referencing file with (0,0,0) electric field |
basis_set | origin, all, file_name | This keyword will introduce the desired basis set in the input files. It will automatically add "/gen" to the first line of keywords if this option has not been specified by the user. origin - This keyword will add basis set only to file with (0, 0, 0) electric field. It can be used together with _ update_old_chk_ in order to be reading the basis set from other files. all - This keyword will add basis set to all files file_name - This keyword will add basis set to the file whose name is specified. The full name of the file needs to be specified. This is for the case when we want to add basis set for a certain file, or when previous options give an error. |
change_kw | (word_to_change, *list_of_words) (word_to_delete, delete) |
This keyword will change a keyword in the input file, with a word from the list of words. A new folder with the new files will be created. An arbitrary number of changes can be added Using delete as word to change, will delete the desired keyword from the list of keywords. The keywords need to be identical to what is inside the Gaussian File |
read_geom | None | This keyword will tell the program to look for the geometry at the location specified after the "@" sign. Full path for the geometry is to be provided. The geometry will not be added to the files where there are Gaussian keywords which do not allow for presence of a geometry |
zip() | ((original_kw0, delete), (original_kw1, replacement_kw1, replacement_kw2, ...), (original_kw2, replacement_kw1, replacement_kw2, ...), ... ) | This keyword will tell the program, to find the Gaussian keywords specified as options (original_kw1, original_kw2, ... ), and it will replace them iteratively with replacement_kw. This function will make all possible combinations of keywords. Attention Use first the keywords that you desire to delete, and then all other replacement options. |
automatically_update_kw | None | This keyword will automatically check for the presence for some keywords that are required by some methods, and it will add them if they are not present. Also, it is checking for some cases when without some specific keyword the Gaussian crashes. More detailed description is provided in the next paragraph. |
General Information About The Code
The program will automatically check for the presence of consecutive empty lines. If in the file will be detected two or more consecutive lines, they will be deleted and only one empty line will remain.
gen_e_field_direction
This keyword will produce Gaussian input files which will have varying magnitude of electric field in a specified direction.
c1, c2, c3 -
In cartesian coordinate system, x, y, z. These coordinates will specify a direction for electric field which will be the same as direction for the vector pointing from origin to c1, c2, c3.
In spherical coordinate system, r,
In cylindrical coordinate system, r,
start, finish, step -
This shows in which range we vary module of electric field. For example, we can specify an electric field on (1, 1, 0) direction, and interval being a step interval [-5, 5, 1], it will generate values where
For linear, the step options, specifies the number of points on the given interval
For step, the step option specifies the euclidean distance between point n, and n-1. In other words, all the points in this space, will be separated by a distance equal to step
For log, this points specify starting-point, number of points, base. So, for example the input [0.0001, 10, 2], will generate the following points [-0.1024, -0.0512, -0.0256, -0.0128, -0.064, -0.0032, -0.0016, -0.0008, -0.0004, -0.0002, -0.0001, 0, 0.0001, 0.0002, 0.0004, ... , 0.0256, 0.0512, 0.1024]
type_space -
Specifies the way in which points for the module of electric field are generated.
linear - This will generate a space which will have n points equally spaced between start and finish. For example, [-5, 5, 20], will generate values of [-5, -4.5, -4, -3.5 ..., 4.5, 5].
step - This will generate a space which will have all points separated by a specified amount, from start to finish. For example, [-5, 5, 1], will generate values of [-5, -4, -3, ..., 2, 3, 4, 5]. All points are separated by the value of 1.
log - This will generate a log10 space which will have all points separated logarithmically. For example, the sequence [10, 10000, 4], will generate values of [10, 100, 1000, 10000].
Attention, this type of space has not yet been verified for possible errors and bugs!
In case when different Gaussian keywords are wanted with the files generated by this keyword, these new set of Gaussian keywords will be indicated in a separate block, before the section ***start_gaussian_file***
Example of the block:
***kw_e_field_calc***
#M062X
new_kw_line_1
new_kw_line_2
...
new_kw_line_n
***kw_e_field_calc***
Obligatory, a new_kw
keyword needs to be added to the start of the file, in order for the program to be able to read the new set of Gaussian keywords.
basis_set
origin - This option will add basis set only to file with (0, 0, 0) electric field.
all - This option will add basis set for all files.
file_name This option will add basis set for the file whose name is specified.
Basis set to be introduced in the files needs to be specified in a separate block, before the ***start_gaussian_file
section.
***kw_basis_set***
Li N 0
STO-3G
****
C 0
STO-6G
****
change_kw
The new created folders will be in the folder where the initial folder with file is.
zip
Options: ((original_kw0, delete), (original_kw1, replacement_kw1, replacement_kw2, ...), (original_kw2, replacement_kw1, replacement_kw2, ...), ... ).
This keyword will make all the possible combinations between original keywords, and their replacements. Attention Use first the keywords that you desire to delete, and then all other replacement options. For example, the option, zip((cphf(grid=sg1grid), delete), (sg1grid, fine, superfine), (XQC, QC)), will generate the files with the following set of keyword:
Generated Keywords
(cphf(grid=sg1grid), sg1grid, XQC),
(cphf(grid=sg1grid), sg1grid, QC),
(cphf(grid=fine), fine, XQC),
(cphf(grid=fine), fine, QC),
(cphf(grid=ultrafine), ultrafine, XQC),
(cphf(grid=ultrafine), ultrafine, QC),
(..., sg1grid, XQC),
(..., sg1grid, QC),
(..., fine, XQC),
(..., fine, QC),
(..., ultrafine, XQC),
(..., ultrafine, QC)
Where we have "...", the keyword was deleted. So, in total we have 2*3*2 = 12 combination of keywords, which will be in 12 different folders. The folders will be created at the same location where the folder containing the input file is.
This keyword, will be changing the occurrence of the desired keyword in all specified sets of keywords, and in all lines, not only once.
automatically_update_kw
This keyword will do the automatic check of keywords, and if some keywords are missing, it will add them automatically.
- It will automatically check and add
IOp(3/14=-6)
for the functions which imply electric field calculation. - For the files which read oldchk files, it will automatically check for and add
ChkBasis, geom=check, guess=(read), GFInput
- It will add
NoXCTest
kw for the case where it is needed. If we don't have the keyword CPHF(grid=) for the cases where the grid is grid=(fine,sg1grid) we have to add the string (NoXCTest). So, the keyword Integral(Grid=sg1grid,Acc2E=14) should look like Integral(Grid=sg1grid,NoXCTest,Acc2E=14 and the same for grid=fine. Otherwise the Gaussian is crashing.
A few examples are presented in the folder Examples/Create_Input_Files/ . All of them are presented with the input file for the code, and all the resulting files and folders.
Example 1. Generating files. Cartesian Coordinates. Oldchk n-1
Example 1
keywords: gen_e_field_direction(0, 0, 1, -0.0025, 0.0025, 0.0005, cartesian, step) update_old_chk(n-1) basis_set(origin) read_geom() new_kw
automatically_update_kw
***kw_e_field_calc***
#P M062X
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=check density=current ChkBasis guess=(read) IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/14=-6) polar
***kw_e_field_calc***
***kw_basis_set***
B N Li H 0
6-31+G(d)
****
***kw_basis_set***
***start_gaussian_file***
%nproc=8
%mem=24Gb
%oldchk=
%chk=M062X_101.chk
#P M062X/gen
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=nocrowd density=current IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(XQC,Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/33=5) polar
Title Example1
Cartesian Coordinates. Z direction. Referencing all chk to n-1
0 2
@/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example1/geometry.txt
Input File: lib_bnnt-3_M062X_Example_1.txt
Output Files: Everything else in the folder.
Running the file from terminal:
$ python "/Users/petrumilev/Documents/projects_python/project_girona_donostia/single_file_run.py" "create_input" "/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example5/lib_bnnt-3_M062X_Example_5.txt"
In this example we generate Gaussian input files with electric field ranging from -0.0025 to 0.0025, with a step of 0.005. The electric field is pointing in the Z direction. In total 11 input files are created. The reader can observe that keywords for the 0 field file and for all other files are different.
update_old_chk(n-1) keyword tells the program to use for oldchk file, the file with the previous value of the electric field. I.e., the file with 0.0005, will be taking oldchk from 0.0000; 0.0010, will be taking oldchk from 0.0005; -0.0010, will be taking oldchk from -0.0005, and so on. The file with the zero field is not using the oldchk file, because in the input file, at line 22 %oldchk=
we left it blank. If we wrote there any file name, then the file with 0 electric field would be using that name for the oldchk.
basis_set(origin) tells the program that we will specify the basis set for the file with 0 electric field. (and for all other files the basis set will be read from the oldchk)
new_kw keyword tells the program that we want to use new keyword for the files with electric field different from 0.
read_geom() keyword tell the program to read the geometry from the specified path at @
. Because we used update_old_chk(n-1)
keyword, the program will not write the geometry to all other files except the origin (0, 0, 0), and will update the keywords for all other files to be able to read the geometry.
automatically_update_kw does the automatic update of the Gaussian keywords. It will check that there are special keywords which are required by special methods, and that keywords needed to read the geometry are introduced.
The user in encouraged to check the files in the folder and see the differences between the file with 0 field, and all other files.
Example 2. Using spherical coordinates.
Example 2
keywords: gen_e_field_direction(0, 0, 90, -0.0025, 0.0025, 11, spherical, linear) update_old_chk(n-1) basis_set(origin) read_geom() new_kw
automatically_update_kw
***kw_e_field_calc***
#P M062X
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=check density=current ChkBasis guess=(read) IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/14=-6) polar
***kw_e_field_calc***
***kw_basis_set***
B N Li H 0
6-31+G(d)
****
***kw_basis_set***
***start_gaussian_file***
%nproc=8
%mem=24Gb
%oldchk=
%chk=M062X_101.chk
#P M062X/gen
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=nocrowd density=current IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(XQC,Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/33=5) polar
Title Example2
Spherical Coordinates. Z direction. Referencing all chk to n-1
0 2
@/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example2/geometry.txt
Input file: lib_bnnt-3_M062X_Example_2.txt
This example is identical to Example 1, but here we use the spherical coordinates. The coordinates are specified as
(r, theta, phi) which denote radial distance, inclination (or elevation), and azimuth, respectively.
θ the angle measured away from the +Z axis
φ has a range of 360°
θ has a range of 180°, running from 0° to 180°
Here we used (0, 0, 90). The value of r is not important, because it will be rescaled later to have values which we specified for the electric field.
Also, when generating data, gen_e_field_direction(0, 0, 1, -0.0025, 0.0025, 11, cartesian, linear)
, was used. Compared to example 1, where we used step 0.0005, here we will generate 11 equally spaced points on the interval, and the reader can see that the files will be identical to the ones generated in Example 1.
To understand the meaning of other keywords, please read Example1.
Example 3. Polar Coordinates. Not using old checkpoint files.
Example 3
keywords: gen_e_field_direction(0, 0, 1, -0.0025, 0.0025, 11, cylindrical, linear) basis_set(origin) read_geom() new_kw
automatically_update_kw
***kw_e_field_calc***
#P M062X
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=check density=current ChkBasis guess=(read) IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/14=-6) polar
***kw_e_field_calc***
***kw_basis_set***
B N Li H 0
6-31+G(d)
****
***kw_basis_set***
***start_gaussian_file***
%nproc=8
%mem=24Gb
%chk=M062X_101.chk
#P M062X/gen
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=nocrowd density=current IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(XQC,Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/33=5) polar
Title Example3
Cylindrical Coordinates Coordinates. Z direction. Not using fchk
0 2
@/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example3/geometry.txt
Input File: lib_bnnt-3_M062X_Example_3.txt
This example is similar to Example 1 and 2, but here we use cylindrical coordinates. The coordinates are specified as (ρ, φ, z) and are defined as:
The radial distance ρ is the Euclidean distance from the z-axis to the point P.
The azimuth φ is the angle between the reference direction on the chosen plane and the line from the origin to the projection of P on the plane.
The axial coordinate or height z is the signed distance from the chosen plane to the point P.
Used coordinates are (0, 0, 1). The value of h here is not important because it will be rescaled later to match the specified e-fields values. Also the reader can see that we are not using checkpoints in this example. To understand the usage of other keywords, please read Example1.
Example 4 Referencing all oldchk to 0 file.
Example 4
keywords: gen_e_field_direction(0, 1, 2, -0.0025, 0.0025, 7, cartesian, linear) update_old_chk(zero) basis_set(all) read_geom() new_kw
automatically_update_kw
***kw_e_field_calc***
#P M062X
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=check density=current ChkBasis guess=(read) IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/14=-6) polar
***kw_e_field_calc***
***kw_basis_set***
B N Li H 0
6-31+G(d)
****
***kw_basis_set***
***start_gaussian_file***
%nproc=8
%mem=24Gb
%oldchk=
%chk=M062X_101.chk
#P M062X/gen
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=nocrowd density=current IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(XQC,Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/33=5) polar
Title Example4
Cartesian Coordinates. Specified direction. Referencing all zero
Keywords Automatically Updated
0 2
@/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example4/geometry.txt
Input File: lib_bnnt-3_M062X_Example_4.txt
update_old_chk(zero) - All files, except the 0 field, are reading oldchk file from the file with 0 field.
basis_set(all) - Basis set is added to all files.
automatically_update_kw - This keyword is updating Gaussian keywords to the files. The reader is encouraged to explore the lib_bnnt-3_M062X_Example_4_WARNINGS_log.txt
file, in order to check which keywords were added.
Also, in this example is represented generation of files in an arbitrary direction.
Example 5. Doing an asymmetric range. Important usage of Automatically_Update_Keywords.
Example 5
keywords: gen_e_field_direction(0, 0, 1, 0.0005, 0.0025, 5, cartesian, linear) update_old_chk(n-1) basis_set(lib_bnnt-3_M062X_Example_5_Z+0.000500.com) read_geom()
automatically_update_kw
***kw_basis_set***
B N Li H 0
6-31+G(d)
****
***kw_basis_set***
***start_gaussian_file***
%nproc=8
%mem=24Gb
%oldchk=
%chk=M062X_101.chk
#P M062X
Symmetry(PG=C4v,SaveOrientation,axis=z)
density=current IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/14=-6) polar
Title Example5
Cartesian Coordinates. Z direction. Assymetrical Range. Referencing n-1
Keywords Automatically Updated. Using only keywords in Gaussian Section. No new_kw keyword.
Usage of Automatically_update_keywords is vital here.
0 2
@/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example5/geometry.txt
Input file: lib_bnnt-3_M062X_Example_5.txt
This example is used to produce an asymmetric range. All the keywords are specified only in the Gaussian part, therefore we do not need the new_kw
keyword. Also, it is important to not use the geom=check
or similar keywords, because otherwise the geometry will not be introduced. Because we use update_old_chk(n-1)
we need specific Gaussian keywords to be reading the oldchk file, therefore, it is vital to use here the automatically_update_kw
, because otherwise Gaussian will give error.
Unfortunately, for this case we need to indicate manually the name of the file where we add basis set, basis_set(lib_bnnt-3_M062X_Example_5_Z+0.000500.com)
. Or we could add basis set to all files.
Example 6. Using zip keyword
Example 6
keywords: gen_e_field_direction(0, 0, 1, -0.0025, 0.0025, 0.0005, cartesian, step) update_old_chk(n-1) basis_set(origin) read_geom() new_kw
automatically_update_kw
zip((density=current, delete), (XQC, QC))
***kw_e_field_calc***
#P M062X
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=check density=current ChkBasis guess=(read) IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/14=-6) polar
***kw_e_field_calc***
***kw_basis_set***
B N Li H 0
6-31+G(d)
****
***kw_basis_set***
***start_gaussian_file***
%nproc=8
%mem=24Gb
%oldchk=
%chk=M062X_101.chk
#P M062X/gen
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=nocrowd density=current IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(XQC,Conver=11,MaxCycles=300) Integral(Grid=fine,Acc2E=14)
IOp(3/33=5) polar
Title Example1
Cartesian Coordinates. Z direction. Referencing all chk to n-1
0 2
@/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example6/Example6/geometry.txt
Input File: lib_bnnt-3_M062X_Example_6.txt in Folder Example 6.
Here we have Example 1, with the zip keyword added zip((density=current, delete), (XQC, QC))
. This keyword is allowing us to change keywords, and make new folders with changed keywords. This keyword is making folders with all possible combinations of keywords.
First we will be varying the density=current
keyword, we want to delete it, and we want to change the XQC
keyword to QC
. Therefore we will have 2*2 = 4 combinations, and this keyword will make 4 folders. It is important to respect the format of options for this keyword, and to write the words exactly how they are in the keyword section. IMPORTANT, we will always put at first all the deletions, and then changing of keywords.
In rest, the example is identical to Example 1.
Example 7. Using the log keyword
Example 7
keywords: gen_e_field_direction(0, 0, 1, 0.0001, 10, 2, cartesian, log) update_old_chk(n-1) basis_set(origin) read_geom() new_kw
***kw_e_field_calc***
#P LC-BLYP
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=check density=current ChkBasis guess=(read) IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(Conver=11,MaxCycles=300) Integral(Grid=ultrafine,Acc2E=14)
IOp(3/14=-6) polar cphf(grid=ultrafine)
***kw_e_field_calc***
***kw_basis_set***
B N Li H 0=
6-31+G(d)
****
***kw_basis_set***
***start_gaussian_file***
%nproc=8
%mem=24Gb
%oldchk=
%chk=lib_bnnt-3_LC-BLYP.chk
#P LC-BLYP/gen
Symmetry(PG=C4v,SaveOrientation,axis=z)
geom=nocrowd density=current IOp(9/75=2)
GFINPUT IOP(6/7=3) IOp(6/80=1) IOp(3/59=10) IOp(99/18=-1)
SCF(XQC,Conver=11,MaxCycles=300) Integral(Grid=ultrafine,Acc2E=14)
IOp(3/33=5) polar cphf(grid=ultrafine)
Performing LC-BLYP calculation and saving the results
F=Z+1.dF
dF=0.00005au
0 2
@/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example7/geometry.txt
Running the file from terminal on the DIPC supercomputer:
$ module load Python
$ python "/dipc/pmilev/python/single_file_run.py" "create_input" "/dipc/pmilev/files/lib_bnnt-3_M062X_Example_7.txt"
In this example the electric field is ranging from -0.1024 to +0.1024 with a logarithmic scale. All values of the electric field are powers of 2.
Results from this calculation, can be used for Romberg differentiation procedure.
gen_e_field_direction(0, 0, 1, 0.0001, 10, 2, cartesian, log)
0, 0, 1 specifies the direction of electric field. The direction is Z.
0.0001, 10, 2 specifies how we vary the electric field. We start at value 0.0001, and we will produce 10 points, and the base is 2.
I.e, all the points will be 0.0001*2**(n), and n will be in range from (0 to 10).
cartesian specifies that the direction of electric field is given in cartesian coordinates.
log specifies that we use a logarithmic space.
The meaning of all other keywords can be consulted in Example 1, and the following examples.
Example 8. Log space
Example 8
keywords: gen_e_field_direction(0, 0, 1, 0.0001, 10, 2, cartesian, log) read_geom()
automatically_update_kw
***start_gaussian_file***
%nproc=8
%mem=24Gb
%chk=lib_bnnt-3_LC-BLYP.chk
#P cam-b3lyp/6-31g(d')
nosymm gfinput pop=full polar=(dcshg,cubic) cphf=sg1grid
Log Step Example
0 2
@/Users/petrumilev/Documents/projects_python/project_girona_donostia/Examples/Create_Input_Files/Example8/geometry.txt
Input File: lib_bnnt-3_LC-BLYP.txt Output Files: Everything else in the folder
Running the file from terminal on the DIPC supercomputer:
$ module load Python
$ python "/dipc/pmilev/python/single_file_run.py" "create_input" "/dipc/pmilev/files/lib_bnnt-3_M062X_Example_7.txt"
In this example the electric field is ranging from -0.1024 to +0.1024 with a logarithmic scale. All values of the electric field are powers of 2.
Results from this calculation, can be used for Romberg differentiation procedure.
gen_e_field_direction(0, 0, 1, 0.0001, 10, 2, cartesian, log)
0, 0, 1 specifies the direction of electric field. The direction is Z.
0.0001, 10, 2 specifies how we vary the electric field. We start at value 0.0001, and we will produce 10 points, and the base is 2.
I.e, all the points will be 0.0001*2**(n), and n will be in range from (0 to 10).
cartesian specifies that the direction of electric field is given in cartesian coordinates.
log specifies that we use a logarithmic space.
This Example is similar to Example 7. The meaning of all other keywords can be consulted in Example 1, and the following examples.