optados-developers / optados

Official Repository of the Optados code
http://www.optados.org
21 stars 22 forks source link

Added xmgrace output for pdos calculation similar to dos calculations #58

Open Inker2401 opened 4 months ago

Inker2401 commented 4 months ago

A fairly self-contained routine to OptaDOS to write a PDOS batch file to be plotted by xmgrace similar to a DOS. Tested to work in both series and parallel

This is mainly meant for convenience instead of designing the prettiest plots for publication. The main concern is that on top of the 15 colours we have for xmgrace, 'white' is also a colour used (bit of a problem for a white background). Defining additional colours and/or avoiding setting the colour to white may be useful...

In addition, the labelling may not be entirely correct when using hand-selected projectors. This is because all the labels for the projector (symbol, species, species_num and angular momentum) are written to the label even when some are superfluous. Labelling is fine if using species, species_ang or sites for pdos keyword.

Bookkeeping for it is a bit of a pain so it's easier to adjust the plot by hand...

BaTiO3 pdos (species - spin polarised)

BaTiO3 pdos species ang

ajm143 commented 2 months ago

@Inker2401 Apologies for taking so long to look at this. I'm on it now. AJM.

ajm143 commented 2 weeks ago

Compiles ok NAG ifort pgf90 AOCC oneAPI

Failure in sunf95

module od_io
       ^     
"io.f90", Line = 36, Column = 8: ERROR: The compiler has detected errors in module "OD_IO".  No module information file will be created for this module.

    error stop "Optados error: examine the output/error file for details"
    ^                                                                     
"io.f90", Line = 104, Column = 5: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for data object "ERROR".
          ^                                                               
"io.f90", Line = 104, Column = 11: ERROR: Unknown statement.  Expected assignment statement but found "S" instead of "=" or "=>".

f90comp: 188 SOURCE LINES
f90comp: 3 ERRORS, 0 WARNINGS, 0 OTHER MESSAGES, 0 ANSI

This doesn't look like a bug related to this PR. So I will mend in ''devel'' and merge back into here.

ajm143 commented 2 weeks ago

Can't mend it. Oracle's compiler does not fully implement the F2008 standard.

Please can we also have a test added to the test suite for generating xmgrace output. It is particularly important for community contributions to have tests, so that we know whether we've broken something in code we didn't write.

The test-suite is fully featured (which can make it a tad impenetrable), so happy to advise the steps if necessary. I suggest it's a simple Si2 calculation which tests the output .agr against a benchmark.

Once we have that, and we have the few tweaks in the code sorted I'm happy to accept the PR.

Many thanks, Andrew

Inker2401 commented 2 weeks ago

Sure I'll try to get it done over the weekend. It looks like you use testcode which makes things easier and it all seems to be well-documented so it should be reasonably straight-forward.