be the correct formula. Unfortunately, it doesn't work: the stress tensor doesn't
match the numerical derivative of energy with respect to volume. (D.C.)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6746 c92efa57-630b-4861-b058-cf58834340f0
This one enables compilation of pw using macports g95 gcc and apple libtool
I still have to test if the compilation was proper.
MacOs X 10.6 is an esoteric operating system, especially how the '64 bit' is
handled. Any help on the matter is really appreciated
1) g95 from macports complain that beta in exx.f90 is not an integer. I did not
see any reason why it was not an integer either. Please verify
2) apple suplied ranlib has some 'touches' related to 'universal' libraries
which mix 64 bit 32 bit and ppc all together, this results in lost symbols
in some cases (sadly Q-E is one such case). Details at
http://osdir.com/ml/gnu.libtool.general/2002-07/msg00045.html
modifying configure.ac such that in mac pcs ranlib is run in compatibility mode
The next patch will be about MKL. At least in the trial version, MKL is supplied
with ifort by default, however configure does not look for it. I will check
if it is due to some esoteric behaviour, otherwise enable it.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6692 c92efa57-630b-4861-b058-cf58834340f0
discarding the value of input_dft saved in the XML file. I made a workaround
to prevent this to happen without flooding people with obscure messages, but
teh real solution is to separata data reading (pseudopotentials, xml data
file) and data initialization (dft setting). Beware unintended side effects.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6688 c92efa57-630b-4861-b058-cf58834340f0
the restart file. It wasn't in case of errors reading the file, yielding a
rather mysterious "seqopn error: can't open a connected unit" later when
writing the restart file. 2) Mismatch between the formats of the restart
file in electrons and in c_bands (EXX only) was leading to many occurrences
of case 1)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6641 c92efa57-630b-4861-b058-cf58834340f0
of array elements, not as the number of real numbers in the array as in all
other "nword*" everywhere else. Hence the factor 2 when usd in "davcio"
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6632 c92efa57-630b-4861-b058-cf58834340f0
davcio that had replaced an equivalent call to get_buffer: there was
a missing factor 2 (beware the definition of nwordwfc!).
Removed call to clean_pw in exx_loop: it was useless in general,
harmful when occupancies were read from input (it was deallocating
the array f_inp that was subsequently used)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6628 c92efa57-630b-4861-b058-cf58834340f0
cases in which it should have been. Now it should work again. Note sure why
(never understood thea correct way to use the "tldeps" mechanism)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6553 c92efa57-630b-4861-b058-cf58834340f0
on the one in mix_rho).
I don't know whether it is better than the one implemented by Carlo Sbraccia
back in (2003-2006)... It performs not worse than Carlo's implentation (still
available as "broyden") on example17 ... and at least I understand it.
stefano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6511 c92efa57-630b-4861-b058-cf58834340f0
removed. Only cg and david left. The number of processors used in parallel
subspace diagonalization should be passed via the -ndiag command-line option
only. Documentation updated accordingly.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6503 c92efa57-630b-4861-b058-cf58834340f0
removed from CP as well; redundant sorting routine kb07ad_cp90 removed;
routines sort_gvec moved into cp_fpmd.f90, together with the other
G-vector related routines taht shlould one day merged with those of PW
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6474 c92efa57-630b-4861-b058-cf58834340f0
checkallsym is called only when atoms are moved or when data file is read.
sgama gven a more dscriptive name (find_sym)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6409 c92efa57-630b-4861-b058-cf58834340f0
routines that find the symmetry of a system, are in module symm_base;
module symme contains only routines for symmetrization of the various
quantities.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6403 c92efa57-630b-4861-b058-cf58834340f0
Mixing real space and q space algorithm paradigms results in fast but not-so-accurate results
various remedies I have cooked up failed mi to show a significant increase in accuracy.
Some comments, and acknowledgement of tqr+real_space results in a significant
drift in charge follows.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6357 c92efa57-630b-4861-b058-cf58834340f0
any prior call to calbec, thus a random becp is used. This randomness apparently does not pose a problem,
but in some cases, especially if you are playing with big arrays such as in real_space implementation,
very big values appear, leading to wacky results.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6355 c92efa57-630b-4861-b058-cf58834340f0
cases with fractional translations). The problem with symmetrization in some
simple cases (e.g. Si with origin in the middle on bond) is still there
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6351 c92efa57-630b-4861-b058-cf58834340f0
Added an option to disable it. In general, since real_space routines are "high level", that is, they involve
many operations, their precision is rather low (best zero ~ 1e-11 ). Anyone employing chain algorithms
should pay extra attention to drift caused by them. I am more than welcome to any contribution that will
improve accuracy without comprimising performance too much.
2) Some routines that I have used for testing is removed from realus. This module is getting huge...
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6326 c92efa57-630b-4861-b058-cf58834340f0
I have splitted them and collected all in a module. Usual calls to newd is not changed, apart from necessity
to include the module, newq is the part I use for calculating response charge density.
2) Some gamma only additions to PH/dv_of_drho.f90 proved to be unnecessary, removing. I am still trying to
find an efficient/minimal impact way to cast this subroutine to use real instead of complex input.
As usual, I have tested before posting, however be sure to check before in your applications.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6322 c92efa57-630b-4861-b058-cf58834340f0
sense. All kind of funny problems can result otherwise. Problem noticed by
Lorenzo. Maybe a similar check should also be added after calculation of the
small group of q in the phonon code, just in case.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6310 c92efa57-630b-4861-b058-cf58834340f0
(large system have seldom symmetries) and not a big effort either (but
the variable-cell case was really nasty, due to the loss of G-vector
ordering). Currently the new routines are hidden into module symme and
called by wrappers that make it simple to revert to the old algorithm.
It works for all examples in tests/ in both serial and parallel execution,
but needs real-life testing. In the noncolinear case the results seem to
be invariant with respect to usage of S or S^-1 to rotate the magnetization,
so more testing (or a more reliable theory) is needed.
For the time being, it works only for PW and (untested) PP. PHonon etc
still use the old-fashioned real-space symmetrization.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6261 c92efa57-630b-4861-b058-cf58834340f0
Symmetrization of the charge density for the gamma_only case is no longer
performed (it is not needed). Symmetrization of forces and stresses is
still performed to prevent loss of symmetry during structural optimization.
Minor numerical differences may follow, but I haven't noticed any nasty
side effects
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6257 c92efa57-630b-4861-b058-cf58834340f0
think there will be any side effects, but in case, it is easy to revert to
the previous case (by just removing a "go to"). In principle, symmetrization
of the charge density is needed only if we have k-points in the BZ that are
not in the IBZ. Symmetrization of forces and stresses is still there, because
it ensures the correct symmetry.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6256 c92efa57-630b-4861-b058-cf58834340f0
subroutines which basically do the same with only slight modifications. However, this requires some technical
touches to PWSCF. I am trying to keep this organic and minimal-impact since QE still lacks a SDE.
I will be adding the changes gradually as the tests complete.
In this part I add rho as a explictly read variable in addusdens, since it is used for "response charge densit
y"
not the "ground state density" in TDDFPT code. PWSCF tests show no impact. Please check.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6249 c92efa57-630b-4861-b058-cf58834340f0
output. Nothing nasty happens, but the determinant, which is calculated for
3x3 matrices only, will be incorrect. Not a big deal, since it is never used,
but an input matrix with large coefficients can result in a bogus error message.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6227 c92efa57-630b-4861-b058-cf58834340f0
Aschauer, to prevent problems on Lustre filesystem (whatever it is). It
should be harmless on all machines. Maybe it would be a good idea not to
read the same PP file from all processors, though.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6212 c92efa57-630b-4861-b058-cf58834340f0
modify the output organization. Otherwise after calling this routine
the images cannot write any more in their output files. Please check.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6202 c92efa57-630b-4861-b058-cf58834340f0
(seems to me a more appropriate place tahn Modules/). Minor cleanup: two
variables, one for CP and one for PW, with the same meaning and equally
misleading names (atomic_positions and tau_units) merged into one with
a more descriptive name (tau_format)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6165 c92efa57-630b-4861-b058-cf58834340f0
mp_global, which seems to me a more appropriate place. Many changes
but little stuff. Hopefully harmful, but no guarantee: please check!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6122 c92efa57-630b-4861-b058-cf58834340f0
to Modules/environment.f90 and generalized to PW and other codes.
PW/startup.f90 is kept as a wraper for now. The initial message in CP
looks now like the one in PW (please check if it satisfactory). The
compilation date has disappeared from info printed by CP: was it useful?
Makefiles and make.depends updated. ld1 does not depend any longer upon
files in PW/ . Miscellaneous cleanup.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6111 c92efa57-630b-4861-b058-cf58834340f0
coordinats in a relax calculation. I followed Tone's suggestion. The
delimiters for the final set of cordinates are just one of the possible
choiceis and can be easily changed in output_tau.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6036 c92efa57-630b-4861-b058-cf58834340f0
There may be more cases in which an energy term is missing from the
HFW energy (eg: external forces). Courtesy of Javier Fuhr.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5984 c92efa57-630b-4861-b058-cf58834340f0
it could not be used with a target theta of 90 degrees. Now it should work reasonably well for any (initial theta,target theta), although achieving convergence remains tricky in some cases.
Parameter lambda is not automatically decreased and then increased, contrary to what written in the docs. Documentation made consistent.
GS
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5980 c92efa57-630b-4861-b058-cf58834340f0
(for what is not a bug but a feature of standard f95: no allocatable arrays
in derived types); GWW made gfortran-compatible (#endif something is also
not standard ; removed unused allocate_bec and deallocate_bec; make.depend,
configure, doc updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5970 c92efa57-630b-4861-b058-cf58834340f0
any longer since a long time. Documentation and GUI updated (no warranty the
latter works). Further cleanup of nelec, neldw, nelup in the documentation
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5968 c92efa57-630b-4861-b058-cf58834340f0
now only tot_charge, tot_magnetization (REAL!) and multiplicity are available.
documentation updated
inputs in examples, tests and cptest updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5949 c92efa57-630b-4861-b058-cf58834340f0
(gamma_only, noncolin and generic k) a derived data-type bec_type is introduced
in becmod with component %r (for gamma real case), %nc (for non colinear case)
and %k (for the generic k case) .
The changes were tivial (rbecp -> becp%r, becp->becp%k, becp_nc->becp%nc) but
pervasive... I tried my best to test that everything is ok
stefano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5937 c92efa57-630b-4861-b058-cf58834340f0
Now assume_isolated is a character variable with values 'none' (default), 'makov-payne', 'dcc', or 'martyna-tuckerman'.
do_ee and which_compensation variables no longer in the input.
Details in the INPUT_PW.* files.
cluster_example and tests/cluster?.in also updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5935 c92efa57-630b-4861-b058-cf58834340f0
2) it doesn't have the subtle bug that was present two versions ago.
dqvan2.f90 also modified to fix the subtle bug (no openMP version yet).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5928 c92efa57-630b-4861-b058-cf58834340f0
add plugins dir (and related modif to Makefile) for "external applications"
add released wannier90 (from www.wannier90.org) in plugins
small modif exx example
small bug fixed in nscf calc save_in_cbands for compilation with -DEXX
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5927 c92efa57-630b-4861-b058-cf58834340f0
images in a cluster calculation. Still to be tested in parallel, it
has been tested for Gamma vs 0 0 0 and for nspin=1 and 2. Forces seem
to be ok. In the few cases considere there is no significant increase
of workload with respect to the periodic calculation.
plot_io.f90 moved from PP to flib because it may be needed
in PW/martyna_tuckeman.f90 for debugging and in this way circular
references are avoided. It only USE low-level modules like io_global,
kinds, and constants so it should be ok.
Module ws_base.f90 added in Modules. It deals with basic operations
associated to Wigner-Seitz cell. The implementation should be general;
it has been tested for SC and FCC only.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5911 c92efa57-630b-4861-b058-cf58834340f0
No advantage at this stage, but once these routines are moved into
CP/ and PW/ respectively, linking the autopilot module in PWscf
is no longer needed.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5908 c92efa57-630b-4861-b058-cf58834340f0
disk_io, I've put a check to prevent the user from doing it. Previously
the code would stop at second path iteration with very confusing
diagonalization errors.
LP
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5895 c92efa57-630b-4861-b058-cf58834340f0
the startup routine should be the same for PW and CP). By the way:
we are leaving the five initial characters of each column blank, for no
good reason. Maybe this dates back to the era of punched cards?
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5886 c92efa57-630b-4861-b058-cf58834340f0
Modules/vxccg.f90 split into atomic/vxcgc.f90 and flib/radial_gradients.f90
Modules/metagga.f90 moved to flib/metagga.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5884 c92efa57-630b-4861-b058-cf58834340f0
saw-tooth potential for slab calculationo with E-field.
the "physical" dimensions of the R-space grid are nr1,nr2,nr3 NOT nrx1,nrx2,nrx3
stefano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5862 c92efa57-630b-4861-b058-cf58834340f0
this is because some compiler (e.g. NEC compiler) was not able to properly
vectorize and parallelize the loop giving very bad performance.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5861 c92efa57-630b-4861-b058-cf58834340f0
fix clean_pw.f90 and wannier_clean (use_wannier part)
in new_occ.f90 : first_available_band set to INTEGER (else not compiling)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5825 c92efa57-630b-4861-b058-cf58834340f0
removed, a few REAL transformed into DBLE. Note that my previos statement
about REAL is overblown: REAl(C) is perfectly safe if C is a double precision
complex number. All changes should be safe.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5793 c92efa57-630b-4861-b058-cf58834340f0
occupations 'from_input', specify the occupations of the initial
atomic wavefunctions.
The bands are occupied according to their projections on the initial atomic
wavefunctions. Used to simulate isolated (possibly nonspherical) atoms.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5778 c92efa57-630b-4861-b058-cf58834340f0
(for wavefunctions) is not implemented for some exotic cases (scsl and
sunperf libraries, nec sx). This is now hidden into Modules/fft_scalar.f90
instead of appearing in cft3/cft3/fwfft/invfft interfaces called by codes.
It shouldn't make any difference for most common cases; it should just add
an intermediate call to a wrapper routine in the exotic cases. Tab removed.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5751 c92efa57-630b-4861-b058-cf58834340f0
if the number of processors are less or equal the number of atoms,
nothing is changed... atoms are distributed to processors
if the number of processors is greater than the number of atoms
the same atom can be assigned to more than one processor so that
the work for each atom can be shared.
All this is required for scalability of PAW simulation
- OMP parallelization
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5750 c92efa57-630b-4861-b058-cf58834340f0
if the number of processors are less or equal the number of atoms,
nothing is changed... atoms are distributed to processors
if the number of processors is greater than the number of atoms
the same atom can be assigned to more than one processor so that
the work for each atom can be shared.
All this is required for scalability of PAW simulation
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5749 c92efa57-630b-4861-b058-cf58834340f0
modules is provided by the Makefile in each subdirectory, rather than
by make.sys. No big advantage but neater solution than before
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5737 c92efa57-630b-4861-b058-cf58834340f0
changed.
The new signs agree with the tables of Koster, Dimmok, Wheeler, Statz,
Properties of the 32 point groups, and differ from those of
Koster, Space groups and their representations that were implemented so far.
In at least one example the former are correct. If somebody has evidence
that previous signs were correct, please provide an example.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5650 c92efa57-630b-4861-b058-cf58834340f0
by external libraries (e.g. recent ESSL). In order to prevent such problems,
erf has been renamed qe_erf and erfc qe_erfc
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5644 c92efa57-630b-4861-b058-cf58834340f0
one. There are cases in which the former works nicely and the latter
loses the symmetry: not great for a symmetry=preserving method.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5638 c92efa57-630b-4861-b058-cf58834340f0
and macroscopic field in a slab.
There is still a ~ 1.d-4 Ry difference in the total energy of the test example
to be investigated.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5630 c92efa57-630b-4861-b058-cf58834340f0
calculations using a unique saw(x) function (included in cell_base) in
all e-field related routines (energy, potential, forces, ..) and inclusion
of a macroscopic electronic dipole contribution in the mixing scheme.
This should solve charge sloshing problems that appeared with the prevous
version in metallic slabs.
Riccardo Sabatini and Stefano deGironcoli
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5627 c92efa57-630b-4861-b058-cf58834340f0
"outdir/" but in "outdir/prefix_#/". Furthermore, if using more than one
image, the processor ID nd_nmbr is repeated for each image.
As a consequence, at the end of the calculation, pw.x tries to delete the
restart files several time concurrently, crashing.
This is a temporary fix, as a way to delete the files properly should
be found. All the other file deletions are also wrong, but not harmful;
probably the entire stop_run is innapropriate for multi-image optimization
(i.e. it calls io_path_stop which has just been called directly by pwscf!).
LP
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5617 c92efa57-630b-4861-b058-cf58834340f0
By the way, it seems to me that a more straightforward approach would be:
'relax' and 'vc-relax': use bfgs, ignore ion_dynamics and cell_dynamics
'md', 'vc-md': use molecular dynamics, either free or damped
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5598 c92efa57-630b-4861-b058-cf58834340f0
1. added error handling for card_atomic_species
(ntyp too large produced funny but cryptic errors)
2. added visual feedback for parsing of costraints
(unless they are used for collective-variables constraints does give no
feedback during the entire calculation)
3. added a print of "waiting for input" just before actually reading it
(trying to reduce the number of "pw.x does nothing" requests for support)
LP
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5577 c92efa57-630b-4861-b058-cf58834340f0
to pwscf punch card).
Since the norm of the wfs change, knowing the level of approximation used
in the ground state calculation is crucial for post processing programs.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5516 c92efa57-630b-4861-b058-cf58834340f0
projectors in USPPs. Hopefully this will allow one to study larger systems.
The modifications are done primarily keeping TDDFPT code in mind
(a branch of QE, you may see detailed explanation in qe-forge which I am trying
to keep tightly integrated). Please do not modify/beautify/make more elegant
the corresponding subroutines without prior notice, due to their dependencies.
I have tested that the current modifications do not alter the behaviour of pw.x
other than designed with a number of small tests in HG1.
Some Pointers:
-All the new subroutines reside in PW/realus.f90
-A new flag real_space in &electrons control the implementation
-tqr flag is treated seperately.
-The implementation works only for (serial) gamma point single point calculations.
ToDo:
-I have written K point and task groups implementations of most of the corresponding routines, but did not have time to implement.
-Parallelism issues are still to be checked.
-The discrepancy in total energy is <0.002 eV for cutoff of 55Ry/550Ry however,
there are some strange force components. I do not know how this will effect
a possible optimization scheme.
Other:
Trying the compile CVS version in HG1 of sissa, using the "default" compiler
sets, I encountered a very strange compiler bug. Please have a look at
Modules/read_cards.f90 for details. Remove the stupid workaround to your liking.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5493 c92efa57-630b-4861-b058-cf58834340f0