- basic cell and ionic variables moved frpm pwcom to
cell_base and ions_base .
cell_base modules and ions_base modules should be initialized
through the use of cell_base_init and ions_base_init, this after
having read the namelists and the cards .
IN THE FUTURE NONE OF THE VARIABLES IN THE BASIC MODULES SHOULD
BE SET IN THE MAIN CODES, BUT THROUGH A CALL TO SOME INIT
FUNCTIONS CONTAINED IN THE BASIC MODULE ITSELF.
THE IDEA IS THAT THE BASIC VARIABLES SHOULD BE USED AS
READ-ONLY. UNFORTUNATELY IN F90 THERE IS NO POSSIBILITY
TO SET A READ ONLY ATTRIBUTE.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@702 c92efa57-630b-4861-b058-cf58834340f0
Molecular Dynamics based algorithm partially rewritten:
both standard and damped MD are performed with the velocity Verlet
scheme (with or without constrains).
Renata's subroutines are used only in the framework of variable
cell.
constrain.f90 file is no longer needed: cnstrains are set in the
input file (see CONSTRAINTS CARD) with the same input format used
in FPMD. An arbitrary number of constrains can be set.
In the case of constrained relaxation the damped MD
algorithm is used instead of BFGS.
When restart_mode = "from_scratch" many reastr files are removed
from the scratch directory.
Several other modifications here and there. (C.S.)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@675 c92efa57-630b-4861-b058-cf58834340f0
I do not include NEB dynamics modules in this version,
because I want to wait for common neb modules,
to be built as soon as this version has been released
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@617 c92efa57-630b-4861-b058-cf58834340f0
order to allow to specify how to fill starting ns occupation
matrices. Useful when the default choice take the wrong
(or not desired) path.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@598 c92efa57-630b-4861-b058-cf58834340f0
the starting configuration is close to the minimum: if (and only in this case) the trust_radius
is too long and the step fails to reduce the energy (Enew>Eold), then the new trust_radius is
obtained with a quadratic interpolation (line search) that is guaranteed to have a good minimum
(previously the trust_radius was simply halved).
For test purpose a precompiler flag (OLDRECIPE) can be defined in the file.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@586 c92efa57-630b-4861-b058-cf58834340f0
as requested by Tone - examples updated with the exception of example12
(please verify if they are ok). Version number updated to 2.0 .
configure => configure.old, configure.new => configure
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@553 c92efa57-630b-4861-b058-cf58834340f0
correct place (kinds); module "varie" replaced by "control_flags" (not
yet in pwcom, though) - many many files changed.
64-bit cpus (Opteron, maybe Itanium) should now work if __LINUX64 is defined
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@513 c92efa57-630b-4861-b058-cf58834340f0
This value of ethr is overwritten (with a warning message) in the case of a phonon calculation (lphonon flag added). If diago_thr_init is not specified in the input file it is automatically set in setup.f90 (for example in the case of a nscf calculation ethr = tr2 / nelec).
I hope this policy is appropriate for all kind of calculations.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@511 c92efa57-630b-4861-b058-cf58834340f0
- variables in module pwcom/varie moved to Modules/control_flags
- module PW/format moved to Modules/format
- in module PW/supercell added workaround for AUTOMATIC variable and
AIX compilers
- PH Makefile added rbecmod.o
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@468 c92efa57-630b-4861-b058-cf58834340f0
NEB/ removed from makedeps.sh
plotrho: added possibility to have contour lines of various type
A few undefined variables defined (again)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@465 c92efa57-630b-4861-b058-cf58834340f0
A linear scaling BFGS minimization algorithm has been implemented too.
The two test cases of example3 are optimized with a performance comparable to
the old BFGS, but in other systems where old BFGS fails the new implementation
has given good results. On the side of linear scaling algorithm much has still
to be done.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@436 c92efa57-630b-4861-b058-cf58834340f0
from bfgs stuff.
The new implementation of bfgs now seems to work reasonably good. It can be tested using
the pwneb.x program with exactly the same input file needed by pw.x for a bfgs relaxation.
pw.x still uses the old bfgs implementation (useful for comparison).
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@435 c92efa57-630b-4861-b058-cf58834340f0
a large conv_thr (~1.D-4,1.D-5), provided the upscale variable is setted in order to
have a final conv_thr strict enough (~1.D-8). This is due to the fact that no line
search is needed (the place where high accuracy in the forces is needed).
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@433 c92efa57-630b-4861-b058-cf58834340f0
added in Module. (see references in the code)
At present it is used in the pwneb code only (see routine NEB/move_ions).
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@430 c92efa57-630b-4861-b058-cf58834340f0
- module filnam in pwcom moved to io_files module
- module units in pwcom moved to io_file
From now on, all file names and their unit and attributes (i.e. reclen)
should be defined in Modules/io_files.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@382 c92efa57-630b-4861-b058-cf58834340f0
- ^M removed from pseudo files
- wavefunctions arrais moved to module
wavefunctions_module, common to all codes
this is required to reduce duplicated subroutine
- new lapack subroutine, called from PWCOND,
added to lib/lapack.f lib/lapack_ibm.f
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@381 c92efa57-630b-4861-b058-cf58834340f0
kept fixed (Carlo Sbraccia)
"Total force" now prints a more sensible quantity:
\sqrt(\sum_{i,n} f_i(n)^2) instead of \sum_{i,n} |f_i(n)|
Cleanup in several routines and in modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@334 c92efa57-630b-4861-b058-cf58834340f0
variable wf_collect added to the control namelist.
This logical variable will be used in pw to
collect wave funcions at the end of a parallel run.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@295 c92efa57-630b-4861-b058-cf58834340f0
- substitution of USE ... with USE ... ONLY ...
- directories and filenames moved to io_files,
common to all codes
- clean up in control_flags
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@290 c92efa57-630b-4861-b058-cf58834340f0
From now on, all new input variables should be added
to this module, and then copied to the code internal
variables in the input.f90 subroutine
The namelists and cards parsers are in :
Modules/read_namelists.f90 and Modules/read_cards.f90
files input_parameters.f90 read_namelists.f90 read_cards.f90
are shared by all codes, while each code has its own version
of input.f90 ( used to copy input values into internals variables ).
EXAMPLE:
suppose you need to add a new input variable called "pippo"
to the namelist control, then:
1) add pippo to the input_parameters.f90 file containing the
namelist control
INTEGER :: pippo = 0
NAMELIST / control / ....., pippo
remember: always set an initialization value!
2) add pippo to the control_default subroutine
( cantained in module read_namelists.f90 )
subroutine control_default( prog )
...
IF( prog == 'PW' ) pippo = 10
...
end subroutine
this routine set the default value for pippo,
that could vary with the code
3) add pippo to the control_bcast subroutine
( cantained in module read_namelists.f90 )
subroutine control_bcast( )
...
call mp_bcast( pippo )
...
end subroutine
4) add pippo to the control_checkin subroutine
( cantained in module read_namelists.f90 )
subroutine control_checking( prog )
...
IF( pippo < 0 ) &
CALL error(' control_checkin ',' variable pippo less than 0 ', 1 )
...
end subroutine
5) Copy the value of pippo in the code internal variables
( file input.f90 )
subroutine iosys()
use input_parameters, only: ...., pippo
use pwcom, only: ....., myvar
...
call read_namelists( 'PW' )
...
myvar = pippo
...
end subroutine
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@282 c92efa57-630b-4861-b058-cf58834340f0
PRIVATE keyword added to all FPMD source files,
variables that have to be known outside the module
are explicitly declared as PUBLIC
CPV:
now CP uses the same input parser as FPMD
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@267 c92efa57-630b-4861-b058-cf58834340f0
The unit cell can be given using crystallographic parameters a, b, c,
(all in A), cosab cosac, cosbc . Misc. cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@263 c92efa57-630b-4861-b058-cf58834340f0
This sub. share the input parsers (read_namelist and read_cards)
with FPMD. Soon it will be possible to initialize and call all
CP subroutines within FPMD, and viceversa.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@259 c92efa57-630b-4861-b058-cf58834340f0
io_base: strings with the name of the data sections added to the
restart file, this will allow R/W of data sections in any order
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@257 c92efa57-630b-4861-b058-cf58834340f0
new hpsort that should solve the problems with the unique
g vectors ordering, d1, d2, d3 eliminated from ggens of all
the codes.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@253 c92efa57-630b-4861-b058-cf58834340f0
and used by all codes,
as common latgen it has been used the one contained in CPV,
sice this version solve some problems related to left-handed cell
new common module ions_base with ionic basic variables
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@247 c92efa57-630b-4861-b058-cf58834340f0
intel compiler bug workaround: it seems that the intel compiler
does not set the save attribute to the module variables unless
there is an explicit initialization, this only for module not directly
accessible to the main (if they are not in the same directory).
The workaround is to set an initial value for all variables
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@243 c92efa57-630b-4861-b058-cf58834340f0
DEC __QSW TRU64 => __ALPHA for Alpha machines (with OSF/Tru64 or
whatever it is called now: any Alpha Linux around?)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@232 c92efa57-630b-4861-b058-cf58834340f0
in fft_scalar.f90 there wasn't all proper #ifdef
bc_c_phase.f900 : when continuing a string on a new line an "&"
character should be added on the new line too!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@230 c92efa57-630b-4861-b058-cf58834340f0
- serial code sticks enabled with fftw to (then we should check when
it is worth to use them, in most cases seems convenient)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@197 c92efa57-630b-4861-b058-cf58834340f0
- ifdef __PARA removed from the main subroutine of PW, Gamma, D3, PP, PH
now startup is called both for serial and parallel codes.
- cfts_3 included in fft_scalar ( tested for __AIX )
- module pencils in serial executions is no more needed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@189 c92efa57-630b-4861-b058-cf58834340f0
..... fixed by PG few minutes ago!
PW interfaced to Module/fft_scalar.f90 when __FFTW is defined.
Extensive tests of parallel and serial execution for all codes,
has been done on ALPHA system.
In pw_examples/example6 found a problem in parallel execution with 4 procs,
related to stdin (I've got an end of file on stdin), no problem
for the serial execution.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@176 c92efa57-630b-4861-b058-cf58834340f0
cleaning + removing of redundant files ( now in Modules )
now FPMD rely entirely on Module/fft_scalar and Module/fft_base
CPV:
fft drivers, in the parallel case, now rely entirely on fft_scalar
CPV depends on FFTW only through fft_scalar which in turn calls
the wrappers contained in clib/fft_sticks, in other words CPV and
FPMD are now completely isolated from FFTW primitives.
PW:
clocks.f90 moved to Modules
scnds.f90 moved to flib
When __AIX is defined PW now uses Module/fft_scalar drivers too.
For testing and debugging, usage of fft_scalar or
cft_sp drivers can be selected, for the time being, defining or undefining the
__FFT_MODULE_DRV macro in the cft3.f90 and cft3s.f90 files.
fft_scatter has been moved to Module/fft_base, file PW/fft_scatter.f90
is still there for testing and debugging
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@170 c92efa57-630b-4861-b058-cf58834340f0
I've added a new module, fft_types, containing
a structure for the fft data layout description, this is
common to all cades and independent to a particular grid.
This data structure will be used in few general high level fft drivers.
Another module, fft_base, contains the scatter algorithms,
and low level fft auxiliary functions.
Test with the new data structure are being done with CP and FPMD.
Yet another module, fft_scalar (not yet in the repository),
will contain the scalar wrapper to the machine specific ffts
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@149 c92efa57-630b-4861-b058-cf58834340f0
last fixatom atoms (with the same input procedure as the bfgs
minimization).
- LDA+U part has been modified in order run also in the not
spin-polarized case (some testing still neeeded).
- Davidson diagonalization returns best estimate for
eigenvalues and eigenvectors also in the case that not all
roots have converged. This is more consistent and should
somehow alleviate the problem of WARNING messages in scf and
band structure run.
- Number of beta function in pseudopotentials increased to 8.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@130 c92efa57-630b-4861-b058-cf58834340f0
using, when available, fast system library (like mass)
- new module stick_base, that will contain common subroutines
to compute stick distributions
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@124 c92efa57-630b-4861-b058-cf58834340f0
- Startup subroutines of all codes now calls
mp_start and mp_env mp module subroutines instead of
mpi_... directly. This is a first step in the direction
of hiding the communications within a few basic modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@120 c92efa57-630b-4861-b058-cf58834340f0
- Some common parameters that were defined in different places for different codes,
has been move to Modules/parameters
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@106 c92efa57-630b-4861-b058-cf58834340f0
all FPMD related subs moved back to FPMD directory.
2) All Make.fpmd... merged with Make.cp... and removed.
3) "use parameter .." added to all cft_3 subroutines .
4) hpsort.f90 erf.f90 simpson.f90 moved to flib .
everything seem to compile fine,
at least on IBM
carlo
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@67 c92efa57-630b-4861-b058-cf58834340f0
- some new pseudo
- some new cp_examples
- NEW shared module constants, this is the merge of FPMD and PW constants module
- NEW fpmd2upf pseudo converter (from fpmd format to upf )
carlo
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@22 c92efa57-630b-4861-b058-cf58834340f0