On 10/25/2014 09:42 PM, Majid Yazdani wrote:
If one would like to shift up the unoccupied eigenvalues by a constant
for a specific test, one would change the case.vector_* files. If seems
that for this purpose, it is better to do it by case.energy_* files.
But, case.energy will not be read by optic programs, e.eg
<http://e.eg/>., joint, which will be not the case for case.vector_*
files. Therefore, for performing some tests, sometimes it is necessary
to change the case.vector_* files. The problem is that these files are
written in binary format and not plain text.

I do not know where ‘joint’ gets its eigenenergies from, but ‘kram’ can take an “energy shift” (a.k.a. “scissors operator”) option. Maybe that can help.

But, why the size of the case.vector_* files after converting to the
plain text (by vectoascii.f) is extremely larger than the case.evergy_*
files. Maybe the contain something different information.

Certainly. ‘energy’ contains only the eigenvalues (one number per state), ‘vector’ the eigenvectors (many coefficients per state).

Here, I am a little bit confused. If the above numbers represent the
eigenvalues, why the magnitudes of them are close to zero, but the
magnitudes of the numbers given in the case.energy_* are between -7 Ry
to 2 Ry (around the energy window in case.in1c)?

If you need to know precisely which information is in the ‘vector’ file in what order, I think your best bet is to read the code that writes or reads them. I cannot tell you that without looking it up myself.

If you think that there is another better way to shift up the unoccupied
energies so that the changed made in energies can be read by the optic
programs, please let us know. Maybe here Peter can make more clear the
problem.

Sounds like the scissors operator should do it.

Not  that I know of.  Of course, you can try “reversing” the input code …
I believe you are the best to reverse reads and writes in a suitable
manner in the vec2ascii.f so that the procedure is revered, as we really
do not know the format of the original vector files.

This task more or less just means replacing every READ() with a WRITE().

What is the original format of the case.vectores which are produced by
the wien2k code? Are they  produced as plain text files (or other format
different from the binary) and then stored as binary files or they are
produced as binary files at the first by the wien2k code?

They are written in binary. In the ‘def’ files, some files are listed as ‘formatted’, this means plain-text and they are written using FORMAT strings; others are ‘unformatted’, this means binary and no FORMATs in READ()/WRITE().

If this is the way you want to do it, I would just read the vector record by record and write it back out (in binary) to a new file immediately, applying whatever changes you need. If you wanted to get fancy, you could probably use STREAM access to replace only the changed records in the original file in-place.


        Elias

_______________________________________________
Wien mailing list
Wien@zeus.theochem.tuwien.ac.at
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
SEARCH the MAILING-LIST at:  
http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html

Reply via email to