Skip to content

Input File for creation of Gaussian Input Files

Petru-Milev edited this page Aug 29, 2023 · 15 revisions

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

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.

Structure of the file

An example of the file is presented above.

There are 3 main parts of the file

  1. Keywords
  2. Additional input for the keywords
  3. Usual Gaussian input file (with minor changes which are related to the keywords introduced in section 1)

1. Keyword Section

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.

2. Additional input for the keywords.

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.

3. Gaussian Input File

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

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.

Detailed Description of the keywords

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, $\theta$, $\phi$, which represent radial distance, inclination, and azimuth, respectively.
In cylindrical coordinate system, r, $\phi$, h, which represent Euclidean distance from the z-axis to the point, azimuth, and height, respectively.

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 $\sqrt{{(E_x)^2 + (E_y)^2 + (E_z)^2}} = 5$, $\sqrt{{(E_x)^2 + (E_y)^2 + (E_z)^2}} = 4$, etc. For negative values of the amplitude the direction of the E field is reversed.
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.

Examples

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

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.