First, many thanks to Andrea and Myrta for valuable explanation on metal systems. Now I have some new questions.
For metals, an accepted routine is to split the dielectric function into the intraband contribution, which is cast in the form known from the Drude free electron theory, and the interband contribution [J. Phys. Condens. Matter. 19, 196105 (2007)]. Does Yambo indeed calculate the interband contribution only or altogether (both interband and intraband)?
If only the interband contribution is caclulated, the dielectric function should not diverge in the long wavelength limit. In fact, only another part from Drude free electron lead to diverge for ideal metal. Am I right? If yes, the BSE equation in principle should work, no matter that the system has excitonic effects or not (I mean in principle, we should not forbid/disallow this kind of calculations in the code. ). Am I right? Another question: do you expect some difference on the calculated spectra on q--->0 (yambo -b -o b -y h and change 'xc' to 'x' in yambo.in) and q=0 (yambo -o c)? If yes, what's the physics behind?
Now let's forget about the BSE instead using RPA. I have done a test calculation on the optical spectra of Aluminum , which is well-established both from experiment and theory [Phys. Rev. B 3, 1898 (1971) and Phys. Rev. Lett. 25, 156 (1970)]. But unfortunately I didn't obtain a nice spectrum, that is, the first peak is rather strong than the previous calculations and experiments.
Well, comparing with your paper on cooper and silver [Phys. Rev. Lett. 91, 176402 (2003)], they both are not very good in terms of the absolute value. But now we even didn't obtain a good curve in terms of relative intensity

Al.scf.in
&control
calculation='scf'
restart_mode='from_scratch',
prefix='al'
tprnfor = .true.
tstress = .true.
pseudo_dir = '/home/liang/PP/' ,
outdir = '/localscr/liang/tmp/Al/'
/
&system
ibrav= 2, celldm(1) =7.62, nat= 1, ntyp= 1,
ecutwfc =30.0,
occupations='smearing', smearing='marzari-vanderbilt', degauss=0.05
/
&electrons
diagonalization='david'
mixing_mode = 'plain'
mixing_beta = 0.7
conv_thr = 1.0d-8
diago_full_acc = .true.
/
ATOMIC_SPECIES
Al 26.98 Al.pbe-rrkj.UPF
ATOMIC_POSITIONS
Al 0.00 0.00 0.00
K_POINTS { automatic }
18 18 18 0 0 0
Al.band.in
&control
calculation='bands' ,
wf_collect = .true. ,
prefix='al' ,
pseudo_dir = '/home/liang/PP/' ,
outdir = '/localscr/liang/tmp/Al/'
/
&system
ibrav= 2, celldm(1) =7.62, nat= 1, ntyp= 1,
ecutwfc =30.0, nbnd = 150,
nosym = .false.
/
&electrons
diagonalization='cg' ,
diago_thr_init = 1.e-8 ,
diago_full_acc = .true. ,
/
ATOMIC_SPECIES
Al 26.98 Al.pbe-rrkj.UPF
ATOMIC_POSITIONS
Al 0.00 0.00 0.00
K_POINTS { automatic }
18 18 18 0 0 0
yambo.in
optics # [R OPT] Optics
chi # [R CHI] Dyson equation for Chi.
% QpntsRXd
1 | 1 | # [Xd] Transferred momenta
%
% BndsRnXd
1 | 150 | # [Xd] Polarization function bands
%
NGsBlkXd= 1 RL # [Xd] Response block size
% EnRngeXd
0.00000 | 10.00000 | eV # [Xd] Energy range
%
% DmRngeXd
0.02000 | 0.80000 | eV # [Xd] Damping range
%
ETStpsXd= 500 # [Xd] Total Energy steps
% LongDrXd
1.000000 | 0.000000 | 0.000000 | # [Xd] [cc] Electric Field
%
Sincerely, Yunfeng