Rewrote Makefile rules
This commit is contained in:
parent
1feaa0591f
commit
b1d47a718e
44
src/Makefile
44
src/Makefile
|
@ -25,8 +25,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
DEBUG = 0
|
DEBUG = 0
|
||||||
BUILDDIR = build
|
BUILDDIR = build
|
||||||
EXE = eps
|
SO = eps.so
|
||||||
SO = $(EXE).so
|
|
||||||
FC = gfortran
|
FC = gfortran
|
||||||
PREFIX = $(HOME)/.local
|
PREFIX = $(HOME)/.local
|
||||||
AUTHORS = Didier Sébilleau <didier.sebilleau@univ-rennes1.fr>, \
|
AUTHORS = Didier Sébilleau <didier.sebilleau@univ-rennes1.fr>, \
|
||||||
|
@ -37,7 +36,7 @@ AUTHORS = Didier Sébilleau <didier.sebilleau@univ-rennes1.fr>, \
|
||||||
# /!\ DO NOT EDIT BELOW THAT LINE (unlesss you know what you're doing...) #
|
# /!\ DO NOT EDIT BELOW THAT LINE (unlesss you know what you're doing...) #
|
||||||
# CORE CONFIGURATION #
|
# CORE CONFIGURATION #
|
||||||
################################################################################
|
################################################################################
|
||||||
|
SHELL = bash
|
||||||
PYTHON_PKG_NAME = msspec_dfm
|
PYTHON_PKG_NAME = msspec_dfm
|
||||||
VERSION = $(shell cd python && python -c 'from $(PYTHON_PKG_NAME) import __version__; print(__version__)')
|
VERSION = $(shell cd python && python -c 'from $(PYTHON_PKG_NAME) import __version__; print(__version__)')
|
||||||
SRCDIR = fortran/DFM_library
|
SRCDIR = fortran/DFM_library
|
||||||
|
@ -241,15 +240,13 @@ SRCS:= $(read_SRCS) $(io_SRCS) $(calc_DEPS) $(calc_SRCS) $(calc_TEST) $(calc_POS
|
||||||
OBJS:=$(addprefix $(BUILDDIR)/,$(patsubst %.f90,%.o,$(SRCS)))
|
OBJS:=$(addprefix $(BUILDDIR)/,$(patsubst %.f90,%.o,$(SRCS)))
|
||||||
|
|
||||||
|
|
||||||
.PHONY: all obj exe so pypkg install uninstall clean help
|
.PHONY: all obj so pypkg install uninstall man clean help
|
||||||
|
|
||||||
|
|
||||||
all: so
|
all: so
|
||||||
|
|
||||||
obj: $(OBJS)
|
obj: $(OBJS)
|
||||||
|
|
||||||
#exe: $(BUILDDIR)/$(EXE)
|
|
||||||
|
|
||||||
so: python/$(PYTHON_PKG_NAME)/$(SO)
|
so: python/$(PYTHON_PKG_NAME)/$(SO)
|
||||||
|
|
||||||
pypkg: python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz
|
pypkg: python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz
|
||||||
|
@ -259,29 +256,21 @@ python/VERSION:
|
||||||
@cat $(VERSION) > $@
|
@cat $(VERSION) > $@
|
||||||
|
|
||||||
|
|
||||||
|
install: python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz
|
||||||
|
@echo "Installing $^"
|
||||||
|
@pip install $^
|
||||||
|
|
||||||
|
|
||||||
python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: python/$(PYTHON_PKG_NAME)/$(SO)
|
python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: python/$(PYTHON_PKG_NAME)/$(SO)
|
||||||
python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: python/man/$(EXE).1.gz
|
python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: man
|
||||||
python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: python/MANIFEST.in python/setup.py python/pip.freeze $(shell find python/$(PYTHON_PKG_NAME) -name '*.py')
|
python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: python/MANIFEST.in python/setup.py python/pip.freeze $(shell find python/$(PYTHON_PKG_NAME) -name '*.py')
|
||||||
@cd python && python setup.py sdist
|
@cd python && python setup.py sdist
|
||||||
|
|
||||||
|
|
||||||
python/$(PYTHON_PKG_NAME)/$(SO): $(OBJS) $(SRCDIR)/../epsilon.f90
|
python/$(PYTHON_PKG_NAME)/$(SO): $(OBJS) $(SRCDIR)/../_dfm.f90
|
||||||
@echo "Building $@ shared object..."
|
@echo "Building $@ shared object..."
|
||||||
@mkdir -p $(BUILDDIR)
|
@mkdir -p $(BUILDDIR)
|
||||||
@sed -e 's/END PROGRAM.*/END SUBROUTINE/' -e 's/PROGRAM/SUBROUTINE/' $(SRCDIR)/../epsilon.f90 > $(BUILDDIR)/_dfm.f90
|
@$(F2PY) -I$(BUILDDIR) -m $(BUILDDIR).$(basename $(@F)) -c $(filter-out $(lastword $^), $^) $(SRCDIR)/../_dfm.f90 && mv $(BUILDDIR)/*.so $@
|
||||||
@$(F2PY) -m $(BUILDDIR).$(basename $(@F)) -c $(filter-out $(lastword $^), $^) $(BUILDDIR)/_dfm.f90 && mv $(BUILDDIR)/*.so $@
|
|
||||||
|
|
||||||
|
|
||||||
#$(BUILDDIR)/$(EXE): $(OBJS) $(SRCDIR)/../epsilon.f90
|
|
||||||
# @echo "building main $@..."
|
|
||||||
# @$(FC) $(FFLAGS) $(LDFLAGS) $(LDLIBS) -J $(BUILDDIR) -o $@ $^
|
|
||||||
|
|
||||||
|
|
||||||
python/man/$(EXE).1.gz: python/man/manpage.txt
|
|
||||||
@sed -e 's/^\.TH.*/\.TH man 1 \"$(shell date)\" \"$(VERSION)\" \"$(EXE) man page\"/' \
|
|
||||||
-e 's/^$$AUTHORS$$.*/$(AUTHORS)/' $^ > $@
|
|
||||||
@gzip $@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$(BUILDDIR)/%.o: %.f90
|
$(BUILDDIR)/%.o: %.f90
|
||||||
|
@ -290,9 +279,11 @@ $(BUILDDIR)/%.o: %.f90
|
||||||
@$(FC) $(FFLAGS) -J $(BUILDDIR) -I $(BUILDDIR) -fPIC -o $@ -c $<
|
@$(FC) $(FFLAGS) -J $(BUILDDIR) -I $(BUILDDIR) -fPIC -o $@ -c $<
|
||||||
|
|
||||||
|
|
||||||
install: python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz
|
man: python/man/inputfile.spec
|
||||||
@echo "Installing $^"
|
@cd python && python setup.py --command-packages=click_man.commands man_pages --target ./man/pages
|
||||||
@pip install $^
|
@cd python/man/pages && cat ../inputfile.spec >> *-generate.1
|
||||||
|
@cd python/man/pages && echo -e ".SH AUTHORS\n.PP\n$(AUTHORS)" | tee -a *.1 > /dev/null
|
||||||
|
@cd python/man/pages && gzip -f *.1
|
||||||
|
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
|
@ -305,7 +296,7 @@ clean:
|
||||||
@rm -rf python/dist
|
@rm -rf python/dist
|
||||||
@rm -rf python/*.egg-info
|
@rm -rf python/*.egg-info
|
||||||
@rm -f python/VERSION
|
@rm -f python/VERSION
|
||||||
@rm -f python/man/*.gz
|
@rm -rf python/man/pages
|
||||||
|
|
||||||
|
|
||||||
help:
|
help:
|
||||||
|
@ -316,4 +307,3 @@ help:
|
||||||
@echo "It is also possible to add debugging symbols with the 'DEBUG' variable."
|
@echo "It is also possible to add debugging symbols with the 'DEBUG' variable."
|
||||||
@echo "For example, to install in another (writable) location with debugging options:"
|
@echo "For example, to install in another (writable) location with debugging options:"
|
||||||
@echo " make DEBUG=1 && make install PREFIX=/opt"
|
@echo " make DEBUG=1 && make install PREFIX=/opt"
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ MODULE OUTFILES
|
||||||
! This module contains functions/subroutines for working with
|
! This module contains functions/subroutines for working with
|
||||||
! the output files
|
! the output files
|
||||||
!
|
!
|
||||||
|
CHARACTER (LEN = 80) :: OUTDIR
|
||||||
CONTAINS
|
CONTAINS
|
||||||
!
|
!
|
||||||
!
|
!
|
||||||
|
@ -63,100 +64,100 @@ CONTAINS
|
||||||
!
|
!
|
||||||
! Filenames:
|
! Filenames:
|
||||||
!
|
!
|
||||||
DFFILE='Results/diel_func.dat' ! dielectric function file
|
DFFILE=TRIM(OUTDIR)//'/diel_func.dat' ! dielectric function file
|
||||||
PZFILE='Results/pola_func.dat' ! polarization function
|
PZFILE=TRIM(OUTDIR)//'/pola_func.dat' ! polarization function
|
||||||
SUFILE='Results/susc_func.dat' ! susceptibility function
|
SUFILE=TRIM(OUTDIR)//'/susc_func.dat' ! susceptibility function
|
||||||
CDFILE='Results/cond_func.dat' ! electrical conductivity
|
CDFILE=TRIM(OUTDIR)//'/cond_func.dat' ! electrical conductivity
|
||||||
!
|
!
|
||||||
PDFILE='Results/plas_disp.dat' ! plasmon dispersion file
|
PDFILE=TRIM(OUTDIR)//'/plas_disp.dat' ! plasmon dispersion file
|
||||||
EHFILE='Results/elec_hole.dat' ! electron-hole dispersion file
|
EHFILE=TRIM(OUTDIR)//'/elec_hole.dat' ! electron-hole dispersion file
|
||||||
E2FILE='Results/elec_hol2.dat' ! two electron-hole dispersion
|
E2FILE=TRIM(OUTDIR)//'/elec_hol2.dat' ! two electron-hole dispersion
|
||||||
CKFILE='Results/int_pot_k.dat' ! interaction potential (k-space)
|
CKFILE=TRIM(OUTDIR)//'/int_pot_k.dat' ! interaction potential (k-space)
|
||||||
CRFILE='Results/int_pot_r.dat' ! interaction potential (real space)
|
CRFILE=TRIM(OUTDIR)//'/int_pot_r.dat' ! interaction potential (real space)
|
||||||
PKFILE='Results/plas_kine.dat' ! plasmon kinetic energy file
|
PKFILE=TRIM(OUTDIR)//'/plas_kine.dat' ! plasmon kinetic energy file
|
||||||
!
|
!
|
||||||
LFFILE='Results/loca_fiel.dat' ! local-field correction file G(q,om)
|
LFFILE=TRIM(OUTDIR)//'/loca_fiel.dat' ! local-field correction file G(q,om)
|
||||||
IQFILE='Results/ginf_fiel.dat' ! G(q,inf) file
|
IQFILE=TRIM(OUTDIR)//'/ginf_fiel.dat' ! G(q,inf) file
|
||||||
SFFILE='Results/stru_fact.dat' ! structure factor file S(q,om)
|
SFFILE=TRIM(OUTDIR)//'/stru_fact.dat' ! structure factor file S(q,om)
|
||||||
PCFILE='Results/pair_corr.dat' ! pair correlation function file
|
PCFILE=TRIM(OUTDIR)//'/pair_corr.dat' ! pair correlation function file
|
||||||
P2FILE='Results/pair_dist.dat' ! pair distribution function file
|
P2FILE=TRIM(OUTDIR)//'/pair_dist.dat' ! pair distribution function file
|
||||||
VXFILE='Results/vertex_fu.dat' ! vertex function Gamma(q,om)
|
VXFILE=TRIM(OUTDIR)//'/vertex_fu.dat' ! vertex function Gamma(q,om)
|
||||||
DCFILE='Results/plas_damp.dat' ! plasmon damping coefficient Im[eps]/q^2
|
DCFILE=TRIM(OUTDIR)//'/plas_damp.dat' ! plasmon damping coefficient Im[eps]/q^2
|
||||||
MDFILE='Results/mome_dist.dat' ! momentum distribution
|
MDFILE=TRIM(OUTDIR)//'/mome_dist.dat' ! momentum distribution
|
||||||
LDFILE='Results/landau_pa.dat' ! Landau parameters
|
LDFILE=TRIM(OUTDIR)//'/landau_pa.dat' ! Landau parameters
|
||||||
DPFILE='Results/damp_file.dat' ! damping file
|
DPFILE=TRIM(OUTDIR)//'/damp_file.dat' ! damping file
|
||||||
LTFILE='Results/life_time.dat' ! plasmon lifetime file
|
LTFILE=TRIM(OUTDIR)//'/life_time.dat' ! plasmon lifetime file
|
||||||
BRFILE='Results/broadenin.dat' ! plasmon broadening
|
BRFILE=TRIM(OUTDIR)//'/broadenin.dat' ! plasmon broadening
|
||||||
PEFILE='Results/plas_ener.dat' ! plasmon energy
|
PEFILE=TRIM(OUTDIR)//'/plas_ener.dat' ! plasmon energy
|
||||||
QCFILE='Results/qc_bounds.dat' ! plasmon q-bounds
|
QCFILE=TRIM(OUTDIR)//'/qc_bounds.dat' ! plasmon q-bounds
|
||||||
RLFILE='Results/rela_time.dat' ! relaxation time
|
RLFILE=TRIM(OUTDIR)//'/rela_time.dat' ! relaxation time
|
||||||
KSFILE='Results/screen_wv.dat' ! screening wave vector
|
KSFILE=TRIM(OUTDIR)//'/screen_wv.dat' ! screening wave vector
|
||||||
OQFILE='Results/omega_qvf.dat' ! omega = q * v_F file
|
OQFILE=TRIM(OUTDIR)//'/omega_qvf.dat' ! omega = q * v_F file
|
||||||
MEFILE='Results/moments_e.dat' ! moments of epsilon
|
MEFILE=TRIM(OUTDIR)//'/moments_e.dat' ! moments of epsilon
|
||||||
MSFILE='Results/moments_s.dat' ! moments of S(q,omega)
|
MSFILE=TRIM(OUTDIR)//'/moments_s.dat' ! moments of S(q,omega)
|
||||||
MLFILE='Results/moments_l.dat' ! moments of loss function
|
MLFILE=TRIM(OUTDIR)//'/moments_l.dat' ! moments of loss function
|
||||||
MCFILE='Results/moments_c.dat' ! moments of conductivity
|
MCFILE=TRIM(OUTDIR)//'/moments_c.dat' ! moments of conductivity
|
||||||
DEFILE='Results/deri_epsi.dat' ! derivative of Re[ dielectric function ]
|
DEFILE=TRIM(OUTDIR)//'/deri_epsi.dat' ! derivative of Re[ dielectric function ]
|
||||||
ZEFILE='Results/ree0_file.dat' ! Re[ dielectric function ] = 0
|
ZEFILE=TRIM(OUTDIR)//'/ree0_file.dat' ! Re[ dielectric function ] = 0
|
||||||
SRFILE='Results/sum_rules.dat' ! sum rules for epsilon
|
SRFILE=TRIM(OUTDIR)//'/sum_rules.dat' ! sum rules for epsilon
|
||||||
CWFILE='Results/confin_wf.dat' ! confinement wave function
|
CWFILE=TRIM(OUTDIR)//'/confin_wf.dat' ! confinement wave function
|
||||||
CFFILE='Results/confin_pt.dat' ! confinement potential
|
CFFILE=TRIM(OUTDIR)//'/confin_pt.dat' ! confinement potential
|
||||||
EMFILE='Results/effe_mass.dat' ! effective mass
|
EMFILE=TRIM(OUTDIR)//'/effe_mass.dat' ! effective mass
|
||||||
MFFILE='Results/mean_path.dat' ! mean free path
|
MFFILE=TRIM(OUTDIR)//'/mean_path.dat' ! mean free path
|
||||||
SPFILE='Results/spec_func.dat' ! spectral function
|
SPFILE=TRIM(OUTDIR)//'/spec_func.dat' ! spectral function
|
||||||
SEFILE='Results/self_ener.dat' ! self-energy
|
SEFILE=TRIM(OUTDIR)//'/self_ener.dat' ! self-energy
|
||||||
SBFILE='Results/subb_ener.dat' ! subband energies
|
SBFILE=TRIM(OUTDIR)//'/subb_ener.dat' ! subband energies
|
||||||
ESFILE='Results/elia_func.dat' ! Eliashberg function
|
ESFILE=TRIM(OUTDIR)//'/elia_func.dat' ! Eliashberg function
|
||||||
GRFILE='Results/grune_par.dat' ! Grüneisen parameter
|
GRFILE=TRIM(OUTDIR)//'/grune_par.dat' ! Grüneisen parameter
|
||||||
FDFILE='Results/fermi_dir.dat' ! Fermi-Dirac distribution
|
FDFILE=TRIM(OUTDIR)//'/fermi_dir.dat' ! Fermi-Dirac distribution
|
||||||
BEFILE='Results/bose_eins.dat' ! Bose-Einstein distribution
|
BEFILE=TRIM(OUTDIR)//'/bose_eins.dat' ! Bose-Einstein distribution
|
||||||
MXFILE='Results/maxwell_d.dat' ! Maxwell distribution
|
MXFILE=TRIM(OUTDIR)//'/maxwell_d.dat' ! Maxwell distribution
|
||||||
SCFILE='Results/scale_par.dat' ! scale parameters
|
SCFILE=TRIM(OUTDIR)//'/scale_par.dat' ! scale parameters
|
||||||
DSFILE='Results/dens_stat.dat' ! density of states
|
DSFILE=TRIM(OUTDIR)//'/dens_stat.dat' ! density of states
|
||||||
NVFILE='Results/neva_four.dat' ! Nevanlinaa/memory function
|
NVFILE=TRIM(OUTDIR)//'/neva_four.dat' ! Nevanlinaa/memory function
|
||||||
MTFILE='Results/memo_time.dat' ! time domain memory function
|
MTFILE=TRIM(OUTDIR)//'/memo_time.dat' ! time domain memory function
|
||||||
!
|
!
|
||||||
GPFILE='Results/gran_part.dat' ! grand partition function
|
GPFILE=TRIM(OUTDIR)//'/gran_part.dat' ! grand partition function
|
||||||
PRFILE='Results/epressure.dat' ! electronic pressure
|
PRFILE=TRIM(OUTDIR)//'/epressure.dat' ! electronic pressure
|
||||||
COFILE='Results/comp_file.dat' ! compressibility
|
COFILE=TRIM(OUTDIR)//'/comp_file.dat' ! compressibility
|
||||||
CPFILE='Results/chem_pote.dat' ! chemical potential
|
CPFILE=TRIM(OUTDIR)//'/chem_pote.dat' ! chemical potential
|
||||||
BMFILE='Results/bulk_modu.dat' ! bulk modulus
|
BMFILE=TRIM(OUTDIR)//'/bulk_modu.dat' ! bulk modulus
|
||||||
SHFILE='Results/shear_mod.dat' ! shear modulus
|
SHFILE=TRIM(OUTDIR)//'/shear_mod.dat' ! shear modulus
|
||||||
S0FILE='Results/zero_soun.dat' ! zero sound velocity
|
S0FILE=TRIM(OUTDIR)//'/zero_soun.dat' ! zero sound velocity
|
||||||
S1FILE='Results/firs_soun.dat' ! first sound velocity
|
S1FILE=TRIM(OUTDIR)//'/firs_soun.dat' ! first sound velocity
|
||||||
DTFILE='Results/Debye_tmp.dat' ! Debye temperature
|
DTFILE=TRIM(OUTDIR)//'/Debye_tmp.dat' ! Debye temperature
|
||||||
PSFILE='Results/para_susc.dat' ! Pauli paramagnetic susceptibility
|
PSFILE=TRIM(OUTDIR)//'/para_susc.dat' ! Pauli paramagnetic susceptibility
|
||||||
IEFILE='Results/inter_ene.dat' ! internal energy
|
IEFILE=TRIM(OUTDIR)//'/inter_ene.dat' ! internal energy
|
||||||
EIFILE='Results/exces_ene.dat' ! excess internal energy
|
EIFILE=TRIM(OUTDIR)//'/exces_ene.dat' ! excess internal energy
|
||||||
FHFILE='Results/helm_free.dat' ! Helmholtz free energy
|
FHFILE=TRIM(OUTDIR)//'/helm_free.dat' ! Helmholtz free energy
|
||||||
EYFILE='Results/entropy_f.dat' ! entropy
|
EYFILE=TRIM(OUTDIR)//'/entropy_f.dat' ! entropy
|
||||||
!
|
!
|
||||||
EFFILE='Results/fermi_ene.dat' ! Fermi energy
|
EFFILE=TRIM(OUTDIR)//'/fermi_ene.dat' ! Fermi energy
|
||||||
KFFILE='Results/fermi_vec.dat' ! Fermi momentum
|
KFFILE=TRIM(OUTDIR)//'/fermi_vec.dat' ! Fermi momentum
|
||||||
VFFILE='Results/fermi_vel.dat' ! Fermi velocity
|
VFFILE=TRIM(OUTDIR)//'/fermi_vel.dat' ! Fermi velocity
|
||||||
TEFILE='Results/fermi_tmp.dat' ! Fermi temperature
|
TEFILE=TRIM(OUTDIR)//'/fermi_tmp.dat' ! Fermi temperature
|
||||||
DLFILE='Results/fermi_dos.dat' ! Fermi density of states
|
DLFILE=TRIM(OUTDIR)//'/fermi_dos.dat' ! Fermi density of states
|
||||||
!
|
!
|
||||||
TWFILE='Results/thermal_w.dat' ! thermal De Broglie wavelength
|
TWFILE=TRIM(OUTDIR)//'/thermal_w.dat' ! thermal De Broglie wavelength
|
||||||
VTFILE='Results/thermal_v.dat' ! thermal velocity
|
VTFILE=TRIM(OUTDIR)//'/thermal_v.dat' ! thermal velocity
|
||||||
TCFILE='Results/thermal_c.dat' ! thermal conductivity
|
TCFILE=TRIM(OUTDIR)//'/thermal_c.dat' ! thermal conductivity
|
||||||
!
|
!
|
||||||
EGFILE='Results/ground_st.dat' ! ground state energy
|
EGFILE=TRIM(OUTDIR)//'/ground_st.dat' ! ground state energy
|
||||||
EXFILE='Results/ex_energy.dat' ! exchange energy
|
EXFILE=TRIM(OUTDIR)//'/ex_energy.dat' ! exchange energy
|
||||||
XCFILE='Results/xc_energy.dat' ! exchange correlation energy
|
XCFILE=TRIM(OUTDIR)//'/xc_energy.dat' ! exchange correlation energy
|
||||||
ECFILE='Results/corr_ener.dat' ! correlation energy
|
ECFILE=TRIM(OUTDIR)//'/corr_ener.dat' ! correlation energy
|
||||||
HFFILE='Results/hf_energy.dat' ! Hartree-Fock energy
|
HFFILE=TRIM(OUTDIR)//'/hf_energy.dat' ! Hartree-Fock energy
|
||||||
EKFILE='Results/kine_ener.dat' ! kinetic energy
|
EKFILE=TRIM(OUTDIR)//'/kine_ener.dat' ! kinetic energy
|
||||||
EPFILE='Results/pote_ener.dat' ! potential energy
|
EPFILE=TRIM(OUTDIR)//'/pote_ener.dat' ! potential energy
|
||||||
!
|
!
|
||||||
VIFILE='Results/visc_coef.dat' ! shear viscosity
|
VIFILE=TRIM(OUTDIR)//'/visc_coef.dat' ! shear viscosity
|
||||||
DIFILE='Results/diff_coef.dat' ! diffusion coefficient
|
DIFILE=TRIM(OUTDIR)//'/diff_coef.dat' ! diffusion coefficient
|
||||||
!
|
!
|
||||||
FPFILE='Results/fluct_pot.dat' ! fluctuation potential file
|
FPFILE=TRIM(OUTDIR)//'/fluct_pot.dat' ! fluctuation potential file
|
||||||
ELFILE='Results/ener_loss.dat' ! energy loss function
|
ELFILE=TRIM(OUTDIR)//'/ener_loss.dat' ! energy loss function
|
||||||
POFILE='Results/stop_powe.dat' ! stopping power
|
POFILE=TRIM(OUTDIR)//'/stop_powe.dat' ! stopping power
|
||||||
RFFILE='Results/refrac_in.dat' ! refractive index
|
RFFILE=TRIM(OUTDIR)//'/refrac_in.dat' ! refractive index
|
||||||
VCFILE='Results/dyna_coul.dat' ! dynamic screened Coulomb potential V(q,omega)
|
VCFILE=TRIM(OUTDIR)//'/dyna_coul.dat' ! dynamic screened Coulomb potential V(q,omega)
|
||||||
!
|
!
|
||||||
! Corresponding fortran units
|
! Corresponding fortran units
|
||||||
!
|
!
|
||||||
|
@ -425,7 +426,7 @@ CONTAINS
|
||||||
! For instance, if we want to compute the correlation energy
|
! For instance, if we want to compute the correlation energy
|
||||||
! as a function of r_s, we will loop on the input data files
|
! as a function of r_s, we will loop on the input data files
|
||||||
! with different r_s, but all results have to be written
|
! with different r_s, but all results have to be written
|
||||||
! into the same output file 'Results/corr_ener.dat'
|
! into the same output file 'OUTDIR/corr_ener.dat'
|
||||||
!
|
!
|
||||||
!
|
!
|
||||||
! Author : D. Sébilleau
|
! Author : D. Sébilleau
|
||||||
|
|
|
@ -0,0 +1,345 @@
|
||||||
|
!
|
||||||
|
!=======================================================================
|
||||||
|
!
|
||||||
|
SUBROUTINE EPSILON(MYINFILE, MYOUTDIR)
|
||||||
|
!
|
||||||
|
! This program computes model dielectric functions for many type
|
||||||
|
! of materials. These dielectric functions are essentially based
|
||||||
|
! on the Fermi liquid theory.
|
||||||
|
!
|
||||||
|
! Several other physical quantities, based on the
|
||||||
|
! dielectric function can also be computed, namely:
|
||||||
|
!
|
||||||
|
! * the loss function
|
||||||
|
! * the EELS cross-section
|
||||||
|
! * the plasmon fluctuation potential
|
||||||
|
! * the stopping power
|
||||||
|
! * the optical properties
|
||||||
|
!
|
||||||
|
!
|
||||||
|
! Lead developer: Didier Sébilleau
|
||||||
|
!
|
||||||
|
! Co-developers : Aditi Mandal, Sylvain Tricot
|
||||||
|
!
|
||||||
|
!
|
||||||
|
!
|
||||||
|
! Main notations :
|
||||||
|
!
|
||||||
|
! * X : dimensionless factor --> X = q / (2 * k_F)
|
||||||
|
!
|
||||||
|
! * Y : dimensionless factor --> Y = q / k_F
|
||||||
|
!
|
||||||
|
! * Z : dimensionless factor --> Z = omega / omega_q = V / (4 * X * X)
|
||||||
|
!
|
||||||
|
! * U : dimensionless factor --> U = omega / (q * v_F) = X * Z = V / (4 * X)
|
||||||
|
!
|
||||||
|
! * V : dimensionless factor --> V = omega / omega_{k_F} = Z * Y^2 = 4 U * X
|
||||||
|
!
|
||||||
|
!
|
||||||
|
!
|
||||||
|
!
|
||||||
|
! Last modified : 6 Aug 2021
|
||||||
|
!
|
||||||
|
!
|
||||||
|
USE ACCURACY_REAL
|
||||||
|
USE DIMENSION_CODE, ONLY : NSIZE
|
||||||
|
!
|
||||||
|
USE SF_VALUES, ONLY : SQO_TYPE
|
||||||
|
!
|
||||||
|
USE REAL_NUMBERS, ONLY : ZERO,ONE,HALF,SMALL
|
||||||
|
USE MATERIAL_PROP, ONLY : RS,DMN
|
||||||
|
USE EXT_FIELDS, ONLY : H
|
||||||
|
!
|
||||||
|
USE Q_GRID
|
||||||
|
!
|
||||||
|
USE FERMI_VALUES
|
||||||
|
USE FERMI_VALUES_M
|
||||||
|
USE PLASMON_ENE
|
||||||
|
USE PLASMA_SCALE
|
||||||
|
USE CALC_ASYMPT
|
||||||
|
!
|
||||||
|
USE PRINT_CALC_TYPE
|
||||||
|
USE PRINT_HEADERS
|
||||||
|
USE PRINT_FERMI
|
||||||
|
USE PRINT_PLASMONS
|
||||||
|
USE PRINT_ASYMPTOTIC
|
||||||
|
USE PRINT_SCALE_PARAM
|
||||||
|
USE PRINT_MAT_LENGTHS
|
||||||
|
USE PRINT_THERMAL
|
||||||
|
USE PRINT_THERMODYNAMICS
|
||||||
|
USE PRINT_ENERGIES_EL
|
||||||
|
!
|
||||||
|
USE DAMPING_COEF
|
||||||
|
USE PLASMON_DISPERSION
|
||||||
|
!
|
||||||
|
USE CALL_CALC_1
|
||||||
|
USE CALL_CALC_2
|
||||||
|
USE CALL_CALC_3
|
||||||
|
USE CALL_CALC_5
|
||||||
|
USE CALL_CALC_7
|
||||||
|
USE CALL_CALC_9
|
||||||
|
USE CALL_CALC_P
|
||||||
|
!
|
||||||
|
USE TEST_INTEGRALS_2
|
||||||
|
USE TEST_INTEGRALS_3
|
||||||
|
USE TEST_INTEGRALS_8
|
||||||
|
USE TEST_INT_HUBBARD
|
||||||
|
!
|
||||||
|
USE RE_EPS_0_TREATMENT
|
||||||
|
!
|
||||||
|
USE INPUT_DATA
|
||||||
|
!
|
||||||
|
USE OUT_VALUES_10
|
||||||
|
!
|
||||||
|
USE OUT_CALC
|
||||||
|
!
|
||||||
|
USE CHANGE_FILENAMES
|
||||||
|
!
|
||||||
|
USE OUTFILES
|
||||||
|
USE OPEN_OUTFILES
|
||||||
|
USE CLOSE_OUTFILES
|
||||||
|
!
|
||||||
|
IMPLICIT NONE
|
||||||
|
!
|
||||||
|
INTEGER :: N_IF,JF
|
||||||
|
INTEGER :: IQ,IE
|
||||||
|
!
|
||||||
|
REAL (WP) :: Q,X
|
||||||
|
REAL (WP) :: EPSR(NSIZE),EPSI(NSIZE),EN(NSIZE)
|
||||||
|
!
|
||||||
|
CHARACTER (LEN = 100) :: INPDATA(999)
|
||||||
|
CHARACTER (LEN = 100) :: LOGFILE(999)
|
||||||
|
!
|
||||||
|
CHARACTER (LEN = 100) :: MYINFILE
|
||||||
|
CHARACTER (LEN = 100) :: MYOUTDIR
|
||||||
|
!
|
||||||
|
OUTDIR = MYOUTDIR
|
||||||
|
CALL SYSTEM('mkdir -p '//TRIM(OUTDIR))
|
||||||
|
!
|
||||||
|
! Loop on the input data files
|
||||||
|
!
|
||||||
|
! N_IF = 11
|
||||||
|
N_IF = 1
|
||||||
|
! READ(*,15) N_IF !
|
||||||
|
! DO JF = 1,N_IF !
|
||||||
|
! READ(*,25) INPDATA(JF) !
|
||||||
|
! END DO !
|
||||||
|
INPDATA(1) = TRIM(MYINFILE)
|
||||||
|
! INPDATA(1) = 'Data/epsilon.dat'
|
||||||
|
! INPDATA(1) = 'Data/epsilon_00.dat'
|
||||||
|
! INPDATA(2) = 'Data/epsilon_01.dat'
|
||||||
|
! INPDATA(3) = 'Data/epsilon_02.dat'
|
||||||
|
! INPDATA(4) = 'Data/epsilon_03.dat'
|
||||||
|
! INPDATA(5) = 'Data/epsilon_04.dat'
|
||||||
|
! INPDATA(6) = 'Data/epsilon_05.dat'
|
||||||
|
! INPDATA(7) = 'Data/epsilon_06.dat'
|
||||||
|
! INPDATA(8) = 'Data/epsilon_07.dat'
|
||||||
|
! INPDATA(9) = 'Data/epsilon_08.dat'
|
||||||
|
! INPDATA(10) = 'Data/epsilon_09.dat'
|
||||||
|
! INPDATA(11) = 'Data/epsilon_10.dat'
|
||||||
|
!
|
||||||
|
!
|
||||||
|
! Name of the corresponding log files
|
||||||
|
!
|
||||||
|
CALL LOGFILE_NAMES(N_IF,LOGFILE) !
|
||||||
|
!
|
||||||
|
DO JF = 1,N_IF ! start loop on files
|
||||||
|
!
|
||||||
|
! Initialization of the arrays
|
||||||
|
!
|
||||||
|
DO IE=1,NSIZE !
|
||||||
|
EN(IE) = ZERO !
|
||||||
|
EPSR(IE) = ZERO !
|
||||||
|
EPSI(IE) = ZERO !
|
||||||
|
END DO !
|
||||||
|
!
|
||||||
|
! Opening input/log data files
|
||||||
|
!
|
||||||
|
OPEN(UNIT=5,FILE=TRIM(INPDATA(JF)),STATUS='OLD') !
|
||||||
|
OPEN(UNIT=6,FILE=TRIM(LOGFILE(JF)),STATUS='UNKNOWN') !
|
||||||
|
!
|
||||||
|
! Printing the headers
|
||||||
|
!
|
||||||
|
CALL PRINT_ASCII !
|
||||||
|
!
|
||||||
|
! Reading the input data file
|
||||||
|
!
|
||||||
|
CALL READ_DATA !
|
||||||
|
!
|
||||||
|
IF(SQO_TYPE == 'UTI') THEN !
|
||||||
|
OPEN(UNIT = 1, FILE = TRIM(OUTDIR)//'/utic_para.dat', & !
|
||||||
|
STATUS = 'unknown') !
|
||||||
|
END IF !
|
||||||
|
!
|
||||||
|
! Opening result files
|
||||||
|
!
|
||||||
|
CALL OPEN_OUTPUT_FILES(N_IF,JF) !
|
||||||
|
!
|
||||||
|
! Post-processing:
|
||||||
|
!
|
||||||
|
IF(PL_DISP == ' EXACT') THEN !
|
||||||
|
I_PP = I_FP + I_PD !
|
||||||
|
ELSE !
|
||||||
|
I_PP = I_FP !
|
||||||
|
END IF !
|
||||||
|
!
|
||||||
|
! Printing the information on the calculations to be performed
|
||||||
|
!
|
||||||
|
! CALL PRINT_CALC_INFO !
|
||||||
|
!
|
||||||
|
! Computation of the Fermi values and storage
|
||||||
|
!
|
||||||
|
WRITE(6,10) !
|
||||||
|
!
|
||||||
|
IF(H < SMALL) THEN !
|
||||||
|
CALL CALC_FERMI(DMN,RS) !
|
||||||
|
CALL PRINT_FERMI_SI !
|
||||||
|
ELSE !
|
||||||
|
CALL CALC_FERMI_M(DMN,RS) !
|
||||||
|
CALL PRINT_FERMI_SI_M !
|
||||||
|
END IF !
|
||||||
|
!
|
||||||
|
! Test of the integrals
|
||||||
|
!
|
||||||
|
IF(I_TI /= 0) THEN !
|
||||||
|
IF(I_TI == 2) CALL CALC_TEST_INT_2 !
|
||||||
|
IF(I_TI == 3) CALL CALC_TEST_INT_3 !
|
||||||
|
IF(I_TI == 8) CALL CALC_TEST_INT_8 !
|
||||||
|
IF(I_TI == 10) CALL CALC_TEST_HUBBARD !
|
||||||
|
END IF !
|
||||||
|
!
|
||||||
|
! Computation of the plasmon properties and storage
|
||||||
|
!
|
||||||
|
CALL CALC_PLASMON_ENE !
|
||||||
|
CALL CALC_PLASMA_SCALE !
|
||||||
|
!
|
||||||
|
! Computation of the asymptotic values and storage
|
||||||
|
!
|
||||||
|
! CALL CALC_ASYMPT_VALUES !
|
||||||
|
!
|
||||||
|
! Selective printing of physical properties (log file)
|
||||||
|
!
|
||||||
|
IF(I_WR == 1) THEN !
|
||||||
|
!
|
||||||
|
! Printing the plasma properties
|
||||||
|
!
|
||||||
|
WRITE(6,10) !
|
||||||
|
CALL PRINT_PLASMA !
|
||||||
|
!
|
||||||
|
! Printing the asymptotic values
|
||||||
|
!
|
||||||
|
WRITE(6,10) !
|
||||||
|
CALL PRINT_ASYMPT_VALUES !
|
||||||
|
!
|
||||||
|
! Printing the scale parameters
|
||||||
|
!
|
||||||
|
WRITE(6,10) !
|
||||||
|
CALL PRINT_SCALE_PARAMETERS !
|
||||||
|
!
|
||||||
|
! Printing the material's characteristic lengths
|
||||||
|
!
|
||||||
|
WRITE(6,10) !
|
||||||
|
CALL PRINT_CHAR_LENGTHS !
|
||||||
|
!
|
||||||
|
! Printing the thermal properties
|
||||||
|
!
|
||||||
|
WRITE(6,10) !
|
||||||
|
CALL PRINT_THERMAL_PROP !
|
||||||
|
!
|
||||||
|
! Printing the thermodynamics properties
|
||||||
|
!
|
||||||
|
WRITE(6,10) !
|
||||||
|
CALL PRINT_THERMODYNAMICS_PROP !
|
||||||
|
!
|
||||||
|
! Printing the energies at q = 0
|
||||||
|
!
|
||||||
|
WRITE(6,10) !
|
||||||
|
CALL PRINT_ENERGIES(ZERO,0,ZERO,ONE) !
|
||||||
|
!
|
||||||
|
END IF !
|
||||||
|
!
|
||||||
|
! Calling calculator 5 (Fermi properties)
|
||||||
|
!
|
||||||
|
IF(I_C5 > 0) CALL USE_CALC_5 !
|
||||||
|
!
|
||||||
|
! Starting the loop on q
|
||||||
|
! (the loop on energy is inside the calculators)
|
||||||
|
!
|
||||||
|
!
|
||||||
|
!.......... Loop on plasmon momentum Q ..........
|
||||||
|
!
|
||||||
|
DO IQ = 1,N_Q !
|
||||||
|
!
|
||||||
|
Q = Q_MIN + FLOAT(IQ - 1) * Q_STEP ! Q = q/k_F
|
||||||
|
!
|
||||||
|
X = HALF * Q ! X = q/(2k_f)
|
||||||
|
!
|
||||||
|
! Computing and printing the damping (if any)
|
||||||
|
!
|
||||||
|
CALL CALC_DAMPING(IQ,X)
|
||||||
|
!
|
||||||
|
! Calling calculator 1 (eps, pi, chi, sigma)
|
||||||
|
!
|
||||||
|
IF(I_C1 > 0) CALL USE_CALC_1(X,EN,EPSR,EPSI) !
|
||||||
|
!
|
||||||
|
! Calling calculator 2
|
||||||
|
!
|
||||||
|
IF(I_C2 > 0) CALL USE_CALC_2(IQ,X) !
|
||||||
|
!
|
||||||
|
! Calling calculator 3
|
||||||
|
!
|
||||||
|
IF(I_C3 > 0) CALL USE_CALC_3(IQ,X) !
|
||||||
|
!
|
||||||
|
! Calling calculator 9
|
||||||
|
!
|
||||||
|
IF(I_C9 > 0) CALL USE_CALC_9(X) !
|
||||||
|
!
|
||||||
|
! Calling test calculator
|
||||||
|
!
|
||||||
|
! CALL CALC_TEST(IQ,X)
|
||||||
|
!
|
||||||
|
!.......... End of loop on plasmon momentum Q ..........
|
||||||
|
!
|
||||||
|
END DO !
|
||||||
|
!
|
||||||
|
! Calling calculator 7 (Energies)
|
||||||
|
!
|
||||||
|
IF(I_C7 > 0) CALL USE_CALC_7 !
|
||||||
|
!
|
||||||
|
! Post-processing whenever requested
|
||||||
|
!
|
||||||
|
IF(I_PP > 0) CALL USE_CALC_P !
|
||||||
|
!
|
||||||
|
IF(I_ZE == 1) THEN !
|
||||||
|
CALL REORDER_EPS0_PRINT !
|
||||||
|
END IF !
|
||||||
|
!
|
||||||
|
! Closing input/log data files
|
||||||
|
!
|
||||||
|
CLOSE(5) !
|
||||||
|
CLOSE(6) !
|
||||||
|
!
|
||||||
|
IF(SQO_TYPE == 'UTI') THEN !
|
||||||
|
CLOSE(1) !
|
||||||
|
END IF !
|
||||||
|
|
||||||
|
!
|
||||||
|
! Closing the indexed result files
|
||||||
|
!
|
||||||
|
CALL CLOSE_OUTPUT_FILES(0) !
|
||||||
|
!
|
||||||
|
! End of input data files loop
|
||||||
|
!
|
||||||
|
END DO !
|
||||||
|
!
|
||||||
|
! Closing the other result files
|
||||||
|
!
|
||||||
|
CALL CLOSE_OUTPUT_FILES(1) !
|
||||||
|
!
|
||||||
|
! Formats:
|
||||||
|
!
|
||||||
|
10 FORMAT(' ')
|
||||||
|
15 FORMAT(I3)
|
||||||
|
25 FORMAT(A50)
|
||||||
|
!
|
||||||
|
END SUBROUTINE
|
|
@ -1,13 +1,6 @@
|
||||||
.\" Manpage for eps.
|
.SH INPUT FILE FORMAT
|
||||||
.TH man 1 "22 February 2022" "1.0" "eps man page"
|
|
||||||
.SH NAME
|
The input file is formatted as follows:
|
||||||
eps \- compute the dielectric function
|
|
||||||
.SH SYNOPSIS
|
|
||||||
eps INPUT_FILE
|
|
||||||
.SH DESCRIPTION
|
|
||||||
eps is a program to compute the dielectric function in the (q,omega) space according to various models and approximations.
|
|
||||||
.SH OPTIONS
|
|
||||||
The INPUT_FILE is formatted as follows
|
|
||||||
|
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* MsSpec DIELECTRIC FUNCTION MODULE *
|
* MsSpec DIELECTRIC FUNCTION MODULE *
|
||||||
|
@ -2595,17 +2588,3 @@ The INPUT_FILE is formatted as follows
|
||||||
* I_WR : switch for writing physical properties into the log file
|
* I_WR : switch for writing physical properties into the log file
|
||||||
I_WR = 0 : does not write
|
I_WR = 0 : does not write
|
||||||
I_WR = 1 : writes
|
I_WR = 1 : writes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.SH BUGS
|
|
||||||
No known bugs for now.
|
|
||||||
.SH AUTHOR
|
|
||||||
$AUTHORS$
|
|
|
@ -20,31 +20,101 @@
|
||||||
# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
|
# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
|
||||||
# Committed by : Sylvain Tricot <sylvain.tricot@univ-rennes1.fr> 1645806435 +0100
|
# Committed by : Sylvain Tricot <sylvain.tricot@univ-rennes1.fr> 1645806435 +0100
|
||||||
|
|
||||||
import argparse
|
import click
|
||||||
import logging
|
import logging
|
||||||
from msspec_dfm.version import __version__
|
from msspec_dfm.version import __version__
|
||||||
|
from msspec_dfm.eps import epsilon
|
||||||
|
|
||||||
|
@click.group(invoke_without_command=True, no_args_is_help=True)
|
||||||
def main():
|
@click.option('--version', is_flag=True,
|
||||||
parser = argparse.ArgumentParser(description="Compute the dielectric function")
|
help='Print the program version and exit.')
|
||||||
# The folder option is the default place where are the results
|
@click.option('-v', '--verbose', count=True,
|
||||||
parser.add_argument('--folder', default='./Results',
|
help='Increase the verbosity output. Full verbosity for -vvv')
|
||||||
help='The default place where are stored the results..')
|
def main(version, verbose):
|
||||||
|
# Adjust the verbosity level
|
||||||
|
|
||||||
parser.add_argument('--verbose', '-v', default=0, action='count',
|
|
||||||
help=('Increase verbosity output. Full verbosity'
|
|
||||||
' for -vvv'))
|
|
||||||
|
|
||||||
parser.add_argument('--version', action='store_true',
|
|
||||||
help=('Show the program version.'))
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
# adjust the verbosity level
|
|
||||||
verbosity_levels = [logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG]
|
verbosity_levels = [logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG]
|
||||||
logging.basicConfig(level=verbosity_levels[min(args.verbose, len(verbosity_levels)-1)])
|
logging.basicConfig(level=verbosity_levels[min(verbose, len(verbosity_levels)-1)])
|
||||||
|
|
||||||
if args.version:
|
# Print the version and exit
|
||||||
|
if version:
|
||||||
|
logging.debug('Getting the version number...')
|
||||||
print(__version__)
|
print(__version__)
|
||||||
exit(0)
|
exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
@main.command()
|
||||||
|
@click.option('--input-file', default='Data/epsilon.dat', show_default=True,
|
||||||
|
metavar='FILE_NAME',
|
||||||
|
help='The input filename.')
|
||||||
|
def generate(input_file):
|
||||||
|
"""Generate an input file.
|
||||||
|
|
||||||
|
An input file with default parameters will be written to INPUT_FILE.
|
||||||
|
"""
|
||||||
|
logging.debug("Generating the input file \'{:s}\'...".format(input_file))
|
||||||
|
print(input_file)
|
||||||
|
|
||||||
|
|
||||||
|
@main.command()
|
||||||
|
@click.argument('input-file')
|
||||||
|
@click.option('--folder', default='./Results', show_default=True,
|
||||||
|
metavar='FOLDER_NAME',
|
||||||
|
help='The output folder.')
|
||||||
|
def compute(input_file, folder):
|
||||||
|
"""Compute the dielectric function.
|
||||||
|
|
||||||
|
All the calculation parameters are defined in INPUT_FILE.
|
||||||
|
See help of the 'generate' command for a full reference of the file
|
||||||
|
format and all the options.
|
||||||
|
"""
|
||||||
|
logging.debug("Computing...")
|
||||||
|
logging.debug(" Input file : \'{:s}\'".format(input_file))
|
||||||
|
logging.debug(" Output folder: \'{:s}\'".format(folder))
|
||||||
|
|
||||||
|
|
||||||
|
@main.command()
|
||||||
|
@click.argument('plot-type', metavar='TYPE',
|
||||||
|
type=click.Choice(['diel_func', 'susc_func', 'cond_func',
|
||||||
|
'loca_fiel', 'stru_fact', 'vertex_fu',
|
||||||
|
'deri_epsi', 'self_ener', 'dyna_coul'],
|
||||||
|
case_sensitive=False))
|
||||||
|
@click.option('--folder', default='./Results', show_default=True, metavar='FOLDER_NAME',
|
||||||
|
help='The folder containing the results.')
|
||||||
|
@click.option('--img', is_flag=True,
|
||||||
|
help='Select imaginery part.')
|
||||||
|
@click.option('--bounds', nargs=2, type=float, default=[-2, 2], show_default=True,
|
||||||
|
metavar='LOWER UPPER',
|
||||||
|
help='Limits for the colorbar scale.')
|
||||||
|
@click.option('--plot3d', is_flag=True,
|
||||||
|
help='Plot in 3D.')
|
||||||
|
@click.option('--contour', is_flag=True,
|
||||||
|
help='Add contours.')
|
||||||
|
@click.option('--pdeh', is_flag=True,
|
||||||
|
help='Add the dispersion and electron-hole curves.')
|
||||||
|
@click.option('--levels', type=int, default=8, show_default=True,
|
||||||
|
help='Number of levels for contour plots.')
|
||||||
|
@click.option('--Ef', 'Ef', type=float, default=1, show_default=True,
|
||||||
|
help='Fermi energy if renormalization is needed.')
|
||||||
|
@click.option('--strides', type=int, default=64, show_default=True,
|
||||||
|
help='Number of strides for 3D plot. The lower, the higher the resolution.')
|
||||||
|
def plot(plot_type, folder, img, bounds, plot3d, contour, pdeh, levels, Ef, strides):
|
||||||
|
"""Plotting the results.
|
||||||
|
|
||||||
|
\b
|
||||||
|
The plot TYPE value may be one of the following values:
|
||||||
|
* diel_func
|
||||||
|
* susc_func
|
||||||
|
* cond_func
|
||||||
|
* loca_fiel
|
||||||
|
* stru_fact
|
||||||
|
* vertex_fu
|
||||||
|
* deri_epsi
|
||||||
|
* self_ener
|
||||||
|
* dyna_coul
|
||||||
|
"""
|
||||||
|
logging.debug("Plotting...")
|
||||||
|
for key, value in locals().items():
|
||||||
|
logging.debug(" {}: {}".format(key, value))
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
matplotlib
|
matplotlib
|
||||||
|
click
|
||||||
|
click-man
|
||||||
|
|
|
@ -33,7 +33,7 @@ if __name__ == "__main__":
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
packages=find_packages(include='msspec_dfm.*'),
|
packages=find_packages(include='msspec_dfm.*'),
|
||||||
install_requires=REQUIREMENTS,
|
install_requires=REQUIREMENTS,
|
||||||
data_files = [('share/man/man1', glob.glob('man/*.gz'))],
|
data_files = [('share/man/man1', glob.glob('man/pages/*.gz'))],
|
||||||
|
|
||||||
author='Didier Sébilleau, Aditi Mandhal, Sylvain Tricot',
|
author='Didier Sébilleau, Aditi Mandhal, Sylvain Tricot',
|
||||||
author_email='sylvain.tricot@univ-rennes1.fr',
|
author_email='sylvain.tricot@univ-rennes1.fr',
|
||||||
|
|
Loading…
Reference in New Issue