SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


ase:jacapo:params

文書の過去の版を表示しています。


Class methods to GET/SET Parameters

NetCDF file

get_nc(self)
set_nc(self, nc='out.nc')
  • get_nc return the ncfile used for output
  • set_nc set filename for the netcdf and text output for this calculation
ArgumentsTypeNotes
nc string filename for netcdf file

if the ncfile attached to the calculator is changing, the old file will be copied to the new file if it doesn not exist so that all the calculator details are preserved. Otherwise, the

if the ncfile does not exist, it will get initialized.

the text file will have the same basename as the ncfile, but with a .txt extension.

get_ncoutput(self)
set_ncoutput(self, wf=None, cd=None, efp=None, esp=None)
  • get_ncoutput returns the control variables for the ncfile
  • set_ncoutput set the output of large variables in the netcdf output file
ArgumentsTypeNotes
wf string controls output of wavefunction. values can be 'Yes' or 'No'
cd string controls output of charge density. values can be 'Yes' or 'No'
efp string controls output of effective potential. values can be 'Yes' or 'No'
esp string controls output of electrostatic potential. values can be 'Yes' or 'No'

Stay alive

get_stay_alive(self)
set_stay_alive(self, value)
  • get_stay_alive return the stay alive settings
  • set_stay_alive set the stay alive setting

ase.Atoms instance

set_atoms(self, atoms)
get_atoms(self)

get_atoms return the atoms attached to a calculator()

set_atoms attach an atoms to the calculator and update the ncfile

ArgumentsTypeNotes
atomsASE.Atoms instance

Energy cutoff

get_pw(self)
get_dw(self)
set_pw(self, pw)
set_dw(self, dw)
  • get_pw return the planewave cutoff used
  • get_dw return the density wave cutoff
  • set_pw set the planewave cutoff.
  • set_dw set the density wave cutoff energy.
ArgumentsTypeNotes
pw integer the planewave cutoff in eV
dw integer the density wave cutoff
  • set_pw checks to make sure the density wave cutoff is greater than or equal to the planewave cutoff.
  • set_dw checks to make sure it is not less than the planewave cutoff.

Density_WaveCutoff describes the kinetic energy neccesary to represent a wavefunction associated with the total density, i.e. $\vec{G}$-vectors for which $|\vec{G}|^2< 4\times(Density WaveCutoff)$ will be used to describe the total density (including augmentation charge and partial core density). If Density_WaveCutoff is equal to PlaneWaveCutoff this implies that the total density is as soft as the wavefunctions described by the kinetic energy cutoff PlaneWaveCutoff. If a value of Density_WaveCutoff is specified (must be larger than or equal to PlaneWaveCutoff) the program will run using two grids, one for representing the wavefunction density (softgrid_dim) and one representing the total density (hardgrid_dim). If the density can be reprensented on the same grid as the wavefunction density Density_WaveCutoff can be chosen equal to PlaneWaveCutoff (default).

Sampling K-point

get_kpts(self)
get_kpts_type(self)
set_kpts(self, kpts)
  • get_kpts return the BZ kpts
  • get_kpts_type return the kpt grid type
  • set_kpts set the kpt grid.
kpts
(n1,n2,n3) or [k1,k2,k3,…] or one of these chadi-cohen sets:

* cc6_1x1 * cc12_2x3 * cc18_sq3xsq3 * cc18_1x1 * cc54_sq3xsq3 * cc54_1x1 * cc162_sq3xsq3 * cc162_1x1

(n1,n2,n3) creates an n1 x n2 x n3 monkhorst-pack grid, [k1,k2,k3,…] creates a kpt-grid based on the kpoints defined in k1,k2,k3,…

There is also a possibility to have Dacapo (fortran) create the Kpoints in chadi-cohen or monkhorst-pack form. To do this you need to set the KpointSetup.gridtype attribute, and KpointSetup.

KpointSetup = [3,0,0] KpointSetup.gridtype = 'ChadiCohen'

KpointSetup(1) Chadi-Cohen k-point set 1 6 k-points 1×1 2 18-kpoints sqrt(3)*sqrt(3) 3 18-kpoints 1×1 4 54-kpoints sqrt(3)*sqrt(3) 5 54-kpoints 1×1 6 162-kpoints 1×1 7 12-kpoints 2×3 8 162-kpoints 3xsqrt 3

or KpointSetup = [4,4,4] KpointSetup.gridtype = 'MonkhorstPack' we do not use this functionality.

  • spinpol
  • fixmagmom
  • ft

Fermi temperature

get_ft(self)
set_ft(self, ft)
  • get_ft return the FermiTemperature used in the calculation
  • set_ft set the Fermi temperature for occupation smearing
ArgumentsTypeNotes
ft floatFermi temperature in kT (eV)

Electronic temperature, corresponding to gaussian occupation statistics. Device used to stabilize the convergence towards the electronic ground state. Higher values stabilizes the convergence. Values in the range 0.1-1.0 eV are recommended, depending on the complexity of the Fermi surface (low values for d-metals and narrow gap semiconducters, higher for free electron-like metals).

  • xc
  • dipole
get_dipole(self)
return dictionary of parameters if the DipoleCorrection was used

get_dipole_moment(self, atoms=None)
return dipole moment of unit cell

Defined by the vector connecting the center of electron charge density to the center of nuclear charge density.

Units = eV*angstrom

1 Debye = 0.208194 eV*angstrom

set_dipole(self, status=True, mixpar=0.2, initval=0.0, adddipfield=0.0, position=None)
turn on and set dipole correction scheme

:Parameters:

status : Boolean
True turns dipole on. False turns Dipole off

mixpar : float
Mixing Parameter for the the dipole correction field
during the electronic minimization process. If instabilities
occur during electronic minimization, this value may be
decreased.

initval : float
initial value to start at

adddipfield : float
additional dipole field to add
units : V/ang
External additive, constant electrostatic field along
third unit cell vector, corresponding to an external
dipole layer. The field discontinuity follows the position
of the dynamical dipole correction, i.e. if
DipoleCorrection:DipoleLayerPosition is set, the field
discontinuity is at this value, otherwise it is at the
vacuum position farthest from any other atoms on both
sides of the slab.

position : float
scaled coordinates along third unit cell direction.
If this attribute is set, DACAPO will position the
compensation dipole layer plane in at the provided value.
If this attribute is not set, DACAPO will put the compensation
dipole layer plane in the vacuum position farthest from any
other atoms on both sides of the slab. Do not set this to
0.0


calling set_dipole() sets all default values.

Number of bands

get_number_of_bands = get_nbands(self)
get_nbands(self)
set_nbands(self, nbands=None)
  • get_nbands returns the number of bands used in the calculation
  • set_nbands set the number of bands. a few unoccupied bands are recommended.
ArgumentsTypeNotes
nbands integer the number of bands.

if nbands = None the function returns with nothing done. At calculate time, if there are still no bands, they will be set by:
the number of bands is calculated as $nbands=nvalence*0.65 + 4$

Symmetry

get_symmetry(self)
set_symmetry(self, val=False)

get_symmetry return the type of symmetry used set_symmetry set how symmetry is used to reduce k-points

ArgumentsType
val Boolean
  • set_sym(True): Maximum symmetry is used
  • set_sym(False): No symmetry is used

This variable controls the if and how DACAPO should attempt using symmetry in the calculation. Imposing symmetry generally speeds up the calculation and reduces numerical noise to some extent. Symmetry should always be applied to the maximum extent, when ions are not moved. When relaxing ions, however, the symmetry of the equilibrium state may be lower than the initial state. Such an equilibrium state with lower symmetry is missed, if symmetry is imposed. Molecular dynamics-like algorithms for ionic propagation will generally not break the symmetry of the initial state, but some algorithms, like the BFGS may break the symmetry of the initial state. Recognized options:

“Off”
No symmetry will be imposed, apart from time inversion symmetry in recipical space. This is utilized to reduce the k-point sampling set for Brillouin zone integration and has no influence on the ionic forces/motion.
“Maximum”
DACAPO will look for symmetry in the supplied atomic structure and extract the highest possible symmetry group. During the calculation, DACAPO will impose the found spatial symmetry on ionic forces and electronic structure,

i.e. the symmetry will be conserved during the calculation.

Stress

set_calculate_stress(self, stress=True)
get_calculate_stress(self)
  • get_calculate_stress returns whether stress is calculated or not.
  • set_calculate_stress turns on stress calculation.
ArgumentsType
stressboolean
  • set_calculate_stress(True) calculates stress.
  • set_calculate_stress(False) does not calculate stress.

General get/set method

get(self, *args)
set(self, **kwargs)
  • get gets values for args.
  • set sets a parameter.
    The parameter is stored in dictionary that is processed later if a calculation is need.

example

calc.get('nbands')
ase/jacapo/params.1558668041.txt.gz · 最終更新: 2022/08/23 13:34 (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki