Parameters for basis optimization¶
Parameters here are for optimizing the confined pseudo-atomic orbital (PAO) basis functions by a combined application of nanobase and nanodcal together. Basis optimization is important to LCAO methods.
calculation.basisOptimization.basisInputFiles¶
key word |
: |
calculation.basisOptimization.basisInputFiles |
possible values |
: |
cell array of strings which represents file names |
default value |
: |
no default value |
description |
: |
Each file is an input file of nanobase, which is |
used for generating LCAO basis functions. |
||
For more information about how to prepare the input file |
||
for nanobase, see the User Reference manual of nanobase. |
||
The basis parameters in the given input files are |
||
used as initial values for the basis optimization. |
||
The file names of the generated basis functions should be |
||
specified in the parameter basisFileNames. |
||
Please note that in each basis calculation, the |
||
working directory is automatically changed to the |
||
directory where the corresponding input file is located. |
||
Therefore, please put your input files in different |
||
directories to avoid overwriting useful results. |
||
an example |
: |
calculation.basisOptimization.basisInputFiles = { … |
./Carbon_SZ/input.txt, … |
||
./Carbon_DZ/input.txt, … |
||
./Oxygen_DZP/input.txt} |
calculation.basisOptimization.basisFileNames¶
key word |
: |
calculation.basisOptimization.basisFileNames |
possible values |
: |
cell array of strings which represent file names |
default value |
: |
no default value |
description |
: |
The file names of the optimized basis, each corresponds |
to one set of initial basis parameters of files given in |
||
the parameter basisInputFiles. The path part of the |
||
names of the basis files are not needed, and the |
||
optimized basis files will always be saved in the |
||
current directory. |
||
Please note that |
||
|
||
will be updated with the updated basis parameters; |
||
then the updated basis will be copied to the working |
||
directories of the calculation of the physical |
||
properties; and used to calculate certain physical |
||
properties of the systems which are specified in the |
||
input parameter systemInputFiles (see also the |
||
description of the parameter systemInputFiles). |
||
|
||
cell array should all be different from each other. In |
||
the following example, there are two different names. |
||
an example |
: |
calculation.basisOptimization.basisFileNames = { … |
C_dzp.mat, O_dzp.mat} |
calculation.basisOptimization.systemInputFiles¶
key word |
: |
calculation.basisOptimization.systemInputFiles |
possible values |
: |
cell array of strings for file names |
default value |
: |
no default value |
description |
: |
Input file names for normal nanodcal calculations of |
different physical systems. The calculated physical |
||
properties of the physical system will be used to form |
||
a cost function by basisOptimization.costCalculator. |
||
This cost function is to be minimized. |
||
Please note that |
||
|
||
working directory is automatically changed to the |
||
directory where the corresponding input file is located. |
||
Therefore, please place your input files in different |
||
directories to avoid overwriting useful results. |
||
|
||
is to supply physical properties for the optimization of |
||
the basis, and then the basis sets with the names given |
||
by the parameter basisFileNames should be used in the |
||
calculation. Therefore, please make sure that the |
||
basis used in the calculations are the correct ones. |
||
an example |
: |
calculation.basisOptimization.systemInputFiles = { … |
./CO2/input.txt, … |
||
./O2/input.txt} |
calculation.basisOptimization.costCalculator¶
key word |
: |
calculation.basisOptimization.costCalculator |
possible values |
: |
a structure with two fields of class and parameter |
default value |
: |
the costEnergy class |
description |
: |
This input parameter defines a plug-in calculator, which |
supplies the cost function to be minimized by nanodcal. |
||
In this parameter, the field class clarifies the name |
||
of the calculator, and the field parameter gives its |
||
construction parameter. The constructor of the plug-in |
||
calculator will be called in the following way: |
||
calculator = constructor([cp]) |
||
where |
||
[cp] = calculation.basisOptimization.costCalculator.parameter |
||
For information about how to replace this plug-in |
||
calculator, type nanodcal -help plug-in and nanodcal -api. |
||
an example |
: |
calculation.basisOptimization.costCalculator.class = … |
costGapOverK |
||
calculation.basisOptimization.costCalculator.parameter … |
||
= struct(GapOverK, [ 8.1398 2.6880 2.7482 … |
||
2.5293 2.9758 3.4849 8.1398 3.5565], … |
||
KpointNumber, [1 50 75 99 125 148 197 246]) |
calculation.basisOptimization.constrainType¶
key word |
: |
calculation.basisOptimization.constrainType |
possible values |
: |
soft, hard |
default value |
: |
hard |
description |
: |
If hard, the basis parameters will be strictly |
confined within a pre-set optimization domain. If |
||
soft, the basis parameters will be allowed to be |
||
outside the optimization domain, but with a large |
||
punishing cost function value. |
||
an example |
: |
calculation.basisOptimization.constrainType = soft |
calculation.basisOptimization.constrainConstant¶
key word |
: |
calculation.basisOptimization.constrainConstant |
possible values |
: |
structure with all or part of the following fields |
ChargeTransfer_minimum_factor, |
||
ChargeTransfer_maximum_factor, |
||
EnergyShift_minimum_factor, |
||
EnergyShift_maximum_factor, |
||
SplitNorm_minimum_value, |
||
SplitNorm_maximum_value, |
||
SplitNorm_shift_half_range, |
||
rc_minimum_factor, |
||
rc_maximum_factor, |
||
rc_rc_minimum_distance, |
||
ri_minimum_factor, |
||
ri_maximum_factor, |
||
rc_ri_minimum_distance, |
||
V0_minimum_factor, |
||
V0_maximum_factor. |
||
default value |
: |
ChargeTransfer_minimum_factor = 0, |
ChargeTransfer_maximum_factor = 2, |
||
EnergyShift_minimum_factor = 1, |
||
EnergyShift_maximum_factor = 2, |
||
SplitNorm_minimum_value = 0.01, |
||
SplitNorm_maximum_value = 0.99, |
||
SplitNorm_shift_half_range = 0.1, |
||
rc_minimum_factor = 0.85, |
||
rc_maximum_factor = 1.15, |
||
rc_rc_minimum_distance = 1.2, |
||
ri_minimum_factor = 0.85, |
||
ri_maximum_factor = 1.15, |
||
rc_ri_minimum_distance = 1.0, |
||
V0_minimum_factor = 1/100, |
||
V0_maximum_factor = 10. |
||
description |
: |
The constrain constants which define an optimization |
domain in the space spanned by the basis parameters |
||
within which the optimal values of the parameters is |
||
searched for. |
||
an example |
: |
calculation.basisOptimization.constrainConstant … |
.ri_maximum_factor = 2.5 |
calculation.basisOptimization.history¶
key word |
: |
calculation.basisOptimization.history |
possible values |
: |
true or false |
default value |
: |
false |
description |
: |
If true, a file searchingHistoryOfTheBasisParameters.txt |
is generated to record the searching history of the |
||
basis parameters. |
||
an example |
: |
calculation.basisOptimization.history = false |
calculation.basisOptimization.simplex.MaxFunEvals¶
key word |
: |
calculation.basisOptimization.simplex.MaxFunEvals |
possible values |
: |
an integer |
default value |
: |
1000 |
description |
: |
nanodcal uses a simplex method to optimize the basis. |
This parameter is used in the simplex. The maximum |
||
number of times the cost function being called. |
||
an example |
: |
calculation.basisOptimization.simplex.MaxFunEvals = 3000 |
calculation.basisOptimization.simplex.TolFun¶
key word |
: |
calculation.basisOptimization.simplex.TolFun |
possible values |
: |
a small number |
default value |
: |
1e-2 |
description |
: |
nanodcal uses a simplex method to optimize the basis. |
This parameter is used in the simplex. The tolerance of |
||
cost function value. |
||
an example |
: |
calculation.basisOptimization.simplex.TolFun = 1e-3 |