Merge branch 'release/0.1'
This commit is contained in:
commit
ad9ba151a4
|
@ -0,0 +1,19 @@
|
||||||
|
__pycache__
|
||||||
|
*.py[cod]
|
||||||
|
*.so
|
||||||
|
*.o
|
||||||
|
*.mod
|
||||||
|
*.bak
|
||||||
|
*.target
|
||||||
|
htmlcov
|
||||||
|
package/
|
||||||
|
src/msspec/results.txt
|
||||||
|
*venv/
|
||||||
|
**/*build*/
|
||||||
|
**/*dist/
|
||||||
|
**/*.egg-info/
|
||||||
|
.ropeproject
|
||||||
|
.project
|
||||||
|
VERSION
|
||||||
|
tests/private
|
||||||
|
**/man/pages
|
|
@ -1,243 +0,0 @@
|
||||||
#
|
|
||||||
# Makefile for the MsSpec-DFM epsilon.f90 program
|
|
||||||
#
|
|
||||||
# by S. Tricot and D. Sébilleau
|
|
||||||
#
|
|
||||||
# Last version: 21 Apr 2021
|
|
||||||
#
|
|
||||||
# Compiler
|
|
||||||
#
|
|
||||||
FC=gfortran
|
|
||||||
#
|
|
||||||
# Compile flags
|
|
||||||
#
|
|
||||||
#FFLAGS=
|
|
||||||
FFLAGS=-g -fbounds-check -fbacktrace -ffpe-trap=zero,overflow,underflow,invalid,denormal
|
|
||||||
#FFLAGS=-ffast-math -O3
|
|
||||||
#
|
|
||||||
# Link flags
|
|
||||||
#
|
|
||||||
LDFLAGS=
|
|
||||||
LDLIBS=
|
|
||||||
#
|
|
||||||
# Executable name
|
|
||||||
#
|
|
||||||
EXE=eps
|
|
||||||
#
|
|
||||||
# Building directory
|
|
||||||
#
|
|
||||||
BUILDDIR:=build2
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
|
|
||||||
cmn_DEPS:=DFM_library/ACCURACY_LIBRARY/accuracy.f90 \
|
|
||||||
DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90 \
|
|
||||||
DFM_library/DIMENSIONS_LIBRARY/dimensions.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/simple_numbers.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/physical_constants.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/factorials.f90 \
|
|
||||||
DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/printfiles.f90 \
|
|
||||||
DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/external_damping.f90 \
|
|
||||||
DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90
|
|
||||||
cmn_OBJS:=$(patsubst %.f90,%.o, $(cmn_DEPS))
|
|
||||||
|
|
||||||
tool_SRCS:=$(cmn_DEPS) \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/derivation.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/smoothing.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/interpolation.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/integration.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/integration4.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/transforms.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90
|
|
||||||
util_SRCS:=$(cmn_DEPS) \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/utilities_1.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/find_zero.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90
|
|
||||||
prop_SRCS:=$(cmn_DEPS) \
|
|
||||||
DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 \
|
|
||||||
DFM_library/PLASMON_LIBRARY/plasmon_ene.f90 \
|
|
||||||
DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 \
|
|
||||||
DFM_library/ENERGIES_LIBRARY/correlation_energies.f90 \
|
|
||||||
DFM_library/ENERGIES_LIBRARY/delta_t.f90 \
|
|
||||||
DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 \
|
|
||||||
DFM_library/SCREENING_LIBRARY/screening_vec1.f90 \
|
|
||||||
DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90 \
|
|
||||||
DFM_library/CONFINEMENT_LIBRARY/coulomb.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/utilities_3.f90 \
|
|
||||||
DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 \
|
|
||||||
DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 \
|
|
||||||
DFM_library/ENERGIES_LIBRARY/xc_energies.f90 \
|
|
||||||
DFM_library/ENERGIES_LIBRARY/exchange_energies.f90 \
|
|
||||||
DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90 \
|
|
||||||
DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 \
|
|
||||||
DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/utilities_4.f90 \
|
|
||||||
DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90
|
|
||||||
#
|
|
||||||
# Read input data file:
|
|
||||||
#
|
|
||||||
read_SRCS:=DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90
|
|
||||||
read_OBJS:=$(patsubst %.f90,%.o, $(tool_SRCS) $(util_SRCS) $(prop_SRCS) $(read_SRCS))
|
|
||||||
|
|
||||||
io_SRCS:=DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90 \
|
|
||||||
DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 \
|
|
||||||
DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90 \
|
|
||||||
DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90 \
|
|
||||||
DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_headers.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_calc_type.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_Fermi.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_plasmons.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_scale_param.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_material_lengths.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_thermal.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_thermodynamics.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_energies.f90 \
|
|
||||||
DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90
|
|
||||||
io_OBJS:=$(patsubst %.f90,%.o, $(io_SRCS))
|
|
||||||
|
|
||||||
calc_DEPS:=$(cmn_DEPS) \
|
|
||||||
DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 \
|
|
||||||
DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 \
|
|
||||||
DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 \
|
|
||||||
DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90 \
|
|
||||||
DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 \
|
|
||||||
DFM_library/MOMENTS_LIBRARY/loss_moments.f90 \
|
|
||||||
DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 \
|
|
||||||
DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 \
|
|
||||||
DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 \
|
|
||||||
DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 \
|
|
||||||
DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 \
|
|
||||||
DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 \
|
|
||||||
DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90 \
|
|
||||||
DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 \
|
|
||||||
DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 \
|
|
||||||
DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 \
|
|
||||||
DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 \
|
|
||||||
DFM_library/SCREENING_LIBRARY/screening_vec2.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/velocities.f90 \
|
|
||||||
DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 \
|
|
||||||
DFM_library/MOMENTS_LIBRARY/moments.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/packing_fraction.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/classical_fluid.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/scattering_length.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/lifetime.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/viscosity.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/utic_parameters.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/decay_rate.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/calc_damping.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90 \
|
|
||||||
DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90 \
|
|
||||||
DFM_library/PLASMON_LIBRARY/q_bounds.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/plasmon_damping.f90 \
|
|
||||||
DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 \
|
|
||||||
DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 \
|
|
||||||
DFM_library/UTILITIES_LIBRARY/utilities_2.f90 \
|
|
||||||
DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90 \
|
|
||||||
DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 \
|
|
||||||
DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 \
|
|
||||||
DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 \
|
|
||||||
DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 \
|
|
||||||
DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 \
|
|
||||||
DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 \
|
|
||||||
DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/decay_rate.f90 \
|
|
||||||
DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 \
|
|
||||||
DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 \
|
|
||||||
DFM_library/DAMPING_LIBRARY/mean_free_path.f90 \
|
|
||||||
DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 \
|
|
||||||
DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 \
|
|
||||||
DFM_library/PRINT_LIBRARY/print_asymptotic.f90 \
|
|
||||||
DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 \
|
|
||||||
DFM_library/MOMENTS_LIBRARY/moments_loss.f90 \
|
|
||||||
DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90
|
|
||||||
#
|
|
||||||
# Calculators:
|
|
||||||
#
|
|
||||||
calc_SRCS:=DFM_library/CALCULATORS_LIBRARY/calculators_1.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/calculators_2.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/calculators_3.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/calculators_5.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/calculators_7.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/calculators_8.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/calculators_9.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90
|
|
||||||
#
|
|
||||||
# Test_integrals:
|
|
||||||
#
|
|
||||||
calc_TEST:=DFM_library/TEST_LIBRARY/test_integrals_2.f90 \
|
|
||||||
DFM_library/TEST_LIBRARY/test_integrals_3.f90 \
|
|
||||||
DFM_library/TEST_LIBRARY/test_integrals_8.f90 \
|
|
||||||
DFM_library/TEST_LIBRARY/test_int_Hubbard.f90
|
|
||||||
#
|
|
||||||
# Post-processing:
|
|
||||||
#
|
|
||||||
calc_POST:=DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/calculators_p.f90 \
|
|
||||||
DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90
|
|
||||||
|
|
||||||
calc_OBJS:=$(patsubst %.f90,%.o, $(calc_DEPS) $(calc_SRCS) $(calc_TEST) $(calc_POST))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SRCS:= $(patsubst %.o,%.f90,$(read_OBJS) $(io_OBJS) $(calc_OBJS))
|
|
||||||
OBJS:= $(addprefix $(BUILDDIR)/,$(notdir $(read_OBJS) $(io_OBJS) $(calc_OBJS)))
|
|
||||||
|
|
||||||
|
|
||||||
all: obj $(EXE)
|
|
||||||
|
|
||||||
|
|
||||||
obj: src $(OBJS)
|
|
||||||
|
|
||||||
|
|
||||||
$(EXE): $(OBJS) $(BUILDDIR)/epsilon.f90
|
|
||||||
@echo "building main $@..."
|
|
||||||
@$(FC) $(FFLAGS) $(LDFLAGS) $(LDLIBS) -J $(BUILDDIR) -o $@ $^
|
|
||||||
|
|
||||||
|
|
||||||
%.o: %.f90
|
|
||||||
@echo "Compiling $@..."
|
|
||||||
@$(FC) $(FFLAGS) -J $(BUILDDIR) -I. -o $@ -c $^
|
|
||||||
|
|
||||||
|
|
||||||
src: $(SRCS) epsilon.f90
|
|
||||||
@echo "updating source tree..."
|
|
||||||
@mkdir -p $(BUILDDIR)
|
|
||||||
@rsync -av $^ $(BUILDDIR)
|
|
||||||
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo "Cleaning..."
|
|
||||||
@rm -rf $(BUILDDIR)
|
|
||||||
@rm -rf $(EXE)
|
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# coding: utf-8
|
||||||
|
#
|
||||||
|
# Copyright © 2022 - Rennes Physics Institute
|
||||||
|
#
|
||||||
|
# This file is part of MsSpec-DFM.
|
||||||
|
#
|
||||||
|
# MsSpec-DFM is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
# MsSpec-DFM is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with MsSpec-DFM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Source file : src/python/msspec_dfm/version.py
|
||||||
|
# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
|
||||||
|
# Committed by : Sylvain Tricot <sylvain.tricot@univ-rennes1.fr> 1645806435 +0100
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# This example shows how to compute the plasmon dispersion for
|
||||||
|
# different values of electron densities
|
||||||
|
|
||||||
|
# Import section
|
||||||
|
from matplotlib import pyplot as plt
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
from msspec_dfm import compute
|
||||||
|
|
||||||
|
|
||||||
|
# Electron densities (electrons/cm**3)
|
||||||
|
densities = np.array([1e17, 1e18, 1e20, 1e23])
|
||||||
|
# Bohr radius (cm)
|
||||||
|
a0 = 0.529e-8
|
||||||
|
# Temperature
|
||||||
|
T = 300
|
||||||
|
|
||||||
|
# Loop over density values
|
||||||
|
for d in densities:
|
||||||
|
# The density is controlled by the 'RS' parameter, so
|
||||||
|
# compute the corresponding averaged radius (in Bohr units)
|
||||||
|
rs = ( (1/d) / ((4/3) * np.pi) ) ** (1/3) / a0
|
||||||
|
# Some output printing
|
||||||
|
stem = 'plas_disp'
|
||||||
|
print("Computing {} for RS={}".format(stem, rs))
|
||||||
|
# Here is the actual call to calculate
|
||||||
|
data = compute(N_Q=100, RS=rs, T=T)
|
||||||
|
# 'data' is a dict, each key is the name of an output file (without extansion).
|
||||||
|
# The value is the array of output values. The size of this array depends on
|
||||||
|
# the number of points chosen and on the kind of output file.
|
||||||
|
|
||||||
|
# Reading data
|
||||||
|
X, Y = data[stem].T
|
||||||
|
# Plotting
|
||||||
|
plt.plot(X, Y, label=r'density={:.2e} $e/cm^3$'.format(d))
|
||||||
|
|
||||||
|
# Plot setup
|
||||||
|
plt.xlabel(r'$q/k_F$')
|
||||||
|
plt.ylabel(r'$E/E_F$')
|
||||||
|
plt.title('Plasmon Energy [T = {:.1f}K]'.format(T))
|
||||||
|
plt.grid(True)
|
||||||
|
plt.legend()
|
||||||
|
# Pops up the graph window
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,335 @@
|
||||||
|
# Copyright © 2022 - Rennes Physics Institute
|
||||||
|
#
|
||||||
|
# This file is part of MsSpec-DFM.
|
||||||
|
#
|
||||||
|
# MsSpec-DFM is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
# MsSpec-DFM is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with MsSpec-DFM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Source file : src/Makefile
|
||||||
|
# Last modified: Fri, 25 Feb 2022 17:27:18 +0100
|
||||||
|
# Committed by : Sylvain Tricot <sylvain.tricot@univ-rennes1.fr> 1645806435 +0100
|
||||||
|
|
||||||
|
#
|
||||||
|
# Type 'make help' for some help
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
# OPTIONS #
|
||||||
|
###############################################################################
|
||||||
|
DEBUG = 0
|
||||||
|
BUILDDIR = build
|
||||||
|
SO = eps.so
|
||||||
|
FC = gfortran
|
||||||
|
PREFIX = $(HOME)/.local
|
||||||
|
AUTHORS = Didier Sébilleau <didier.sebilleau@univ-rennes1.fr>, \
|
||||||
|
Aditi Mandal <p2016009@pilani.bits-pilani.ac.in>, \
|
||||||
|
Sylvain Tricot <sylvain.tricot@univ-rennes1.fr>
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# /!\ DO NOT EDIT BELOW THAT LINE (unlesss you know what you're doing...) #
|
||||||
|
# CORE CONFIGURATION #
|
||||||
|
################################################################################
|
||||||
|
SHELL = bash
|
||||||
|
|
||||||
|
ifeq ($(DEBUG),0)
|
||||||
|
FFLAGS =
|
||||||
|
else
|
||||||
|
FFLAGS = -g -fbounds-check -fbacktrace -ffpe-trap=zero,overflow,underflow,invalid,denormal
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Make sure to use binaries of the of the virtualenv
|
||||||
|
ifdef VIRTUAL_ENV
|
||||||
|
PYTHON = $(VIRTUAL_ENV)/bin/python
|
||||||
|
F2PY = $(VIRTUAL_ENV)/bin/f2py
|
||||||
|
PIP = $(VIRTUAL_ENV)/bin/pip
|
||||||
|
else
|
||||||
|
PYTHON = $(shell which python)
|
||||||
|
F2PY = $(shell which f2py)
|
||||||
|
PIP = $(shell which pip)
|
||||||
|
endif
|
||||||
|
F2PYFLAGS = --f77exec=$(FC) --f90exec=$(FC)
|
||||||
|
|
||||||
|
|
||||||
|
# Ensure FC exists
|
||||||
|
ifeq (,$(shell which $(FC)))
|
||||||
|
$(error Missing $(FC) compiler)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Ensure python exists
|
||||||
|
ifeq (,$(shell which $(PYTHON)))
|
||||||
|
$(error Missing Python executable)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Ensure pip is installed
|
||||||
|
ifeq (,$(shell which $(PIP)))
|
||||||
|
$(error pip was not found)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PYTHON_PKG_NAME = msspec_dfm
|
||||||
|
VERSION = $(shell cd python && $(PYTHON) -c 'from $(PYTHON_PKG_NAME) import __version__; print(__version__)')
|
||||||
|
SRCDIR = fortran/DFM_library
|
||||||
|
PYPKG = python/$(PYTHON_PKG_NAME)
|
||||||
|
|
||||||
|
|
||||||
|
# Source files
|
||||||
|
MANPAGE := man/eps.1
|
||||||
|
|
||||||
|
cmn_DEPS:=$(SRCDIR)/ACCURACY_LIBRARY/accuracy.f90 \
|
||||||
|
$(SRCDIR)/INPUT_OUTPUT_LIBRARY/input_values.f90 \
|
||||||
|
$(SRCDIR)/DIMENSIONS_LIBRARY/dimensions.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/simple_numbers.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/powers_of_ten.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/mathematical_constants.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/physical_constants.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/factorials.f90 \
|
||||||
|
$(SRCDIR)/ERROR_HANDLING_LIBRARY/error_caltech.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/printfiles.f90 \
|
||||||
|
$(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/external_damping.f90 \
|
||||||
|
$(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90
|
||||||
|
|
||||||
|
tool_SRCS:=$(cmn_DEPS) \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/derivation.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/smoothing.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/interpolation.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/integration.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/integration4.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/transforms.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90
|
||||||
|
|
||||||
|
util_SRCS:=$(cmn_DEPS) \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/utilities_1.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/find_zero.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/polynomial_equations.f90
|
||||||
|
|
||||||
|
prop_SRCS:=$(cmn_DEPS) \
|
||||||
|
$(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 \
|
||||||
|
$(SRCDIR)/PLASMON_LIBRARY/plasmon_ene.f90 \
|
||||||
|
$(SRCDIR)/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 \
|
||||||
|
$(SRCDIR)/ENERGIES_LIBRARY/correlation_energies.f90 \
|
||||||
|
$(SRCDIR)/ENERGIES_LIBRARY/delta_t.f90 \
|
||||||
|
$(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 \
|
||||||
|
$(SRCDIR)/SCREENING_LIBRARY/screening_vec1.f90 \
|
||||||
|
$(SRCDIR)/CONFINEMENT_LIBRARY/confinement_ff.f90 \
|
||||||
|
$(SRCDIR)/CONFINEMENT_LIBRARY/coulomb.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/utilities_3.f90 \
|
||||||
|
$(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 \
|
||||||
|
$(SRCDIR)/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 \
|
||||||
|
$(SRCDIR)/ENERGIES_LIBRARY/xc_energies.f90 \
|
||||||
|
$(SRCDIR)/ENERGIES_LIBRARY/exchange_energies.f90 \
|
||||||
|
$(SRCDIR)/ENERGIES_LIBRARY/kinetic_energies.f90 \
|
||||||
|
$(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 \
|
||||||
|
$(SRCDIR)/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/utilities_4.f90 \
|
||||||
|
$(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90
|
||||||
|
#
|
||||||
|
# Read input data file:
|
||||||
|
#
|
||||||
|
read_SRCS:=$(tool_SRCS) $(util_SRCS) $(prop_SRCS) \
|
||||||
|
$(SRCDIR)/INPUT_OUTPUT_LIBRARY/read_data.f90
|
||||||
|
|
||||||
|
io_SRCS:=$(SRCDIR)/INPUT_OUTPUT_LIBRARY/filenames.f90 \
|
||||||
|
$(SRCDIR)/INPUT_OUTPUT_LIBRARY/outfiles.f90 \
|
||||||
|
$(SRCDIR)/INPUT_OUTPUT_LIBRARY/change_filenames.f90 \
|
||||||
|
$(SRCDIR)/INPUT_OUTPUT_LIBRARY/store_coef.f90 \
|
||||||
|
$(SRCDIR)/INPUT_OUTPUT_LIBRARY/open_files.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_headers.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_calc_type.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_Fermi.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_plasmons.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_scale_param.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_material_lengths.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_thermal.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_thermodynamics.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_energies.f90 \
|
||||||
|
$(SRCDIR)/INPUT_OUTPUT_LIBRARY/close_files.f90
|
||||||
|
|
||||||
|
calc_DEPS:=$(cmn_DEPS) \
|
||||||
|
$(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 \
|
||||||
|
$(SRCDIR)/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 \
|
||||||
|
$(SRCDIR)/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 \
|
||||||
|
$(SRCDIR)/CONFINEMENT_LIBRARY/confinement_wf.f90 \
|
||||||
|
$(SRCDIR)/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 \
|
||||||
|
$(SRCDIR)/MOMENTS_LIBRARY/loss_moments.f90 \
|
||||||
|
$(SRCDIR)/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 \
|
||||||
|
$(SRCDIR)/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 \
|
||||||
|
$(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 \
|
||||||
|
$(SRCDIR)/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 \
|
||||||
|
$(SRCDIR)/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 \
|
||||||
|
$(SRCDIR)/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 \
|
||||||
|
$(SRCDIR)/LOCAL_FIELD_LIBRARY/local_field_static.f90 \
|
||||||
|
$(SRCDIR)/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 \
|
||||||
|
$(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 \
|
||||||
|
$(SRCDIR)/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 \
|
||||||
|
$(SRCDIR)/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 \
|
||||||
|
$(SRCDIR)/SCREENING_LIBRARY/screening_vec2.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/velocities.f90 \
|
||||||
|
$(SRCDIR)/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 \
|
||||||
|
$(SRCDIR)/MOMENTS_LIBRARY/moments.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/packing_fraction.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/classical_fluid.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/diffusion_coefficient.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/electron_phonon_int.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/scattering_length.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/lifetime.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/viscosity.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/relaxation_time_static.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/utic_parameters.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/decay_rate.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/calc_damping.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/diffusion_coefficient_2.f90 \
|
||||||
|
$(SRCDIR)/PLASMON_LIBRARY/plasmon_dispersion.f90 \
|
||||||
|
$(SRCDIR)/PLASMON_LIBRARY/q_bounds.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/plasmon_damping.f90 \
|
||||||
|
$(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 \
|
||||||
|
$(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 \
|
||||||
|
$(SRCDIR)/UTILITIES_LIBRARY/utilities_2.f90 \
|
||||||
|
$(SRCDIR)/LANDAU_PARAMETERS_LIBRARY/landau.f90 \
|
||||||
|
$(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 \
|
||||||
|
$(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 \
|
||||||
|
$(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 \
|
||||||
|
$(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 \
|
||||||
|
$(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 \
|
||||||
|
$(SRCDIR)/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 \
|
||||||
|
$(SRCDIR)/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/decay_rate.f90 \
|
||||||
|
$(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 \
|
||||||
|
$(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 \
|
||||||
|
$(SRCDIR)/DAMPING_LIBRARY/mean_free_path.f90 \
|
||||||
|
$(SRCDIR)/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 \
|
||||||
|
$(SRCDIR)/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 \
|
||||||
|
$(SRCDIR)/PRINT_LIBRARY/print_asymptotic.f90 \
|
||||||
|
$(SRCDIR)/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 \
|
||||||
|
$(SRCDIR)/MOMENTS_LIBRARY/moments_loss.f90 \
|
||||||
|
$(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90
|
||||||
|
#
|
||||||
|
# Calculators:
|
||||||
|
#
|
||||||
|
calc_SRCS:=$(SRCDIR)/CALCULATORS_LIBRARY/calculators_1.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/calculators_2.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/calculators_3.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/calculators_5.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/calculators_7.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/calculators_8.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/calculators_9.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/call_calc_1.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/call_calc_2.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/call_calc_3.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/call_calc_5.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/call_calc_7.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/call_calc_8.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/call_calc_9.f90
|
||||||
|
#
|
||||||
|
# Test_integrals:
|
||||||
|
#
|
||||||
|
calc_TEST:=$(SRCDIR)/TEST_LIBRARY/test_integrals_2.f90 \
|
||||||
|
$(SRCDIR)/TEST_LIBRARY/test_integrals_3.f90 \
|
||||||
|
$(SRCDIR)/TEST_LIBRARY/test_integrals_8.f90 \
|
||||||
|
$(SRCDIR)/TEST_LIBRARY/test_int_Hubbard.f90
|
||||||
|
#
|
||||||
|
# Post-processing:
|
||||||
|
#
|
||||||
|
calc_POST:=$(SRCDIR)/PLASMON_LIBRARY/plasmon_dispersion_2.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/calculators_p.f90 \
|
||||||
|
$(SRCDIR)/CALCULATORS_LIBRARY/call_calc_p.f90
|
||||||
|
|
||||||
|
|
||||||
|
SRCS:=$(read_SRCS) $(io_SRCS) $(calc_DEPS) $(calc_SRCS) $(calc_TEST) $(calc_POST)
|
||||||
|
OBJS:=$(addprefix $(BUILDDIR)/,$(patsubst %.f90,%.o,$(SRCS)))
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: all obj so pypkg required_python_packages install uninstall man clean help
|
||||||
|
|
||||||
|
|
||||||
|
all: required_python_packages so
|
||||||
|
|
||||||
|
|
||||||
|
obj: $(OBJS)
|
||||||
|
|
||||||
|
|
||||||
|
so: python/$(PYTHON_PKG_NAME)/$(SO)
|
||||||
|
|
||||||
|
|
||||||
|
pypkg: python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
required_python_packages:
|
||||||
|
@$(PIP) install numpy matplotlib click-man
|
||||||
|
|
||||||
|
|
||||||
|
python/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: 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')
|
||||||
|
@cd python && $(PYTHON) setup.py sdist
|
||||||
|
|
||||||
|
|
||||||
|
python/$(PYTHON_PKG_NAME)/$(SO): $(OBJS) $(SRCDIR)/../_dfm.f90
|
||||||
|
@echo "Building $@ shared object..."
|
||||||
|
@mkdir -p $(BUILDDIR)
|
||||||
|
@$(F2PY) $(F2PYFLAGS) -I$(BUILDDIR) -m $(BUILDDIR).$(basename $(@F)) -c $(filter-out $(lastword $^), $^) $(SRCDIR)/../_dfm.f90 && mv $(BUILDDIR)/*.so $@
|
||||||
|
|
||||||
|
|
||||||
|
$(BUILDDIR)/%.o: %.f90
|
||||||
|
@echo "Compiling $@..."
|
||||||
|
@mkdir -p $(BUILDDIR)/$(dir $^)
|
||||||
|
@$(FC) $(FFLAGS) -J $(BUILDDIR) -I $(BUILDDIR) -fPIC -o $@ -c $<
|
||||||
|
|
||||||
|
|
||||||
|
man: python/man/inputfile.spec
|
||||||
|
@cd python && $(PYTHON) setup.py --command-packages=click_man.commands man_pages --target ./man/pages
|
||||||
|
@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:
|
||||||
|
@$(PIP) uninstall -y $(PYTHON_PKG_NAME)
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -rf $(BUILDDIR)
|
||||||
|
@rm -f python/$(PYTHON_PKG_NAME)/*.so
|
||||||
|
@rm -rf python/dist
|
||||||
|
@rm -rf python/*.egg-info
|
||||||
|
@rm -f python/VERSION
|
||||||
|
@rm -rf python/man/pages
|
||||||
|
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo "Type 'make' or 'make all' to build."
|
||||||
|
@echo "Type 'make install' to install the code."
|
|
@ -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
|
||||||
!
|
!
|
||||||
!
|
!
|
||||||
|
@ -59,104 +60,104 @@ CONTAINS
|
||||||
!
|
!
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
!
|
!
|
||||||
CHARACTER (LEN = 100) :: FLIST(NOFFN)
|
CHARACTER (LEN = 100) :: FLIST(NOFFN)
|
||||||
!
|
!
|
||||||
! 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
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue