Typos found using codespell.py

parent c4bdcc7c
......@@ -833,7 +833,7 @@ PyObject* scalapack_diagonalize_ex(PyObject *self, PyObject *args)
double vl, vu; // not used when range = 'A' or 'I'
char jobz = 'V'; // eigenvectors also
char range = 'I'; // eigenvalues il-th thru iu-th
char range = 'I'; // eigenvalues il-th through iu-th
char* uplo;
if (!PyArg_ParseTuple(args, "OOsiOO", &a, &desca, &uplo, &iu,
......@@ -976,7 +976,7 @@ PyObject* scalapack_diagonalize_mr3(PyObject *self, PyObject *args)
double vl, vu; // not used when range = 'A' or 'I'
char jobz = 'V'; // eigenvectors also
char range = 'I'; // eigenvalues il-th thru iu-th
char range = 'I'; // eigenvalues il-th through iu-th
char* uplo;
if (!PyArg_ParseTuple(args, "OOsiOO", &a, &desca, &uplo, &iu,
......@@ -1294,7 +1294,7 @@ PyObject* scalapack_general_diagonalize_ex(PyObject *self, PyObject *args)
double vl, vu; // not used when range = 'A' or 'I'
char jobz = 'V'; // eigenvectors also
char range = 'I'; // eigenvalues il-th thru iu-th
char range = 'I'; // eigenvalues il-th through iu-th
char* uplo;
if (!PyArg_ParseTuple(args, "OOsiOOO", &a, &desca, &uplo, &iu,
......@@ -1440,7 +1440,7 @@ PyObject* scalapack_general_diagonalize_mr3(PyObject *self, PyObject *args)
double vl, vu; // not used when range = 'A' or 'I'
char jobz = 'V'; // eigenvectors also
char range = 'I'; // eigenvalues il-th thru iu-th
char range = 'I'; // eigenvalues il-th through iu-th
char* uplo;
double scale;
......
......@@ -396,7 +396,7 @@ def Y_collect2(l, m):
return norm, p2
def dYdq(l, m, q):
"""Returns a normalization constant, and a dictionary discribing
"""Returns a normalization constant, and a dictionary describing
the functional form of the derivative of r^l Y_l^m(x,y,z) with
respect to x, y or z if q is either 0, 1 or 2 respectively. The
format of the output dictionary is {(i, j, k): c}, where c is the
......
/* Definitions needed by code transfered with f2c */
/* Definitions needed by code transferred with f2c */
#include <stdio.h>
#include <math.h>
......
......@@ -72,7 +72,7 @@ static PyObject *mpi_request_wait(GPAW_MPI_Request *self, PyObject *noargs)
int ret = MPI_Wait(&(self->rq), MPI_STATUS_IGNORE);
if (ret != MPI_SUCCESS)
{
PyErr_SetString(PyExc_RuntimeError, "MPI_Wait error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Wait error occurred.");
return NULL;
}
#endif
......@@ -96,7 +96,7 @@ static PyObject *mpi_request_test(GPAW_MPI_Request *self, PyObject *noargs)
int ret = MPI_Test(&(self->rq), &flag, MPI_STATUS_IGNORE); // Can this change the Python string?
if (ret != MPI_SUCCESS)
{
PyErr_SetString(PyExc_RuntimeError, "MPI_Test error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Test error occurred.");
return NULL;
}
#endif
......@@ -238,7 +238,7 @@ static PyObject * mpi_sendreceive(MPIObject *self, PyObject *args,
PyArray_BYTES(b), nrecv, MPI_BYTE, src, recvtag,
self->comm, MPI_STATUS_IGNORE);
if (ret != MPI_SUCCESS) {
PyErr_SetString(PyExc_RuntimeError, "MPI_Sendrecv error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Sendrecv error occurred.");
return NULL;
}
#endif
......@@ -272,7 +272,7 @@ static PyObject * mpi_receive(MPIObject *self, PyObject *args, PyObject *kwargs)
MPI_STATUS_IGNORE);
if (ret != MPI_SUCCESS)
{
PyErr_SetString(PyExc_RuntimeError, "MPI_Recv error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Recv error occurred.");
return NULL;
}
#endif
......@@ -291,7 +291,7 @@ static PyObject * mpi_receive(MPIObject *self, PyObject *args, PyObject *kwargs)
&(req->rq));
if (ret != MPI_SUCCESS)
{
PyErr_SetString(PyExc_RuntimeError, "MPI_Irecv error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Irecv error occurred.");
return NULL;
}
#endif
......@@ -322,7 +322,7 @@ static PyObject * mpi_send(MPIObject *self, PyObject *args, PyObject *kwargs)
int ret = MPI_Send(PyArray_BYTES(a), n, MPI_BYTE, dest, tag, self->comm);
if (ret != MPI_SUCCESS)
{
PyErr_SetString(PyExc_RuntimeError, "MPI_Send error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Send error occurred.");
return NULL;
}
#endif
......@@ -341,7 +341,7 @@ static PyObject * mpi_send(MPIObject *self, PyObject *args, PyObject *kwargs)
&(req->rq));
if (ret != MPI_SUCCESS)
{
PyErr_SetString(PyExc_RuntimeError, "MPI_Isend error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Isend error occurred.");
return NULL;
}
#endif
......@@ -438,7 +438,7 @@ static PyObject * mpi_testall(MPIObject *self, PyObject *requests)
if (ret != MPI_SUCCESS)
{
// We do not dare to release the buffers now!
PyErr_SetString(PyExc_RuntimeError, "MPI_Testall error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Testall error occurred.");
return NULL;
}
#endif
......@@ -510,7 +510,7 @@ static PyObject * mpi_waitall(MPIObject *self, PyObject *requests)
if (ret != MPI_SUCCESS)
{
// We do not dare to release the buffers now!
PyErr_SetString(PyExc_RuntimeError, "MPI_Waitall error occured.");
PyErr_SetString(PyExc_RuntimeError, "MPI_Waitall error occurred.");
return NULL;
}
#endif
......
......@@ -128,7 +128,7 @@ def analyse_benchmark(dir, pattern, output_prefix, iter, verbose=False):
t = T(lines[n + 0].split()[4])
break
time[p]['start'] = t
# extract SCF begining time estimate and end time (constant potential steps (fixdensity))
# extract SCF beginning time estimate and end time (constant potential steps (fixdensity))
for n, l in enumerate(lines):
if l.startswith('iter: 1'):
#print l, n, f
......@@ -140,10 +140,10 @@ def analyse_benchmark(dir, pattern, output_prefix, iter, verbose=False):
t2 = T(lines[fixdensity_start + 1].split()[2])
t3 = T(lines[fixdensity_start + 2].split()[2])
break
# estimate the begining of fixdensity based on 3 fixdensity steps
# estimate the beginning of fixdensity based on 3 fixdensity steps
time[p]['fixdensity_start_estimate'] = t1-(t3-t1)/2.0
time[p]['fixdensity_end'] = t3
# extract SCF begining and end time
# extract SCF beginning and end time
time[p]['SCF_start'] = time[p]['fixdensity_end']
for n, l in enumerate(lines):
if l.startswith('iter: '+"%3s" % iter):
......
......@@ -550,7 +550,7 @@ through integer powers of 2 up to 128.
The number of bands (1056) and cores are chosen to make comparisons
of different band parallelizations (:ref:`band_parallelization`) possible.
**Note**: to achive optimal performance diagonalization steps are performed
**Note**: to achieve optimal performance diagonalization steps are performed
on `4x4` blacs grid with block size of `64` specified by adding ``--gpaw=blacs=1 --sl_diagonalize=4,4,64`` options.
**Note** also that a default domain decomposition is appplied, and different
......@@ -707,7 +707,7 @@ through integer powers of 2 and up to the total number of CPU 4096 cores.
The number of bands (1728) and cores are chosen to make comparisons
of different band parallelizations (:ref:`band_parallelization`) possible.
**Note**: to achive optimal performance diagonalization steps are performed
**Note**: to achieve optimal performance diagonalization steps are performed
on `5x5` blacs grid with block size of `64` specified by adding ``--gpaw=blacs=1 --sl_diagonalize=5,5,64`` options.
**Note** also that a default domain decomposition is appplied, and different
......
......@@ -52,7 +52,7 @@ and
\frac{\Delta\tilde{\rho}^a(\mathbf{r}')}
{|\mathbf{r}-\mathbf{r}'|}.
Notice that the `Q_{\ell m}^a` have been choosen so that all multipole
Notice that the `Q_{\ell m}^a` have been chosen so that all multipole
moments of `\Delta\tilde{\rho}^a` are zero and therefore, the
potential from these correction charges (`\Delta\tilde{v}_H^a`) will
be non-zero only inside the atomic augmentation spheres.
......
......@@ -135,7 +135,7 @@ def analyse_benchmark(ncores=8, startcores=1, machine='TEST', runs=7):
# absolute path to directory
root_abspath = os.path.abspath(opt.dir)
# lenght of directory name
# length of directory name
rootlen = len(root_abspath) + 1
ref_value_3300 = -44.85826
......
......@@ -33,7 +33,7 @@ This object is the central object for a GPAW calculation::
The implementation is in :svn:`gpaw/paw.py`. The
:class:`~gpaw.paw.PAW` class doesn't do any part of the actual
calculation - it only handles the logic of parsing the input
parameters and setting up the neccesary objects for doing the actual
parameters and setting up the necessary objects for doing the actual
work (see figure above).
......
......@@ -68,7 +68,7 @@ mpi_debug('idata=%d' % idata)
if world.rank == 0:
print('-'*16)
# The master just calculated auxilary data. Distribute it.
# The master just calculated auxiliary data. Distribute it.
aux = np.empty(N, dtype=float)
# Only master knows the data right now
......@@ -77,7 +77,7 @@ if world.rank == 0:
aux[:] = np.random.uniform(0,1,size=N).round(2)
print('MASTER aux: %s, mean=%f' % (aux, aux.mean()))
# Allocate space for my part of the auxilary data
# Allocate space for my part of the auxiliary data
myaux = np.empty(M, dtype=float)
# Scatter parts from master to everyone
......@@ -112,13 +112,13 @@ mpi_debug('myaux: %s, mean=%f' % (myaux,meanaux))
if world.rank == 0:
print('-'*16)
# We've done something to our part of the auxilary data. Master needs it all
# We've done something to our part of the auxiliary data. Master needs it all
if world.rank == 0:
result = np.empty(N, dtype=float)
else:
result = None
# Do something to our auxilary data
# Do something to our auxiliary data
myaux[:] = np.sin(2*np.pi*myaux).round(3)
mpi_debug('myaux: %s' % myaux)
......
......@@ -4,7 +4,7 @@ Planewaves
With `N=N_1N_2N_3` grid points: `\br^T=(g_1/N_1,g_2/N_2,g_3/N_3)\mathbf
A`, where `g_c=0,1,...,N_c-1`, we get a plane wave expansion of the wave
funtion as:
function as:
.. math::
......
......@@ -102,7 +102,7 @@ Follow the vendor installation instructions for ``TAU``.
PerfDMF are a set of utilities that allow you to create a database for storing and analayzing your profile data. If you plan to collect any significant amount of profile data, it is highly recommend that you set one up. There are a number of options for the perfmdf database. For must users, the default based on derby is the simplest and it can be created by ``perfdmf_configure --create-default``. Other options are
also available:
`<http://www.cs.uoregon.edu/research/tau/docs/newguide/ch18s02.html>`_
Note that altough Paraprof is the simplest way to load profile data into your database,
Note that although Paraprof is the simplest way to load profile data into your database,
it is also possible to accomplish this directly with the PerfDMF utilities.
`<http://www.cs.uoregon.edu/research/tau/docs/newguide/ch19.html>`_
......@@ -170,7 +170,7 @@ Simply add the following to the ``customize.py`` and run ``python setup.py build
extra_link_args += ['-Wl,-rpath='+tau_path+'lib/']
There may be a number of Makefile TAU stubs available. Choose the one that is appropriate for the profile data that you wish to collect and the compiler. Because automatic instrumentation generally has larger overhead than manual instrumentation, it is recommended to set the compensate option. In this way, the instrumentation time will be substracted out from the time reported by TAU. Without this compensation option, light weight functions may be over-represented in the flat profile.
There may be a number of Makefile TAU stubs available. Choose the one that is appropriate for the profile data that you wish to collect and the compiler. Because automatic instrumentation generally has larger overhead than manual instrumentation, it is recommended to set the compensate option. In this way, the instrumentation time will be subtracted out from the time reported by TAU. Without this compensation option, light weight functions may be over-represented in the flat profile.
You may set the following::
......
......@@ -7,4 +7,4 @@ Bethe-Salpeter equation
Documentation can be found at :ref:`bse`.
The BSE module can work very well for small bulk systems. See gpaw/test/bse_silicon.py as an example.
Recently I have implemented using scalapack library to diagonalize the BSE matrix, so in priciple, it can also work for relatively bigger systems. Bigger tests coming soon.
Recently I have implemented using scalapack library to diagonalize the BSE matrix, so in principle, it can also work for relatively bigger systems. Bigger tests coming soon.
......@@ -10,7 +10,7 @@ old collection of PAW setups we will focus on:
* higher accuracy - more semi-core states might be added
* reduced eggbox error
* faster convergence of energy with number of grid-points - if possible
* tesing the setups more carfully agains a bigger set of all-electron results
* tesing the setups more carfully against a bigger set of all-electron results
The code is in :svn:`~gpaw/gpaw/atom/generator2.py` and it is based on
a new and more robust atomic solver: :svn:`~gpaw/gpaw/atom/aeatom.py`.
......@@ -163,11 +163,11 @@ can easily support them.
Some thoughts about different backends:
---------------------------------------
If/when each object writes/reads itself, some sort of hierachical file
If/when each object writes/reads itself, some sort of hierarchical file
format would be convenient. I am not that familiar with
tarfile-interface used for .gpw files, but I think that it can support
hierachical structure (folders and files). Also, HDF5 supports
hierachical structure ("hierachical data format"), basic structure of
hierarchical structure (folders and files). Also, HDF5 supports
hierarchical structure ("hierarchical data format"), basic structure of
HDF5 file is groups and datasets. Other formats that one could think
of are MPI-IO and netcdf, but that they do not really support
hierarchical structure. Drawback of MPI-IO is also that the files are
......@@ -175,7 +175,7 @@ not necessarily portable (although it should be possible to ensure
portability with the price of more expensive IO).
Here is a prototype implementation of a hierachical reader/writer
Here is a prototype implementation of a hierarchical reader/writer
framework: :trac:`doc/devel/proposals/rw.py`.
......
......@@ -91,7 +91,7 @@ class Writer:
self.fd = fd
self.data = data
# Shape and dtype of array beeing filled:
# Shape and dtype of array being filled:
self.shape = (0,)
self.dtype = None
......
......@@ -302,7 +302,7 @@ Version 0.4
* Using localized functions will now no longer use MPI group
communicators and blocking calls to MPI_Reduce and MPI_Bcast.
Instead non-blocking sends/receives/waits are used. This will
reduce syncronization time for large parallel calculations.
reduce synchronization time for large parallel calculations.
* More work on LB94.
* Using LCAO code forinitial guess for grid calculations.
......
......@@ -31,7 +31,7 @@ Then :command:`cd` to the :file:`doc` directory and build the html-pages::
Make sure that you build the Sphinx documentation using the corresponding
GPAW version by setting the environment variables :envvar:`PYTHONPATH`,
:envvar:`PATH` (described at :ref:`developer_installation`) and
the location of setups (decribed at :ref:`installationguide_setup_files`).
the location of setups (described at :ref:`installationguide_setup_files`).
Make your changes to the ``.rst`` files, run the
:command:`make` command again, check the results and if things
......
......@@ -127,12 +127,12 @@ which is the recommended value if the default fails to converge.
The class ``Mixer`` indicates one of the possible mixing schemes. The
Pulay mixing can be based on:
1. The spin densities seperately, ``Mixer`` (This will *not* work for
1. The spin densities separately, ``Mixer`` (This will *not* work for
a spinpolarized system, unless the magnetic moment is fixed)
2. The total density, ``MixerSum2``
3. Spin channels seperately for the density matrices, and the summed
3. Spin channels separately for the density matrices, and the summed
channels for the pseudo electron density, ``MixerSum``
4. The total density and magnetization densities seperately, ``MixerDif``
4. The total density and magnetization densities separately, ``MixerDif``
Where the magnetization density is the difference between the two spin
densities.
......
......@@ -126,7 +126,7 @@ Then, the frequency integration with
.. math:: \frac{1}{\omega + \omega' - \epsilon_{m \, \mathbf{k} - \mathbf{q}} + i \eta \, \text{sgn}(\epsilon_{m \, \mathbf{k} - \mathbf{q}} - \mu)} \hspace{0.4cm} \textsf{and} \hspace{0.4cm} - \frac{1}{\left(\omega + \omega' - \epsilon_{m \, \mathbf{k} - \mathbf{q}} + i \eta \, \text{sgn}(\epsilon_{m \, \mathbf{k} - \mathbf{q}} - \mu)\right)^2}
for the self energy and its derivative is carried out, where :math:`\omega = \epsilon_{n \mathbf{k}}`. This is done for every :math:`(n \, \mathbf{k})` and :math:`(m \, \mathbf{k}\!-\!\mathbf{q})` seperately.
for the self energy and its derivative is carried out, where :math:`\omega = \epsilon_{n \mathbf{k}}`. This is done for every :math:`(n \, \mathbf{k})` and :math:`(m \, \mathbf{k}\!-\!\mathbf{q})` separately.
Method 2 (``hilbert_trans = True``) reverses this order by doing the frequency integration first for all :math:`\omega` on the grid. Then, for every :math:`(n \, \mathbf{k})` and :math:`(m \, \mathbf{k}\!-\!\mathbf{q})`, the contributions to :math:`\Sigma(\omega = \epsilon_{n \mathbf{k}})` and its derivative are found by linear interpolation using the two closest points on the frequency grid with :math:`\omega_i \leq \omega = \epsilon_{n \mathbf{k}} < \omega_{i+1}`. For :math:`\omega = 0`, three points are used for the interpolation. This is similar to using the Hilbert transform for the dielectric response function.
......@@ -149,7 +149,7 @@ I/O
All necessary informations of the system are read from ``file = 'filename.gpw'`` which must contain the wavefunctions. This is done by performing ``calc.write('groundstate.gpw', 'all')`` after the groundstate calculation. GW supports grid mode and planewave basis.
Especially for big systems, it might be reasonable to determine the exact exchange contributions seperately and store them in a pickle file which can be read by defining ``exxfile = 'filename.pckl'`` (see below). The band and k-point indices must match the ones used for the GW calculation. The pickle file needs to contain the following data:
Especially for big systems, it might be reasonable to determine the exact exchange contributions separately and store them in a pickle file which can be read by defining ``exxfile = 'filename.pckl'`` (see below). The band and k-point indices must match the ones used for the GW calculation. The pickle file needs to contain the following data:
================= ==============================================================================
``gwkpt_k`` list of k-point indices
......@@ -167,7 +167,7 @@ See the GW tutorial for an example: :ref:`gw_tutorial`
The output is written to ``txt = 'filename.out'`` which summarizes the input and results and gives an estimation of the timing while the calculation is running. An additional file ``df.out`` is created for the calculation of the dielectric matrix.
All results are also stored in a pickle file called ``GW.pckl`` by default, which contains all data listed in the table above and addionally ``Sigma_skn``, ``Z_skn`` and ``QP_skn`` for the self energy contributions, renormalization factors and the quasi-particle bandstructure, respectively.
All results are also stored in a pickle file called ``GW.pckl`` by default, which contains all data listed in the table above and additionally ``Sigma_skn``, ``Z_skn`` and ``QP_skn`` for the self energy contributions, renormalization factors and the quasi-particle bandstructure, respectively.
Convergence
===========
......
......@@ -70,7 +70,7 @@ The original article introducing the PAW formalism:
__ http://dx.doi.org/10.1103/PhysRevB.50.17953
A different formulation of PAW by Kresse and Joubert designed to make the transistion from USPP to PAW easy.
A different formulation of PAW by Kresse and Joubert designed to make the transition from USPP to PAW easy.
| G. Kresse and D. Joubert
| `From ultrasoft pseudopotentials to the projector augmented-wave method`__
| Physical Review B, Vol. **59**, 1758, 1999
......
......@@ -293,7 +293,7 @@ Currently all the hybrid functionals use the PBE setup as a *base* setup.
For more information about ``gpaw-setup`` see :ref:`generation_of_setups`.
Set the location of setups as decribed on :ref:`installationguide_setup_files`.
Set the location of setups as described on :ref:`installationguide_setup_files`.
The details of the implementation of the exchange-correlation
are described on the :ref:`xc_functionals` page.
......@@ -477,7 +477,7 @@ used for the remaining bands.
Occupation numbers
------------------
The smearing of the occupation numbers is controled like this::
The smearing of the occupation numbers is controlled like this::
from gpaw import GPAW, FermiDirac
calc = GPAW(..., occupations=FermiDirac(width), ...)
......
......@@ -347,7 +347,7 @@ ScaLAPACK parameters in three different places: i) general eigensolve
in the LCAO intilization ii) standard eigensolve in the FD calculation and
iii) Cholesky decomposition in the FD calculation. It is currently
possible to use different ScaLAPACK parameters in the LCAO
intialization and the FD calculation by using two of the ScaLAPACK
initialization and the FD calculation by using two of the ScaLAPACK
keywords in tandem, e.g::
--sl_lcao=p,q,pb --sl_default=m,n,mb
......
......@@ -17,7 +17,7 @@
2013-10-23 10.1103/PhysRevB.88.155128 Plasmons in metallic monolayer and bilayer transition metal dichalcogenides
2013-12-15 10.1016/j.cpc.2013.07.014 Graphics Processing Unit acceleration of the Random Phase Approximation in the projector augmented wave method
2013-12-26 10.1103/PhysRevB.88.245309 How dielectric screening in two-dimensional crystals affects the convergence of excited-state calculations: Monolayer MoS2
2013-12-27 10.1103/PhysRevB.88.245204 Calculated formation and reaction energies of 3d transition metal oxides using a hierachy of exchange-correlation functionals
2013-12-27 10.1103/PhysRevB.88.245204 Calculated formation and reaction energies of 3d transition metal oxides using a hierarchy of exchange-correlation functionals
2014-04-28 10.1063/1.4871875 Static correlation beyond the random phase approximation: Dissociating H-2 with the Bethe-Salpeter equation and time-dependent GW
2014-05-15 10.1007/s00339-013-8034-3 Atomistic approach for simulating plasmons in nanostructures
2014-05-21 10.1103/PhysRevLett.112.203001 Accurate Ground-State Energies of Solids and Molecules from Time-Dependent Density-Functional Theory
......
......@@ -88,7 +88,7 @@ Writing to separate files
=========================
In case of large files it is a good idea to write the wave functions
into seperate files, this can be done in the following way::
into separate files, this can be done in the following way::
calc.attach(calc.write, n, 'xyz.gpw', mode='gpw:wfs_tmp/psit_Gs%dk%dn%d')
......
......@@ -14,7 +14,7 @@ number of bands (left unspecified), unless stated otherwise.
On the plots: the number of self-consistent steps (stats), the total run time,
the systems with the largest number of steps, and the number of
systems for which convergence succeded.
systems for which convergence succeeded.
In the corresponding tables: the most common value of the total energy
("energy"), and the differences (run - "energy").
......
......@@ -18,7 +18,7 @@ Refer to :ref:`df_tutorial` for getting started with examples.
Non-interacting density response function
=========================================
The Non-interacting density response funtion in real space is written as,
The Non-interacting density response function in real space is written as,
.. math::
......@@ -288,7 +288,7 @@ is defined as
\times \delta( \omega^{\prime} + \epsilon_{n\mathbf{k}} - \epsilon_{n^{\prime} \mathbf{k} + \mathbf{q} } )
Note that the integration above requires both positive and negative frequencies.
In the following derivation, the intergration will be reduced to only half of the frequency domain.
In the following derivation, the integration will be reduced to only half of the frequency domain.
In the system that possesses the time-reversal symmetry, the bloch states have the following properties
......
......@@ -5,5 +5,5 @@ data = np.loadtxt('ag55.spec')
plt.plot(data[:, 0], data[:, 1], 'k')
plt.title(r'Absorption spectrum of $Ag_{55}$ with GLLB-SC potential')
plt.xlabel('eV')
plt.ylabel('Absorption (arbitary units)')
plt.ylabel('Absorption (arbitrary units)')
plt.savefig('fig1.png')
......@@ -6,7 +6,7 @@ Keldysh Green functions
The Keldysh Green function (KGF) code allows for calculations
of non-equilibrium transport calculations where electron
exchange and correlation effect are threated using many body pertubation
exchange and correlation effect are threated using many body perturbation
theory such as Hartree-Fock, second Born and the GW approximation.
It is recommended that you go through the ASE/GPAW electron transport exercice
to get familiar with the general transport setup and definitions used
......@@ -16,7 +16,7 @@ in ase and gpaw and the KGF code.
Download and Installation
-------------------------
The KGF code is currently beeing merged into the development version of
The KGF code is currently being merged into the development version of
GPAW and is expected to be part of the GPAW package in the near future.
The latest revision can be obtained from svn::
......
......@@ -51,10 +51,10 @@ in a item named surface Green's function
g(E) = (E*S_l - H_l)^{-1}
`S_l` and `H_l` are the overlap and hamiltonian matrices of
leads respectively, and since they are inifinite, we need to
leads respectively, and since they are infinite, we need to
do some handling to get it.
We induce the concept of priciple layer, the unit cell when
We induce the concept of principle layer, the unit cell when
solving the surface Green's function. We assum interaction
only exsits between two adjacent principle layers.
That means the Hamiltonian matrix is tridiagonal by the size
......@@ -197,7 +197,7 @@ electrode calculation, will be attached outside.
>>> nt X Y
Similiar to vt X Y, it plot the pseudo density.
Similar to vt X Y, it plot the pseudo density.
more...
......@@ -220,7 +220,7 @@ or, C-H_S C-H_P C-H_A plot the S orbital, P orbital, and total DOS of C and H
respectively in one figure.
As a summery, the linking symbol - means plus a element, _ means the orbital type,
],[,= defines the atomic indices, A represent all the atoms or orbtials, so dos X Y is
equalivalent to pdos X Y A_A. This command support multi inputparameters seperated by
equalivalent to pdos X Y A_A. This command support multi inputparameters separated by
space.
IV Characteristic:
......@@ -233,7 +233,7 @@ Charge:
>>> charge X Y ZZZ
Usage is similiar to pdos, it plot the charge of the partial orbitals as a function
Usage is similar to pdos, it plot the charge of the partial orbitals as a function
of bias.
Force:
......@@ -273,7 +273,7 @@ Principle Layer Atoms
``pl_atoms`` is the index of lead atoms, whose length is the
number of leads. For example, [[0,1,2,3],[7,8,9,10]] means there
are two leads, [0,1,2,3] is the principle layer of the first
lead and [7,8,9,10] for the second. The sequence is arbitary.
lead and [7,8,9,10] for the second. The sequence is arbitrary.
.. _manual_pl_cells:
......@@ -430,7 +430,7 @@ neutrality condition. Because the charge is conserved always by filling up
the molecular levels, the scaling factor is very close to 1. There the scaling
just helps to converge, and does not influece the calculation result. In NEGF
calculation, because the density matrix is obtain by the Green's function integral
to the fermi level, the charge neutrality is not garanteed. Without scaling, there
to the fermi level, the charge neutrality is not guaranteed. Without scaling, there
may be a convergence problem for the three dimensional system. So the code
is forced to do scaling always for the first several steps. The keyword
``normalize_density`` decides whether the scaling will be released or not at last.
......
......@@ -19,7 +19,7 @@ The current implementation *lacks* the following features:
* Fractional occupations.
For technical reasons, we had to decouple occupied and unoccupied states. This makes fractional occupations imposible. (Warning: the code will not raise an exception, but probably won't converge).
* Speed.
Inclusion of Fock exchange is exceedingly slow. The bottleneck is solving the poisson integrals of the Fock operator, which is currently done using an iterative real-space solver with a zero initial guess for the potential at each SCF cycle. This chould be optimized.
Inclusion of Fock exchange is exceedingly slow. The bottleneck is solving the poisson integrals of the Fock operator, which is currently done using an iterative real-space solver with a zero initial guess for the potential at each SCF cycle. This should be optimized.
One way to speed up an exact-exchange (or hybrid) calculation is to use the coarse grid (used for wave functions) instead of the finegrid (used for for densities) for the Fock potentials. This should give a speed-up factor of 8. This can be specified in the ``xc`` keyword like in this example :svn:`~gpaw/test/exx_coarse.py`
......
......@@ -145,15 +145,15 @@ to the ASE package.
The default number of ensemble XC functionals is 2000,
for which well-converged error estimates should be ensured.
Therefore, "de_h2" and "de_h" in the example
are both arrays of 2000 pertubations of a BEEF-vdW total energy.
are both arrays of 2000 perturbations of a BEEF-vdW total energy.
The syntax "ens.get_ensemble_energies(N)" changes this number to N.
The calculator object input to the BEEFEnsemble class could of course
stem from a restarted GPAW calculation.
It is very important to calculate
the ensemble statistics correctly. Computing the standard deviation of each
array of total energy pertubations makes little sense, only the standard
deviation of the relative energy pertubations should be used for the
array of total energy perturbations makes little sense, only the standard
deviation of the relative energy perturbations should be used for the
BEEF-vdW ensemble error estimates on a quantity.
......
......@@ -5,7 +5,7 @@ from ase.visualize import view
from gpaw import GPAW, PW
name = 'Al-fcc'
a = 4.05 # fcc lattice paramter
a = 4.05 # fcc lattice parameter
b = a / 2
bulk = Atoms('Al',
......
......@@ -4,7 +4,7 @@
Band structure
==============
Band diagrams are usefull analysis tools. Read :ref:`bandstructures` tutorial
Band diagrams are useful analysis tools. Read :ref:`bandstructures` tutorial
and try to understand what it does.
As a next step, calculate the bandstructure of FCC silver. Here we should be
......
BSE for excitonic effects
=========================
Excitonic effects play a fundamental role in determining the optical spectum
Excitonic effects play a fundamental role in determining the optical spectrum
of a semiconductor. As soon as an electron from the valence band is promoted
to the conduction band by an external electromagnetic field, it interacts
with the hole left behind in valence band via Coulomb interaction; the
......@@ -36,7 +36,7 @@ Read it, try to understand what it does and run it::
python LiF_gs.py
Before proceding with the BSE we want to calculate the single-particle
Before proceeding with the BSE we want to calculate the single-particle
spectrum in order to have something to compare with. We do this using the RPA
approximation (as you probably did in the previous exercises).
Download the script :download:`LiF_RPA.py`.
......
......@@ -35,7 +35,7 @@ Projected Density of states (PDOS)
The projected density of states is useful for for analyzing chemical
bonding. There exist several studies where the density projected onto
the d states of a given surface atom is used. This short excercise
the d states of a given surface atom is used. This short exercise
demonstrates how to construct the PDOS of Fe.
We will get a feel for the local density of states by plotting the
......
......@@ -24,7 +24,7 @@ the relieve of energy when we remove an electron from the valence band.
minimum located and what is the band gap obtained from DFT?
The GW approximation is a method for calculating the charged states of a
system based on a systematic pertubation theory approach. In its simplest
system based on a systematic perturbation theory approach. In its simplest
version, and the one so far implemented in GPAW, we can use it to find the
corrections to the DFT band structure than include the missing screening
effect when we add or remove an electron. In this approximation the
......
......@@ -3,9 +3,9 @@
from ase import Atoms
from ase.io import write
a = 2.41 # Pt binding lenght
b = 0.90 # H2 binding lenght
c = 1.70 # Pt-H binding lenght
a = 2.41 # Pt binding length
b = 0.90 # H2 binding length
c = 1.70 # Pt-H binding length
L = 7.00 # width of unit cell
# Setup the Atoms for the scattering region.
......
......@@ -10,9 +10,9 @@ from gpaw import GPAW, Mixer, FermiDirac
from gpaw.lcao.tools import remove_pbc, get_lcao_hamiltonian, get_lead_lcao_hamiltonian
import pickle as pickle
a = 2.41 # Pt binding lenght
b = 0.90 # H2 binding lenght
c = 1.70 # Pt-H binding lenght
a = 2.41 # Pt binding length
b = 0.90 # H2 binding length
c = 1.70 # Pt-H binding length
L = 7.00 # width of unit cell
#####################
......
......@@ -20,7 +20,7 @@ the methodology in the :mod:`ASE manual <ase.transport>`.
Recent experiments suggests that a hydrogen molecule trapped between
metal electrodes has a conductance close to the quantum unit of
conductance (`1G_0=2e^2/h`). As a managable model for this system, we
conductance (`1G_0=2e^2/h`). As a manageable model for this system, we
consider a hydrogen molecule sandwiched between semi-infinite one
dimensional Pt leads as shown in the figure below
......
......@@ -149,11 +149,11 @@ Step 4
A number of the GPAW source files in ``gpaw/c`` directory are built using
the ``distutils`` module which makes it difficult to control the flags
which are passed to the gnu compiler. A workaround is to use the following python
script: :svn:`bgp_gcc.py`. Additionaly, it is
script: :svn:`bgp_gcc.py`. Additionally, it is
desirable to static link as many libraries as possible. This requires
bypassing the mpi wrapper to the compiler using another python
script :svn:`bgp_gcc_linker.py`.
Lastly, we must use these work arounds in conjuction with two
Lastly, we must use these work arounds in conjunction with two
configures files :svn:`customize_surveyor_gcc.py` and
:svn:`config_surveyor.py`, the latter requires
renaming to ``config.py`` in the top level directory.
......
......@@ -17,7 +17,7 @@ Python is provided below:
.. literalinclude:: build_scalable_python.sh
NumPy 1.3.0 or later is recommended. Disutils does not work well on
PPC architectures and a compiler must be explictly specified. A build
PPC architectures and a compiler must be explicitly specified. A build
script for NumPy 1.3.0 is provided below:
.. literalinclude:: build_numpy.sh
......
......@@ -28,7 +28,7 @@ If you decide to install a development version of GPAW, this is what you do:
i.e. the installation path will be :file:`/home/niflheim/$USER/devel/gpaw`.
**Note** that this path appears in few places in the tools described on
this page - make sure you change those occurences if installing
this page - make sure you change those occurrences if installing
in under a different directory. The instructions assume **bash**.
1. On the ``servcamd`` filesystem (login on your workstation)
......@@ -58,7 +58,7 @@ If you decide to install a development version of GPAW, this is what you do:
https://wiki.fysik.dtu.dk/it/SshWithoutPassword.
5. Set the relevant environment variables poiting to the compiled GPAW version.
There are at least two ways to achive that:
There are at least two ways to achieve that:
5a. **Prepend** :envvar:`PYTHONPATH` and :envvar:`PATH` environment variables in your login scripts.
This method provides you with a default GPAW version (`devel`).
......
......@@ -39,7 +39,7 @@ Convergence tests
=================
The energy of %(aname)s dimer (`E_d`) and %(aname)s atom (`E_a`) is
calculated at diferent grid-spacings (`h`).
calculated at different grid-spacings (`h`).
.. image:: ../static/setups-data/%(symbol)s-dimer-eggbox.png