times-software / feff10

Other
23 stars 13 forks source link

Errors in running RIXS examples #26

Open KlausMeng opened 3 weeks ago

KlausMeng commented 3 weeks ago

Dear Developers,

I've been trying to learn how to simulate RIXS maps from FEFF10 but I stuck at RXIS examples as I found some errors and issues there.

  1. The comment in the rixs.sh is missing. It seems that # 2 is missing as the comment directly jumped from # 1 to # 3.
#!/bin/bash
# Define feff command
pd=`pwd`
feffcmd="$pd/../../bin/feff"
feffdir="$pd/../../bin/Seq"
# 1. Locate the EDGE card and get the two edges. I am not being careful about comments after the card.
edges=( `grep -i '^[\ \t]*EDGE' feff.inp |sed -e's/EDGE//g' -e's/\r//g' -e's/\n//g'` )
for edge in ${edges[@]}
do
    # 3. Set up directories.
        echo "edge=$edge"
    mkdir -p ${edge}

    # 4. Make feff.inp for each edge
    if [ $edge == 'VAL' ] # Not being careful about case anywhere.
    then

        # Make VAL/feff.inp
        # Put COREHOLE NONE, RLPRINT, and EDGE into feff.inp
        echo 'COREHOLE NONE' > VAL/feff.inp
        echo 'RLPRINT' >> VAL/feff.inp
        echo "EDGE ${edges[0]}" >> VAL/feff.inp

        (more codes omitted...)
  1. Errors in rixs.log. After running the rixs.sh, the rixs.log shows the following message:
Launching FEFF version FEFF 10.0.0
  XES:
Core hole lifetime is   5.171 eV.
Your calculation:
 Pt- 0.008
Pt L3 edge XES using RPA corehole.
Using:     * Self-Consistent Field potentials
Using cards:   ATOMS CONTROL EXCHANGE TITLE PRINT POTENTIALS EDGE SCF FMS S02 XES COREHOLE EGRID RIXS

Calculating atomic potentials ...
    overlapped atomic potential and density for unique potential    0
    overlapped atomic potential and density for unique potential    1
Done with module: atomic potentials.

************************************************************************************
************************************************************************************
 Error opening file: rl_1.dat
 OPEN returned error number    2
************************************************************************************
************************************************************************************

It seems that rl_1.dat and rl_2.dat are missing in the RIXS folder. Though I tried to paste rl.dat files from L3 and VAL folders created during the calculation, I still got Fortran runtime error like this:

At line 56 of file rdxsphrxs.f90 (unit = 1, file = 'fort.1')
Fortran runtime error: End of file

Error termination. Backtrace:
#0  0x7f420b50a960 in ???
#1  0x7f420b50b4d9 in ???
#2  0x7f420b50c10f in ???
#3  0x7f420b75f17b in ???
#4  0x7f420b75f752 in ???
#5  0x7f420b75c230 in ???
#6  0x7f420b760ae5 in ???
#7  0x7f420b761e55 in ???
#8  0x5637825f4d83 in rdxsphrxs_
        at /home/klaus/src/feff10-10.0.0/src/RIXS/rdxsphrxs.f90:56
#9  0x5637825d82ad in rixs
        at /home/klaus/src/feff10-10.0.0/src/RIXS/rixs.f90:146
#10  0x56378258f5ae in main
        at /home/klaus/src/feff10-10.0.0/src/RIXS/rixs.f90:11

I was wondering if this problem is related to compilation issues as I'm running feff10 on wsl Ubuntu 22.04 and used gfortran compiler. The Compiler.mk file is as follows

########################################
#              gfortran
########################################
# FDV, cygwin
  F90 = gfortran
  FLAGS = -O3 -g -ffree-line-length-none -cpp -fallow-argument-mismatch 

########################################
#              mkl 
########################################
## Intel MKL:
MKLSEQUENTIALLINUX =  $(MKLROOT)/lib/em64t/libmkl_blas95_lp64.a $(MKLROOT)/lib/em64t/libmkl_lapack95_lp64.a -Wl,--start-group  $(MKLROOT)/lib/em64t/libmkl_intel_lp64.a $(MKLROOT)/lib/em64t/libmkl_sequential.a $(MKLROOT)/lib/em64t/libmkl_core.a -Wl,--end-group -lpthread -lm

# Choose the right OS here :
#MKL_LDFLAGS = $(MKLSEQUENTIALMAC)
 MKL_LDFLAGS = $(MKLSEQUENTIALLINUX)
#MKL_FCINCLUDE = -I$(MKLROOT)/include/em64t/lp64 -I$(MKLROOT)/include

# If no MKL, use these defaults instead (lu.f90 provides non-optimized blas/lapack)
 FEFF_LDFLAGS = 
 FEFF_FCINCLUDE =

##### Make your final choice here :
ifdef USE_MKL
# 1/ Use the MKL settings defined above:
    LDFLAGS = $(MKL_LDFLAGS)
    FCINCLUDE = $(MKL_FCINCLUDE)
    DEPTYPE = _MKL
else
# 2/ Use the standard FEFF blas/lapack (slower but no need to install MKL):
    LDFLAGS = 
    FCINCLUDE = 
    DEPTYPE = 
endif

I simply used the settings of gfortran for cygwin and disabled MPI, and I was a bit confused about MKL so I didn't enable it and leave the rest as-is (except for choosing the OS at MKL_LDFLAGS = $(MKLSEQUENTIALLINUX))

Your help is greatly appreciated and thank you for your endeavor in developing FEFF.

Best regards,

Xiangchao

jjkas commented 3 weeks ago

Hi Xiangchao, You will want to use Corvus to run the RIXS calculations. However, I am fixing an issue with the Corvus installer at the moment. It's nearly ready, but needs a bit of testing. What operating system are you using?

On Sun, Aug 18, 2024 at 10:26 AM Xiangchao Meng @.***> wrote:

Dear Developers,

I've been trying to learn how to simulate RIXS maps from FEFF10 but I stuck at RXIS examples as I found some errors and issues there.

  1. The comment in the rixs.sh is missing. It seems that # 2 is missing as the comment directly jumped from # 1 to # 3.

!/bin/bash

Define feff command

pd=pwd feffcmd="$pd/../../bin/feff" feffdir="$pd/../../bin/Seq"

1. Locate the EDGE card and get the two edges. I am not being careful about comments after the card.

edges=( grep -i '^[\ \t]*EDGE' feff.inp |sed -e's/EDGE//g' -e's/\r//g' -e's/\n//g' ) for edge in ${edges[@]} do

3. Set up directories.

    echo "edge=$edge"

mkdir -p ${edge}

4. Make feff.inp for each edge

if [ $edge == 'VAL' ] # Not being careful about case anywhere. then

  # Make VAL/feff.inp
  # Put COREHOLE NONE, RLPRINT, and EDGE into feff.inp
  echo 'COREHOLE NONE' > VAL/feff.inp
  echo 'RLPRINT' >> VAL/feff.inp
  echo "EDGE ${edges[0]}" >> VAL/feff.inp

  (more codes omitted...)
  1. Errors in rixs.log. After running the rixs.sh, the rixs.log shows the following message:

Launching FEFF version FEFF 10.0.0 XES: Core hole lifetime is 5.171 eV. Your calculation: Pt- 0.008 Pt L3 edge XES using RPA corehole. Using: * Self-Consistent Field potentials Using cards: ATOMS CONTROL EXCHANGE TITLE PRINT POTENTIALS EDGE SCF FMS S02 XES COREHOLE EGRID RIXS

Calculating atomic potentials ... overlapped atomic potential and density for unique potential 0 overlapped atomic potential and density for unique potential 1 Done with module: atomic potentials.



Error opening file: rl_1.dat OPEN returned error number 2



It seems that rl_1.dat and rl_2.dat are missing in the RIXS folder. Though I tried to paste rl.dat files from L3 and VAL folders created during the calculation, I still got Fortran runtime error like this:

At line 56 of file rdxsphrxs.f90 (unit = 1, file = 'fort.1') Fortran runtime error: End of file

Error termination. Backtrace:

0 0x7f420b50a960 in ???

1 0x7f420b50b4d9 in ???

2 0x7f420b50c10f in ???

3 0x7f420b75f17b in ???

4 0x7f420b75f752 in ???

5 0x7f420b75c230 in ???

6 0x7f420b760ae5 in ???

7 0x7f420b761e55 in ???

8 0x5637825f4d83 in rdxsphrxs_

    at /home/klaus/src/feff10-10.0.0/src/RIXS/rdxsphrxs.f90:56

9 0x5637825d82ad in rixs

    at /home/klaus/src/feff10-10.0.0/src/RIXS/rixs.f90:146

10 0x56378258f5ae in main

    at /home/klaus/src/feff10-10.0.0/src/RIXS/rixs.f90:11

I was wondering if this problem is related to compilation issues as I'm running feff10 on wsl Ubuntu 22.04 and used gfortran compiler. The Compiler.mk file is as follows

########################################

gfortran

########################################

FDV, cygwin

F90 = gfortran FLAGS = -O3 -g -ffree-line-length-none -cpp -fallow-argument-mismatch

########################################

mkl

########################################

Intel MKL:

MKLSEQUENTIALLINUX = $(MKLROOT)/lib/em64t/libmkl_blas95_lp64.a $(MKLROOT)/lib/em64t/libmkl_lapack95_lp64.a -Wl,--start-group $(MKLROOT)/lib/em64t/libmkl_intel_lp64.a $(MKLROOT)/lib/em64t/libmkl_sequential.a $(MKLROOT)/lib/em64t/libmkl_core.a -Wl,--end-group -lpthread -lm

Choose the right OS here :

MKL_LDFLAGS = $(MKLSEQUENTIALMAC)

MKL_LDFLAGS = $(MKLSEQUENTIALLINUX)

MKL_FCINCLUDE = -I$(MKLROOT)/include/em64t/lp64 -I$(MKLROOT)/include

If no MKL, use these defaults instead (lu.f90 provides non-optimized blas/lapack)

FEFF_LDFLAGS = FEFF_FCINCLUDE =

Make your final choice here :

ifdef USE_MKL

1/ Use the MKL settings defined above:

LDFLAGS = $(MKL_LDFLAGS) FCINCLUDE = $(MKL_FCINCLUDE) DEPTYPE = _MKL else

2/ Use the standard FEFF blas/lapack (slower but no need to install MKL):

LDFLAGS = FCINCLUDE = DEPTYPE = endif

I simply used the settings of gfortran for cygwin and disabled MPI, and I was a bit confused about MKL so I didn't enable it and leave the rest as-is (except for choosing the OS at MKL_LDFLAGS = $(MKLSEQUENTIALLINUX))

Your help is greatly appreciated and thank you for your endeavor in developing FEFF.

Best regards,

Xiangchao

— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/times-software/feff10/issues/26__;!!K-Hz7m0Vt54!iVqhx-3lDJq2wCf2Sf2BWzG05jtBgwyWeLte5HPTBXTvREOSR_vjYZvxUscQeQzBql4j-LBiIhb6IVB_JEj75A$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AA2RF23UY5TARHQ3IC3B3TTZSDKKRAVCNFSM6AAAAABMWRBZM2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGQ3TEMBWHE3TEMQ__;!!K-Hz7m0Vt54!iVqhx-3lDJq2wCf2Sf2BWzG05jtBgwyWeLte5HPTBXTvREOSR_vjYZvxUscQeQzBql4j-LBiIhb6IVB8qRFhtA$ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Joshua Kas (He/Him/His) Research Assistant Professor University of Washington

KlausMeng commented 3 weeks ago

Hi Josh,

Thank you for getting back to me.

I am currently running FEFF10 on Windows Subsystem for Linux (WSL) with Ubuntu 22.04 and I compiled FEFF only in sequential mode using gfortran (i.e. no MPI or MKL). I also have access to some clusters where MPI and/or OpenMP are supported so if Corvus is available I can also build Corvus+Feff on clusters. I believe the cluster supports Cray C/C++, Cray Fortran, GCC and gfortran compilers, though I haven't dived into details of them.

May I ask if the RIXS calculation workflow will also be released along with Corvus?

Looking forward to your reply and thank you for your help in advance.

Best wishes,

Xiangchao

jjkas commented 3 weeks ago

Hi Xiangchao, Yes, the RIXS workflow is part of Corvus. Cheers, Josh

On Mon, Aug 19, 2024 at 4:07 PM Xiangchao Meng @.***> wrote:

Hi Josh,

Thank you for getting back to me.

I am currently running FEFF10 on Windows Subsystem for Linux (WSL) with Ubuntu 22.04 and I compiled FEFF only in sequential mode using gfortran (i.e. no MPI or MKL). I also have access to some clusters where MPI and/or OpenMP are supported so if Corvus is available I can also build Corvus+Feff on clusters. I believe the cluster supports Cray C/C++, Cray Fortran, GCC and gfortran compilers, though I haven't dived into details of them.

May I ask if the RIXS calculation workflow will also be released along with Corvus?

Looking forward to your reply and thank you for your help in advance.

Best wishes,

Xiangchao

— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/times-software/feff10/issues/26*issuecomment-2297668755__;Iw!!K-Hz7m0Vt54!kPJML0rWsBLd4yyQjQfDNM6RarIQi6IVgXqjiGhI6AjkXtpGmyLErR7Fmcri34Fm6jnxKjYXzwXW986RpJPAdw$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AA2RF25MYY4IJV7GITZFBJTZSJ3ETAVCNFSM6AAAAABMWRBZM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJXGY3DQNZVGU__;!!K-Hz7m0Vt54!kPJML0rWsBLd4yyQjQfDNM6RarIQi6IVgXqjiGhI6AjkXtpGmyLErR7Fmcri34Fm6jnxKjYXzwXW984KN4b9Gg$ . You are receiving this because you commented.Message ID: @.***>

-- Joshua Kas (He/Him/His) Research Assistant Professor University of Washington

KlausMeng commented 3 weeks ago

[heart] Meng, Xiangchao reacted to your message:


From: jjkas @.> Sent: Tuesday, August 20, 2024 3:57:10 PM To: times-software/feff10 @.> Cc: Meng, Xiangchao @.>; Author @.> Subject: Re: [times-software/feff10] Errors in running RIXS examples (Issue #26)

⚠ Caution: External sender

Hi Xiangchao, Yes, the RIXS workflow is part of Corvus. Cheers, Josh

On Mon, Aug 19, 2024 at 4:07 PM Xiangchao Meng @.***> wrote:

Hi Josh,

Thank you for getting back to me.

I am currently running FEFF10 on Windows Subsystem for Linux (WSL) with Ubuntu 22.04 and I compiled FEFF only in sequential mode using gfortran (i.e. no MPI or MKL). I also have access to some clusters where MPI and/or OpenMP are supported so if Corvus is available I can also build Corvus+Feff on clusters. I believe the cluster supports Cray C/C++, Cray Fortran, GCC and gfortran compilers, though I haven't dived into details of them.

May I ask if the RIXS calculation workflow will also be released along with Corvus?

Looking forward to your reply and thank you for your help in advance.

Best wishes,

Xiangchao

— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/times-software/feff10/issues/26*issuecomment-2297668755__;Iw!!K-Hz7m0Vt54!kPJML0rWsBLd4yyQjQfDNM6RarIQi6IVgXqjiGhI6AjkXtpGmyLErR7Fmcri34Fm6jnxKjYXzwXW986RpJPAdw$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AA2RF25MYY4IJV7GITZFBJTZSJ3ETAVCNFSM6AAAAABMWRBZM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJXGY3DQNZVGU__;!!K-Hz7m0Vt54!kPJML0rWsBLd4yyQjQfDNM6RarIQi6IVgXqjiGhI6AjkXtpGmyLErR7Fmcri34Fm6jnxKjYXzwXW984KN4b9Gg$ . You are receiving this because you commented.Message ID: @.***>

-- Joshua Kas (He/Him/His) Research Assistant Professor University of Washington

— Reply to this email directly, view it on GitHubhttps://github.com/times-software/feff10/issues/26#issuecomment-2299197949, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A3XH33YW7TDYIAVK6446K33ZSNRNNAVCNFSM6AAAAABMWRBZM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJZGE4TOOJUHE. You are receiving this because you authored the thread.Message ID: @.***>