diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..37c6555 --- /dev/null +++ b/.gitignore @@ -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 diff --git a/New_libraries/Makefile b/New_libraries/Makefile deleted file mode 100644 index 79a5250..0000000 --- a/New_libraries/Makefile +++ /dev/null @@ -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) - diff --git a/examples/example00.py b/examples/example00.py new file mode 100644 index 0000000..e98360e --- /dev/null +++ b/examples/example00.py @@ -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 . +# +# Source file : src/python/msspec_dfm/version.py +# Last modified: Fri, 25 Feb 2022 17:27:32 +0100 +# Committed by : Sylvain Tricot 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() + + + + + diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..2540d34 --- /dev/null +++ b/src/Makefile @@ -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 . +# +# Source file : src/Makefile +# Last modified: Fri, 25 Feb 2022 17:27:18 +0100 +# Committed by : Sylvain Tricot 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 , \ + Aditi Mandal , \ + Sylvain Tricot + +################################################################################ +# /!\ 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." diff --git a/New_libraries/DFM_library/ACCURACY_LIBRARY/accuracy.f90 b/src/fortran/DFM_library/ACCURACY_LIBRARY/accuracy.f90 similarity index 100% rename from New_libraries/DFM_library/ACCURACY_LIBRARY/accuracy.f90 rename to src/fortran/DFM_library/ACCURACY_LIBRARY/accuracy.f90 diff --git a/New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 b/src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 similarity index 100% rename from New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 rename to src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 diff --git a/New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 b/src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 similarity index 100% rename from New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 rename to src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 diff --git a/New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 b/src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 similarity index 100% rename from New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 rename to src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 diff --git a/New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 b/src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 similarity index 100% rename from New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 rename to src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_1.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_1.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_1.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_1.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_2.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_2.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_2.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_2.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_3.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_3.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_3.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_3.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_4.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_4.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_4.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_4.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_5.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_5.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_5.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_5.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_6.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_6.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_6.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_6.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_7.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_7.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_7.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_7.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_8.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_8.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_8.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_8.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_9.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_9.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_9.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_9.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_p.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_p.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_p.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_p.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_4.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_4.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_4.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_4.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_6.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_6.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_6.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_6.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90 diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90 similarity index 100% rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90 rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90 diff --git a/New_libraries/DFM_library/CONFINEMENT_LIBRARY/Note.txt b/src/fortran/DFM_library/CONFINEMENT_LIBRARY/Note.txt similarity index 100% rename from New_libraries/DFM_library/CONFINEMENT_LIBRARY/Note.txt rename to src/fortran/DFM_library/CONFINEMENT_LIBRARY/Note.txt diff --git a/New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90 b/src/fortran/DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90 similarity index 100% rename from New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90 rename to src/fortran/DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90 diff --git a/New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90 b/src/fortran/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90 similarity index 100% rename from New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90 rename to src/fortran/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90 diff --git a/New_libraries/DFM_library/CONFINEMENT_LIBRARY/coulomb.f90 b/src/fortran/DFM_library/CONFINEMENT_LIBRARY/coulomb.f90 similarity index 100% rename from New_libraries/DFM_library/CONFINEMENT_LIBRARY/coulomb.f90 rename to src/fortran/DFM_library/CONFINEMENT_LIBRARY/coulomb.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/calc_damping.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/calc_damping.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/calc_damping.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/calc_damping.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/classical_fluid.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/classical_fluid.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/classical_fluid.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/classical_fluid.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/decay_rate.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/decay_rate.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/decay_rate.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/decay_rate.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/external_damping.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/external_damping.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/external_damping.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/external_damping.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/lifetime.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/lifetime.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/lifetime.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/lifetime.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/mean_free_path.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/mean_free_path.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/mean_free_path.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/mean_free_path.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/packing_fraction.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/packing_fraction.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/packing_fraction.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/packing_fraction.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/plasmon_damping.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/plasmon_damping.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/plasmon_damping.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/plasmon_damping.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/relaxation_time_dynamic.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/relaxation_time_dynamic.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/relaxation_time_dynamic.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/relaxation_time_dynamic.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/scattering_length.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/scattering_length.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/scattering_length.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/scattering_length.f90 diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/viscosity.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/viscosity.f90 similarity index 100% rename from New_libraries/DFM_library/DAMPING_LIBRARY/viscosity.f90 rename to src/fortran/DFM_library/DAMPING_LIBRARY/viscosity.f90 diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 similarity index 100% rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 similarity index 100% rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90~ b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90~ similarity index 100% rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90~ rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90~ diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 similarity index 100% rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 similarity index 100% rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 similarity index 100% rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 diff --git a/New_libraries/DFM_library/DIMENSIONS_LIBRARY/dimensions.f90 b/src/fortran/DFM_library/DIMENSIONS_LIBRARY/dimensions.f90 similarity index 100% rename from New_libraries/DFM_library/DIMENSIONS_LIBRARY/dimensions.f90 rename to src/fortran/DFM_library/DIMENSIONS_LIBRARY/dimensions.f90 diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/PhysRevB.11.113.pdf b/src/fortran/DFM_library/ENERGIES_LIBRARY/PhysRevB.11.113.pdf similarity index 100% rename from New_libraries/DFM_library/ENERGIES_LIBRARY/PhysRevB.11.113.pdf rename to src/fortran/DFM_library/ENERGIES_LIBRARY/PhysRevB.11.113.pdf diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/correlation_energies.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/correlation_energies.f90 similarity index 100% rename from New_libraries/DFM_library/ENERGIES_LIBRARY/correlation_energies.f90 rename to src/fortran/DFM_library/ENERGIES_LIBRARY/correlation_energies.f90 diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/delta_t.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/delta_t.f90 similarity index 100% rename from New_libraries/DFM_library/ENERGIES_LIBRARY/delta_t.f90 rename to src/fortran/DFM_library/ENERGIES_LIBRARY/delta_t.f90 diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/exchange_energies.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/exchange_energies.f90 similarity index 100% rename from New_libraries/DFM_library/ENERGIES_LIBRARY/exchange_energies.f90 rename to src/fortran/DFM_library/ENERGIES_LIBRARY/exchange_energies.f90 diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90 similarity index 100% rename from New_libraries/DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90 rename to src/fortran/DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90 diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/xc_energies.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/xc_energies.f90 similarity index 100% rename from New_libraries/DFM_library/ENERGIES_LIBRARY/xc_energies.f90 rename to src/fortran/DFM_library/ENERGIES_LIBRARY/xc_energies.f90 diff --git a/New_libraries/DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90 b/src/fortran/DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90 similarity index 100% rename from New_libraries/DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90 rename to src/fortran/DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90 diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90 similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90 rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90 diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90 similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90 rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90 diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/diel_func.txt b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/diel_func.txt similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/diel_func.txt rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/diel_func.txt diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90 similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90 rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90 diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90 similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90 rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90 diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/missing.txt b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/missing.txt similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/missing.txt rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/missing.txt diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/nomenclature.txt b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/nomenclature.txt similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/nomenclature.txt rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/nomenclature.txt diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90 similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90 rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90 diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 similarity index 73% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 index 063f149..78f340f 100644 --- a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 +++ b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 @@ -6,6 +6,7 @@ MODULE OUTFILES ! This module contains functions/subroutines for working with ! the output files ! + CHARACTER (LEN = 80) :: OUTDIR CONTAINS ! ! @@ -59,104 +60,104 @@ CONTAINS ! IMPLICIT NONE ! - CHARACTER (LEN = 100) :: FLIST(NOFFN) + CHARACTER (LEN = 100) :: FLIST(NOFFN) ! ! Filenames: ! - DFFILE='Results/diel_func.dat' ! dielectric function file - PZFILE='Results/pola_func.dat' ! polarization function - SUFILE='Results/susc_func.dat' ! susceptibility function - CDFILE='Results/cond_func.dat' ! electrical conductivity + DFFILE=TRIM(OUTDIR)//'/diel_func.dat' ! dielectric function file + PZFILE=TRIM(OUTDIR)//'/pola_func.dat' ! polarization function + SUFILE=TRIM(OUTDIR)//'/susc_func.dat' ! susceptibility function + CDFILE=TRIM(OUTDIR)//'/cond_func.dat' ! electrical conductivity ! - PDFILE='Results/plas_disp.dat' ! plasmon dispersion file - EHFILE='Results/elec_hole.dat' ! electron-hole dispersion file - E2FILE='Results/elec_hol2.dat' ! two electron-hole dispersion - CKFILE='Results/int_pot_k.dat' ! interaction potential (k-space) - CRFILE='Results/int_pot_r.dat' ! interaction potential (real space) - PKFILE='Results/plas_kine.dat' ! plasmon kinetic energy file + PDFILE=TRIM(OUTDIR)//'/plas_disp.dat' ! plasmon dispersion file + EHFILE=TRIM(OUTDIR)//'/elec_hole.dat' ! electron-hole dispersion file + E2FILE=TRIM(OUTDIR)//'/elec_hol2.dat' ! two electron-hole dispersion + CKFILE=TRIM(OUTDIR)//'/int_pot_k.dat' ! interaction potential (k-space) + CRFILE=TRIM(OUTDIR)//'/int_pot_r.dat' ! interaction potential (real space) + PKFILE=TRIM(OUTDIR)//'/plas_kine.dat' ! plasmon kinetic energy file ! - LFFILE='Results/loca_fiel.dat' ! local-field correction file G(q,om) - IQFILE='Results/ginf_fiel.dat' ! G(q,inf) file - SFFILE='Results/stru_fact.dat' ! structure factor file S(q,om) - PCFILE='Results/pair_corr.dat' ! pair correlation function file - P2FILE='Results/pair_dist.dat' ! pair distribution function file - VXFILE='Results/vertex_fu.dat' ! vertex function Gamma(q,om) - DCFILE='Results/plas_damp.dat' ! plasmon damping coefficient Im[eps]/q^2 - MDFILE='Results/mome_dist.dat' ! momentum distribution - LDFILE='Results/landau_pa.dat' ! Landau parameters - DPFILE='Results/damp_file.dat' ! damping file - LTFILE='Results/life_time.dat' ! plasmon lifetime file - BRFILE='Results/broadenin.dat' ! plasmon broadening - PEFILE='Results/plas_ener.dat' ! plasmon energy - QCFILE='Results/qc_bounds.dat' ! plasmon q-bounds - RLFILE='Results/rela_time.dat' ! relaxation time - KSFILE='Results/screen_wv.dat' ! screening wave vector - OQFILE='Results/omega_qvf.dat' ! omega = q * v_F file - MEFILE='Results/moments_e.dat' ! moments of epsilon - MSFILE='Results/moments_s.dat' ! moments of S(q,omega) - MLFILE='Results/moments_l.dat' ! moments of loss function - MCFILE='Results/moments_c.dat' ! moments of conductivity - DEFILE='Results/deri_epsi.dat' ! derivative of Re[ dielectric function ] - ZEFILE='Results/ree0_file.dat' ! Re[ dielectric function ] = 0 - SRFILE='Results/sum_rules.dat' ! sum rules for epsilon - CWFILE='Results/confin_wf.dat' ! confinement wave function - CFFILE='Results/confin_pt.dat' ! confinement potential - EMFILE='Results/effe_mass.dat' ! effective mass - MFFILE='Results/mean_path.dat' ! mean free path - SPFILE='Results/spec_func.dat' ! spectral function - SEFILE='Results/self_ener.dat' ! self-energy - SBFILE='Results/subb_ener.dat' ! subband energies - ESFILE='Results/elia_func.dat' ! Eliashberg function - GRFILE='Results/grune_par.dat' ! Grüneisen parameter - FDFILE='Results/fermi_dir.dat' ! Fermi-Dirac distribution - BEFILE='Results/bose_eins.dat' ! Bose-Einstein distribution - MXFILE='Results/maxwell_d.dat' ! Maxwell distribution - SCFILE='Results/scale_par.dat' ! scale parameters - DSFILE='Results/dens_stat.dat' ! density of states - NVFILE='Results/neva_four.dat' ! Nevanlinaa/memory function - MTFILE='Results/memo_time.dat' ! time domain memory function + LFFILE=TRIM(OUTDIR)//'/loca_fiel.dat' ! local-field correction file G(q,om) + IQFILE=TRIM(OUTDIR)//'/ginf_fiel.dat' ! G(q,inf) file + SFFILE=TRIM(OUTDIR)//'/stru_fact.dat' ! structure factor file S(q,om) + PCFILE=TRIM(OUTDIR)//'/pair_corr.dat' ! pair correlation function file + P2FILE=TRIM(OUTDIR)//'/pair_dist.dat' ! pair distribution function file + VXFILE=TRIM(OUTDIR)//'/vertex_fu.dat' ! vertex function Gamma(q,om) + DCFILE=TRIM(OUTDIR)//'/plas_damp.dat' ! plasmon damping coefficient Im[eps]/q^2 + MDFILE=TRIM(OUTDIR)//'/mome_dist.dat' ! momentum distribution + LDFILE=TRIM(OUTDIR)//'/landau_pa.dat' ! Landau parameters + DPFILE=TRIM(OUTDIR)//'/damp_file.dat' ! damping file + LTFILE=TRIM(OUTDIR)//'/life_time.dat' ! plasmon lifetime file + BRFILE=TRIM(OUTDIR)//'/broadenin.dat' ! plasmon broadening + PEFILE=TRIM(OUTDIR)//'/plas_ener.dat' ! plasmon energy + QCFILE=TRIM(OUTDIR)//'/qc_bounds.dat' ! plasmon q-bounds + RLFILE=TRIM(OUTDIR)//'/rela_time.dat' ! relaxation time + KSFILE=TRIM(OUTDIR)//'/screen_wv.dat' ! screening wave vector + OQFILE=TRIM(OUTDIR)//'/omega_qvf.dat' ! omega = q * v_F file + MEFILE=TRIM(OUTDIR)//'/moments_e.dat' ! moments of epsilon + MSFILE=TRIM(OUTDIR)//'/moments_s.dat' ! moments of S(q,omega) + MLFILE=TRIM(OUTDIR)//'/moments_l.dat' ! moments of loss function + MCFILE=TRIM(OUTDIR)//'/moments_c.dat' ! moments of conductivity + DEFILE=TRIM(OUTDIR)//'/deri_epsi.dat' ! derivative of Re[ dielectric function ] + ZEFILE=TRIM(OUTDIR)//'/ree0_file.dat' ! Re[ dielectric function ] = 0 + SRFILE=TRIM(OUTDIR)//'/sum_rules.dat' ! sum rules for epsilon + CWFILE=TRIM(OUTDIR)//'/confin_wf.dat' ! confinement wave function + CFFILE=TRIM(OUTDIR)//'/confin_pt.dat' ! confinement potential + EMFILE=TRIM(OUTDIR)//'/effe_mass.dat' ! effective mass + MFFILE=TRIM(OUTDIR)//'/mean_path.dat' ! mean free path + SPFILE=TRIM(OUTDIR)//'/spec_func.dat' ! spectral function + SEFILE=TRIM(OUTDIR)//'/self_ener.dat' ! self-energy + SBFILE=TRIM(OUTDIR)//'/subb_ener.dat' ! subband energies + ESFILE=TRIM(OUTDIR)//'/elia_func.dat' ! Eliashberg function + GRFILE=TRIM(OUTDIR)//'/grune_par.dat' ! Grüneisen parameter + FDFILE=TRIM(OUTDIR)//'/fermi_dir.dat' ! Fermi-Dirac distribution + BEFILE=TRIM(OUTDIR)//'/bose_eins.dat' ! Bose-Einstein distribution + MXFILE=TRIM(OUTDIR)//'/maxwell_d.dat' ! Maxwell distribution + SCFILE=TRIM(OUTDIR)//'/scale_par.dat' ! scale parameters + DSFILE=TRIM(OUTDIR)//'/dens_stat.dat' ! density of states + NVFILE=TRIM(OUTDIR)//'/neva_four.dat' ! Nevanlinaa/memory function + MTFILE=TRIM(OUTDIR)//'/memo_time.dat' ! time domain memory function ! - GPFILE='Results/gran_part.dat' ! grand partition function - PRFILE='Results/epressure.dat' ! electronic pressure - COFILE='Results/comp_file.dat' ! compressibility - CPFILE='Results/chem_pote.dat' ! chemical potential - BMFILE='Results/bulk_modu.dat' ! bulk modulus - SHFILE='Results/shear_mod.dat' ! shear modulus - S0FILE='Results/zero_soun.dat' ! zero sound velocity - S1FILE='Results/firs_soun.dat' ! first sound velocity - DTFILE='Results/Debye_tmp.dat' ! Debye temperature - PSFILE='Results/para_susc.dat' ! Pauli paramagnetic susceptibility - IEFILE='Results/inter_ene.dat' ! internal energy - EIFILE='Results/exces_ene.dat' ! excess internal energy - FHFILE='Results/helm_free.dat' ! Helmholtz free energy - EYFILE='Results/entropy_f.dat' ! entropy + GPFILE=TRIM(OUTDIR)//'/gran_part.dat' ! grand partition function + PRFILE=TRIM(OUTDIR)//'/epressure.dat' ! electronic pressure + COFILE=TRIM(OUTDIR)//'/comp_file.dat' ! compressibility + CPFILE=TRIM(OUTDIR)//'/chem_pote.dat' ! chemical potential + BMFILE=TRIM(OUTDIR)//'/bulk_modu.dat' ! bulk modulus + SHFILE=TRIM(OUTDIR)//'/shear_mod.dat' ! shear modulus + S0FILE=TRIM(OUTDIR)//'/zero_soun.dat' ! zero sound velocity + S1FILE=TRIM(OUTDIR)//'/firs_soun.dat' ! first sound velocity + DTFILE=TRIM(OUTDIR)//'/Debye_tmp.dat' ! Debye temperature + PSFILE=TRIM(OUTDIR)//'/para_susc.dat' ! Pauli paramagnetic susceptibility + IEFILE=TRIM(OUTDIR)//'/inter_ene.dat' ! internal energy + EIFILE=TRIM(OUTDIR)//'/exces_ene.dat' ! excess internal energy + FHFILE=TRIM(OUTDIR)//'/helm_free.dat' ! Helmholtz free energy + EYFILE=TRIM(OUTDIR)//'/entropy_f.dat' ! entropy ! - EFFILE='Results/fermi_ene.dat' ! Fermi energy - KFFILE='Results/fermi_vec.dat' ! Fermi momentum - VFFILE='Results/fermi_vel.dat' ! Fermi velocity - TEFILE='Results/fermi_tmp.dat' ! Fermi temperature - DLFILE='Results/fermi_dos.dat' ! Fermi density of states + EFFILE=TRIM(OUTDIR)//'/fermi_ene.dat' ! Fermi energy + KFFILE=TRIM(OUTDIR)//'/fermi_vec.dat' ! Fermi momentum + VFFILE=TRIM(OUTDIR)//'/fermi_vel.dat' ! Fermi velocity + TEFILE=TRIM(OUTDIR)//'/fermi_tmp.dat' ! Fermi temperature + DLFILE=TRIM(OUTDIR)//'/fermi_dos.dat' ! Fermi density of states ! - TWFILE='Results/thermal_w.dat' ! thermal De Broglie wavelength - VTFILE='Results/thermal_v.dat' ! thermal velocity - TCFILE='Results/thermal_c.dat' ! thermal conductivity + TWFILE=TRIM(OUTDIR)//'/thermal_w.dat' ! thermal De Broglie wavelength + VTFILE=TRIM(OUTDIR)//'/thermal_v.dat' ! thermal velocity + TCFILE=TRIM(OUTDIR)//'/thermal_c.dat' ! thermal conductivity ! - EGFILE='Results/ground_st.dat' ! ground state energy - EXFILE='Results/ex_energy.dat' ! exchange energy - XCFILE='Results/xc_energy.dat' ! exchange correlation energy - ECFILE='Results/corr_ener.dat' ! correlation energy - HFFILE='Results/hf_energy.dat' ! Hartree-Fock energy - EKFILE='Results/kine_ener.dat' ! kinetic energy - EPFILE='Results/pote_ener.dat' ! potential energy + EGFILE=TRIM(OUTDIR)//'/ground_st.dat' ! ground state energy + EXFILE=TRIM(OUTDIR)//'/ex_energy.dat' ! exchange energy + XCFILE=TRIM(OUTDIR)//'/xc_energy.dat' ! exchange correlation energy + ECFILE=TRIM(OUTDIR)//'/corr_ener.dat' ! correlation energy + HFFILE=TRIM(OUTDIR)//'/hf_energy.dat' ! Hartree-Fock energy + EKFILE=TRIM(OUTDIR)//'/kine_ener.dat' ! kinetic energy + EPFILE=TRIM(OUTDIR)//'/pote_ener.dat' ! potential energy ! - VIFILE='Results/visc_coef.dat' ! shear viscosity - DIFILE='Results/diff_coef.dat' ! diffusion coefficient + VIFILE=TRIM(OUTDIR)//'/visc_coef.dat' ! shear viscosity + DIFILE=TRIM(OUTDIR)//'/diff_coef.dat' ! diffusion coefficient ! - FPFILE='Results/fluct_pot.dat' ! fluctuation potential file - ELFILE='Results/ener_loss.dat' ! energy loss function - POFILE='Results/stop_powe.dat' ! stopping power - RFFILE='Results/refrac_in.dat' ! refractive index - VCFILE='Results/dyna_coul.dat' ! dynamic screened Coulomb potential V(q,omega) + FPFILE=TRIM(OUTDIR)//'/fluct_pot.dat' ! fluctuation potential file + ELFILE=TRIM(OUTDIR)//'/ener_loss.dat' ! energy loss function + POFILE=TRIM(OUTDIR)//'/stop_powe.dat' ! stopping power + RFFILE=TRIM(OUTDIR)//'/refrac_in.dat' ! refractive index + VCFILE=TRIM(OUTDIR)//'/dyna_coul.dat' ! dynamic screened Coulomb potential V(q,omega) ! ! Corresponding fortran units ! @@ -425,7 +426,7 @@ CONTAINS ! For instance, if we want to compute the correlation energy ! 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 -! into the same output file 'Results/corr_ener.dat' +! into the same output file 'OUTDIR/corr_ener.dat' ! ! ! Author : D. Sébilleau diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90 similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90 rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90 diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90 similarity index 100% rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90 rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90 diff --git a/New_libraries/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 b/src/fortran/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 similarity index 100% rename from New_libraries/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 rename to src/fortran/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 diff --git a/New_libraries/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 b/src/fortran/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 similarity index 100% rename from New_libraries/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 rename to src/fortran/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 diff --git a/New_libraries/DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90 b/src/fortran/DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90 similarity index 100% rename from New_libraries/DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90 rename to src/fortran/DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90 diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/101.pdf b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/101.pdf similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/101.pdf rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/101.pdf diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/Multipair_excitations_and_sum_rules_in_i.pdf b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/Multipair_excitations_and_sum_rules_in_i.pdf similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/Multipair_excitations_and_sum_rules_in_i.pdf rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/Multipair_excitations_and_sum_rules_in_i.pdf diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.10.3052.pdf b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.10.3052.pdf similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.10.3052.pdf rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.10.3052.pdf diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.17.4512.pdf b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.17.4512.pdf similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.17.4512.pdf rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.17.4512.pdf diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90 similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90 rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90 diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 similarity index 100% rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 diff --git a/New_libraries/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory2_functions.f90 b/src/fortran/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory2_functions.f90 similarity index 100% rename from New_libraries/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory2_functions.f90 rename to src/fortran/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory2_functions.f90 diff --git a/New_libraries/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 b/src/fortran/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 similarity index 100% rename from New_libraries/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 rename to src/fortran/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 diff --git a/New_libraries/DFM_library/MOMENTS_LIBRARY/loss_moments.f90 b/src/fortran/DFM_library/MOMENTS_LIBRARY/loss_moments.f90 similarity index 100% rename from New_libraries/DFM_library/MOMENTS_LIBRARY/loss_moments.f90 rename to src/fortran/DFM_library/MOMENTS_LIBRARY/loss_moments.f90 diff --git a/New_libraries/DFM_library/MOMENTS_LIBRARY/moments.f90 b/src/fortran/DFM_library/MOMENTS_LIBRARY/moments.f90 similarity index 100% rename from New_libraries/DFM_library/MOMENTS_LIBRARY/moments.f90 rename to src/fortran/DFM_library/MOMENTS_LIBRARY/moments.f90 diff --git a/New_libraries/DFM_library/MOMENTS_LIBRARY/moments_loss.f90 b/src/fortran/DFM_library/MOMENTS_LIBRARY/moments_loss.f90 similarity index 100% rename from New_libraries/DFM_library/MOMENTS_LIBRARY/moments_loss.f90 rename to src/fortran/DFM_library/MOMENTS_LIBRARY/moments_loss.f90 diff --git a/New_libraries/DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 b/src/fortran/DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 similarity index 100% rename from New_libraries/DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 rename to src/fortran/DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 diff --git a/New_libraries/DFM_library/PAIR_CORRELATION_LIBRARY/PhysRevB.64.155102.pdf b/src/fortran/DFM_library/PAIR_CORRELATION_LIBRARY/PhysRevB.64.155102.pdf similarity index 100% rename from New_libraries/DFM_library/PAIR_CORRELATION_LIBRARY/PhysRevB.64.155102.pdf rename to src/fortran/DFM_library/PAIR_CORRELATION_LIBRARY/PhysRevB.64.155102.pdf diff --git a/New_libraries/DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 b/src/fortran/DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 similarity index 100% rename from New_libraries/DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 rename to src/fortran/DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 diff --git a/New_libraries/DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 b/src/fortran/DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 similarity index 100% rename from New_libraries/DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 rename to src/fortran/DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90 similarity index 100% rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90 rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90 diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 similarity index 100% rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 similarity index 100% rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 similarity index 100% rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 similarity index 100% rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 similarity index 100% rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 similarity index 100% rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 diff --git a/New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90 b/src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90 similarity index 100% rename from New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90 rename to src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90 diff --git a/New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90 b/src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90 similarity index 100% rename from New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90 rename to src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90 diff --git a/New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_ene.f90 b/src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_ene.f90 similarity index 100% rename from New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_ene.f90 rename to src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_ene.f90 diff --git a/New_libraries/DFM_library/PLASMON_LIBRARY/q_bounds.f90 b/src/fortran/DFM_library/PLASMON_LIBRARY/q_bounds.f90 similarity index 100% rename from New_libraries/DFM_library/PLASMON_LIBRARY/q_bounds.f90 rename to src/fortran/DFM_library/PLASMON_LIBRARY/q_bounds.f90 diff --git a/New_libraries/DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 b/src/fortran/DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 similarity index 100% rename from New_libraries/DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 rename to src/fortran/DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_Fermi.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_Fermi.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_Fermi.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_Fermi.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_asymptotic.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_asymptotic.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_asymptotic.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_asymptotic.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_calc_type.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_calc_type.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_calc_type.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_calc_type.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_energies.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_energies.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_energies.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_energies.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_headers.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_headers.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_headers.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_headers.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_material.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_material.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_material.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_material.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_material_lengths.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_material_lengths.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_material_lengths.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_material_lengths.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_plasmons.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_plasmons.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_plasmons.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_plasmons.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_scale_param.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_scale_param.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_scale_param.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_scale_param.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_thermal.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_thermal.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_thermal.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_thermal.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_thermodynamics.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_thermodynamics.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/print_thermodynamics.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/print_thermodynamics.f90 diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/printfiles.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/printfiles.f90 similarity index 100% rename from New_libraries/DFM_library/PRINT_LIBRARY/printfiles.f90 rename to src/fortran/DFM_library/PRINT_LIBRARY/printfiles.f90 diff --git a/New_libraries/DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 b/src/fortran/DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 similarity index 100% rename from New_libraries/DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 rename to src/fortran/DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 diff --git a/New_libraries/DFM_library/SCREENING_LIBRARY/screening_vec1.f90 b/src/fortran/DFM_library/SCREENING_LIBRARY/screening_vec1.f90 similarity index 100% rename from New_libraries/DFM_library/SCREENING_LIBRARY/screening_vec1.f90 rename to src/fortran/DFM_library/SCREENING_LIBRARY/screening_vec1.f90 diff --git a/New_libraries/DFM_library/SCREENING_LIBRARY/screening_vec2.f90 b/src/fortran/DFM_library/SCREENING_LIBRARY/screening_vec2.f90 similarity index 100% rename from New_libraries/DFM_library/SCREENING_LIBRARY/screening_vec2.f90 rename to src/fortran/DFM_library/SCREENING_LIBRARY/screening_vec2.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 similarity index 100% rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 diff --git a/New_libraries/DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 b/src/fortran/DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 similarity index 100% rename from New_libraries/DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 rename to src/fortran/DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/PhysRevA.8.990.pdf b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/PhysRevA.8.990.pdf similarity index 100% rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/PhysRevA.8.990.pdf rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/PhysRevA.8.990.pdf diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 similarity index 100% rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 similarity index 100% rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 similarity index 100% rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 similarity index 100% rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 similarity index 100% rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 diff --git a/New_libraries/DFM_library/SUM_RULES_LIBRARY/sum_rules.f90 b/src/fortran/DFM_library/SUM_RULES_LIBRARY/sum_rules.f90 similarity index 100% rename from New_libraries/DFM_library/SUM_RULES_LIBRARY/sum_rules.f90 rename to src/fortran/DFM_library/SUM_RULES_LIBRARY/sum_rules.f90 diff --git a/New_libraries/DFM_library/TEST_LIBRARY/calculators_test.f90 b/src/fortran/DFM_library/TEST_LIBRARY/calculators_test.f90 similarity index 100% rename from New_libraries/DFM_library/TEST_LIBRARY/calculators_test.f90 rename to src/fortran/DFM_library/TEST_LIBRARY/calculators_test.f90 diff --git a/New_libraries/DFM_library/TEST_LIBRARY/test_int_Hubbard.f90 b/src/fortran/DFM_library/TEST_LIBRARY/test_int_Hubbard.f90 similarity index 100% rename from New_libraries/DFM_library/TEST_LIBRARY/test_int_Hubbard.f90 rename to src/fortran/DFM_library/TEST_LIBRARY/test_int_Hubbard.f90 diff --git a/New_libraries/DFM_library/TEST_LIBRARY/test_integrals_2.f90 b/src/fortran/DFM_library/TEST_LIBRARY/test_integrals_2.f90 similarity index 100% rename from New_libraries/DFM_library/TEST_LIBRARY/test_integrals_2.f90 rename to src/fortran/DFM_library/TEST_LIBRARY/test_integrals_2.f90 diff --git a/New_libraries/DFM_library/TEST_LIBRARY/test_integrals_3.f90 b/src/fortran/DFM_library/TEST_LIBRARY/test_integrals_3.f90 similarity index 100% rename from New_libraries/DFM_library/TEST_LIBRARY/test_integrals_3.f90 rename to src/fortran/DFM_library/TEST_LIBRARY/test_integrals_3.f90 diff --git a/New_libraries/DFM_library/TEST_LIBRARY/test_integrals_8.f90 b/src/fortran/DFM_library/TEST_LIBRARY/test_integrals_8.f90 similarity index 100% rename from New_libraries/DFM_library/TEST_LIBRARY/test_integrals_8.f90 rename to src/fortran/DFM_library/TEST_LIBRARY/test_integrals_8.f90 diff --git a/New_libraries/DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 b/src/fortran/DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 similarity index 100% rename from New_libraries/DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 rename to src/fortran/DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 diff --git a/New_libraries/DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 b/src/fortran/DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 similarity index 100% rename from New_libraries/DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 rename to src/fortran/DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/atomic_properties.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/atomic_properties.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/atomic_properties.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/atomic_properties.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/derivation.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/derivation.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/derivation.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/derivation.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/factorials.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/factorials.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/factorials.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/factorials.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/find_zero.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/find_zero.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/find_zero.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/find_zero.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration2.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration2.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration2.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration2.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration3.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration3.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration3.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration3.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration4.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration4.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration4.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration4.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration5.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration5.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration5.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration5.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/interpolation.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/interpolation.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/interpolation.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/interpolation.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/oxides_properties.odt b/src/fortran/DFM_library/UTILITIES_LIBRARY/oxides_properties.odt similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/oxides_properties.odt rename to src/fortran/DFM_library/UTILITIES_LIBRARY/oxides_properties.odt diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/physical_constants.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/physical_constants.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/physical_constants.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/physical_constants.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/semiconductors_properties.odt b/src/fortran/DFM_library/UTILITIES_LIBRARY/semiconductors_properties.odt similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/semiconductors_properties.odt rename to src/fortran/DFM_library/UTILITIES_LIBRARY/semiconductors_properties.odt diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/simple_numbers.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/simple_numbers.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/simple_numbers.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/simple_numbers.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/smoothing.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/smoothing.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/smoothing.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/smoothing.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/tools.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/tools.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/tools.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/tools.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/transforms.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/transforms.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/transforms.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/transforms.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utic_parameters.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utic_parameters.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utic_parameters.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utic_parameters.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_1.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_1.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_1.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_1.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_2.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_2.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_2.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_2.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_3.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_3.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_3.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_3.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_4.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_4.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_4.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_4.f90 diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/velocities.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/velocities.f90 similarity index 100% rename from New_libraries/DFM_library/UTILITIES_LIBRARY/velocities.f90 rename to src/fortran/DFM_library/UTILITIES_LIBRARY/velocities.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/sph_bessel.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/sph_bessel.f90 similarity index 100% rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/sph_bessel.f90 rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/sph_bessel.f90 diff --git a/New_libraries/Data/epsilon.dat b/src/fortran/Data/epsilon.dat similarity index 100% rename from New_libraries/Data/epsilon.dat rename to src/fortran/Data/epsilon.dat diff --git a/New_libraries/Data/replace.sh b/src/fortran/Data/replace.sh similarity index 100% rename from New_libraries/Data/replace.sh rename to src/fortran/Data/replace.sh diff --git a/src/fortran/_dfm.f90 b/src/fortran/_dfm.f90 new file mode 100644 index 0000000..e71b065 --- /dev/null +++ b/src/fortran/_dfm.f90 @@ -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 = 80) :: 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 diff --git a/New_libraries/epsilon.f90 b/src/fortran/epsilon.f90 similarity index 100% rename from New_libraries/epsilon.f90 rename to src/fortran/epsilon.f90 diff --git a/src/python/MANIFEST.in b/src/python/MANIFEST.in new file mode 100644 index 0000000..0192b89 --- /dev/null +++ b/src/python/MANIFEST.in @@ -0,0 +1,2 @@ +recursive-include msspec_dfm *.so +include pip.freeze diff --git a/src/python/man/inputfile.spec b/src/python/man/inputfile.spec new file mode 100644 index 0000000..8bd95c8 --- /dev/null +++ b/src/python/man/inputfile.spec @@ -0,0 +1,2590 @@ +.SH INPUT FILE FORMAT + +The input file is formatted as follows: + + ****************************************************************************** + * MsSpec DIELECTRIC FUNCTION MODULE * + ****************************************************************************** + *=======+=========+=========+=========+=========+============================* + * GENERAL PARAMETERS : * + *=======+=========+=========+=========+=========+============================* + * (q,omega,r) : * + *-------+---------+---------+---------+---------+----------------------------* + * 0.010 4.000 1000 Q_MIN,Q_MAX,N_Q * in units of k_F + * 0.010 4.000 2000 E_MIN,E_MAX,N_E * in units of E_F + * 0.010 4.000 2000 R_MIN,R_MAX,N_R * in units of 1/k_F + *-------+---------+---------+---------+---------+----------------------------* + * Material's properties : * + *-------+---------+---------+---------+---------+----------------------------* + * 2.079 1.000 SCHRO 1.000 RS,MSOM,MAT_TYP,EPS_B * + *-------+---------+---------+---------+---------+----------------------------* + * External fields : * + *-------+---------+---------+---------+---------+----------------------------* + * 1.00 0.000 0.000 NO T,E,H,FLD * + *-------+---------+---------+---------+---------+----------------------------* + * System's dimension : * + *-------+---------+---------+---------+---------+----------------------------* + * 3D DIM * + *-------+---------+---------+---------+---------+----------------------------* + * Confinement : * + *-------+---------+---------+---------+---------+----------------------------* + * 0.000 0.000 0.00 NO-CONF R0,L,OM0,CONFIN * + *-------+---------+---------+---------+---------+----------------------------* + * Multilayer structure : * + *-------+---------+---------+---------+---------+----------------------------* + * 0.000 0.000 0.00 0.00 DL,D1,N_DEP,N_INV * --- EPS_1 --- + * NONE 12.000 12.000 H_TYPE,EPS_1,EPS_2 * EPS_2 + *-------+---------+---------+---------+---------+----------------------------* --- EPS_1 --- + * Units : * + *-------+---------+---------+---------+---------+----------------------------* + * SIU SI UNIT,UNIK * + *-------+---------+---------+---------+---------+----------------------------* + * Screening : * + *-------+---------+---------+---------+---------+----------------------------* + * NO SC_TYPE * + *-------+---------+---------+---------+---------+----------------------------* + * Plasma type : * + *-------+---------+---------+---------+---------+----------------------------* + * OCP 1.000 0.000 PL_TYPE,ZION,ZION2 * + *-------+---------+---------+---------+---------+----------------------------* + * Calculation type : * + *-------+---------+---------+---------+---------+----------------------------* + * QUANTUM CAL_TYPE * + *=======+=========+=========+=========+=========+============================* + * DIELECTRIC FUNCTION : * + *=======+=========+=========+=========+=========+============================* + * DYNAMIC LONG NEV3 0 ESTDY,EPS_T,D_FUNC,I_T * + * STA2 COCO 0.500 0.600 NEV_TYPE,MEM_TYPE,ALPHA,BETA * + *-------+---------+---------+---------+---------+----------------------------* + * Analytical plasmon dispersion : * + *-------+---------+---------+---------+---------+----------------------------* + * RP2_MOD PL_DISP * + *-------+---------+---------+---------+---------+----------------------------* + * Local-field corrections * + *-------+---------+---------+---------+---------+----------------------------* + * STATIC ICUT IKP GSTDY,GQ_TYPE,IQ_TYPE * + * NONE NONE EC EC LANDAU,GQO_TYPE,G0_TYPE,GI_TYPE* + *-------+---------+---------+---------+---------+----------------------------* + * Damping : * + *-------+---------+---------+---------+---------+----------------------------* + * RELA NONE EX1 DAMPING,LT_TYPE,RT_TYPE * + * NONE EXTE NONE DR_TYPE,DC_TYPE,VI_TYPE * + * NONE NONE NONE EE_TYPE,EP_TYPE,EI_TYPE * + * NONE NONE LORE 1.250 IP_TYPE,PD_TYPE,QD_TYPE,ZETA * + * 0.500 FEMTO 50.00 D_VALUE_1,POWER_1,EK * + * 5.000 FEMTO 0.80 D_VALUE_2,POWER_2,PCT * + *-------+---------+---------+---------+---------+----------------------------* + * Electron-electron interaction : * + *-------+---------+---------+---------+---------+----------------------------* + * COULO 2.590 470.000 1.500 INT_POT,S,EPS,DELTA * + * 1.500 5.000 7 28 RC,ALF,M,N * + * 1.000 1.000 1.000 1.000 A1,A2,A3,A4 * + *-------+---------+---------+---------+---------+----------------------------* + * Electron-phonon interaction : * + *-------+---------+---------+---------+---------+----------------------------* + * 1500.000 1500.000 EP_C,DEBYE_T * + * 12.000 0.000 0.000 NA,MA,RA * + *-------+---------+---------+---------+---------+----------------------------* + * Electron-impurity interaction : * + *-------+---------+---------+---------+---------+----------------------------* + * 0.000 0.000 NI,EI_C * + *-------+---------+---------+---------+---------+----------------------------* + * Classical fluid parameters : * + *-------+---------+---------+---------+---------+----------------------------* + * SHS HSM HSP CF_TYPE,PF_TYPE,SL_TYPE * + *=======+=========+=========+=========+=========+============================* + * STRUCTURE FACTOR : * + *=======+=========+=========+=========+=========+============================* + * DYNAMIC PKA EPS SSTDY,SQ_TYPE,SQO_TYPE * + *=======+=========+=========+=========+=========+============================* + * PAIR CORRELATION FUNCTION : * + *=======+=========+=========+=========+=========+============================* + * SHA KIMB GR_TYPE,GR0_MODE * + *=======+=========+=========+=========+=========+============================* + * PAIR DISTRIBUTION FUNCTION : * + *=======+=========+=========+=========+=========+============================* + * CEG RH_TYPE * + *=======+=========+=========+=========+=========+============================* + * SPECTRAL FUNCTION : * + *=======+=========+=========+=========+=========+============================* + * NAIC SPF_TYPE * + *=======+=========+=========+=========+=========+============================* + * ENERGY CALCULATIONS : * + *=======+=========+=========+=========+=========+============================* + * GGSB_G NO NO EC_TYPE,FXC_TYPE,EXC_TYPE * + * HEG HEG EX_TYPE,EK_TYPE * + *=======+=========+=========+=========+=========+============================* + * SPIN POLARIZATION : * + *=======+=========+=========+=========+=========+============================* + * 1 0.000 IMODE,XI * + *=======+=========+=========+=========+=========+============================* + * THERMODYNAMIC PROPERTIES : * + *=======+=========+=========+=========+=========+============================* + * QUAN IK0 TH_PROP,GP_TYPE * + *=======+=========+=========+=========+=========+============================* + * ELECTRON MEAN FREE PATH : * + *=======+=========+=========+=========+=========+============================* + * 150.00 200.00 EK_INI,EK_FIN * + *=======+=========+=========+=========+=========+============================* + * CALCULATION OF MOMENTS : * + *=======+=========+=========+=========+=========+============================* + * 1 SQO N_M,M_TYPE * + *=======+=========+=========+=========+=========+============================* + * INCOMING ION BEAM : * + *=======+=========+=========+=========+=========+============================* + * 1.00 15000.00 Z_BEAM,EK_BEAM * + *=======+=========+=========+=========+=========+============================* + * OUTPUT CALCULATIONS/PRINTING : * + *=======+=========+=========+=========+=========+============================* + * 1 0 0 0 I_DF,I_PZ,I_SU,I_CD * + *-------+---------+---------+---------+---------+----------------------------* + * 1 1 0 0 I_PD,I_EH,I_E2,I_CK * + * 0 0 I_CR,I_PK * + *-------+---------+---------+---------+---------+----------------------------* + * 0 0 0 0 I_LF,I_IQ,I_SF,I_PC * + * 0 0 0 0 I_P2,I_VX,I_DC,I_MD * + * 0 0 0 0 I_LD,I_DP,I_LT,I_BR * + * 0 0 0 0 I_PE,I_QC,I_RL,I_KS * + * 0 0 0 0 I_OQ,I_ME,I_MS,I_ML * + * 0 0 0 0 I_MC,I_DE,I_ZE,I_SR * + * 0 0 0 0 I_CW,I_CF,I_EM,I_MF * + * 0 0 0 0 I_SP,I_SE,I_SB,I_ES * + * 0 0 0 0 I_GR,I_FD,I_BE,I_MX * + * 0 0 0 0 I_SC,I_DS,I_NV,I_MT * + *-------+---------+---------+---------+---------+----------------------------* + * 0 0 0 0 I_GP,I_PR,I_CO,I_CP * + * 0 0 0 0 I_BM,I_SH,I_S0,I_S1 * + * 0 0 0 0 I_DT,I_PS,I_IE,I_EI * + * 0 0 I_FH,I_EY * + *-------+---------+---------+---------+---------+----------------------------* + * 1 1 1 1 I_EF,I_KF,I_VF,I_TE * + * 1 I_DL * + *-------+---------+---------+---------+---------+----------------------------* + * 0 0 0 I_TW,I_VT,I_TC * + *-------+---------+---------+---------+---------+----------------------------* + * 0 0 0 0 I_EG,I_EX,I_XC,I_EC * + * 0 0 0 I_HF,I_EK,I_EP * + *-------+---------+---------+---------+---------+----------------------------* + * 0 0 I_VI,I_DI * + *-------+---------+---------+---------+---------+----------------------------* + * 0 0 0 0 I_FP,I_EL,I_PO,I_RF * + * 0 I_VC * + *-------+---------+---------+---------+---------+----------------------------* + * 0 2 0 I_FN,I_WR,I_TI * + *=======+=========+=========+=========+=========+============================* + * INPUT FILES : * + *----------------------------------------------------------------------------* + * NAME UNIT TYPE * + *=======+======================+======+=========+============================* + * epsilon.dat 5 INPUT DATA FILE * + *=======+======================+======+=========+============================* + * OUTPUT FILES : * + *----------------------------------------------------------------------------* + * NAME UNIT TYPE * + *=======+======================+======+=========+============================* + * epsilon.lis 6 CHECK FILE * + *=======+======================+======+=========+============================* + * END OF THE DATA FILE * + *============================================================================* + ****************************************************************************** + + +.SH DESCRIPTION OF THE CALCULATION PARAMETERS + + *=======+=========+=========+=========+=========+===========================* + * GENERAL PARAMETERS : * + *=======+=========+=========+=========+=========+===========================* + + * Q_MIN : minimum value of q (in units of k_F) + * Q_MAX : maximum value of q (in units of k_F) + * N_Q : number of q-points + + * E_MIN : minimum value of energy (in units of E_F) + * E_MAX : maximum value of energy (in units of E_F) + * N_E : number of E-points + + * R_MIN : minimum value of distance r (in units of 1/k_F) + * R_MAX : maximum value of distance r (in units of 1/k_F)) + * N_R : number of r-points + + *-------+---------+---------+---------+---------+---------------------------* + + * RS : average distance between 2 electrons (in units of a0) + ~ + * MSOM : m*/m (for semiconductors) + ~ + * MAT_TYP : type of material + MAT_TYPE = 'SCHRO' standard solid + MAT_TYPE = 'DIRAC' massless Fermions + MAT_TYPE = 'NEUTR' neutral classical liquid + MAT_TYPE = 'POLAR' polar classical liquid + ~ + * EPS_B : material's dielectric constant + + *-------+---------+---------+---------+---------+---------------------------* + + * T : temperature (in SI) + ~ + * E : external electric field (in SI) + ~ + * H : external magnetic field (in SI) + ~ + * FLD : strength of the magnetic field + FLD = 'NO' no field + FLD = 'WF' weak field + FLD = 'IF' intermediate field + FLD = 'LF' large field + + *-------+---------+---------+---------+---------+---------------------------* + + * DIM : dimension of the system + DIM = '3D' + DIM = '2D' + DIM = '1D' + DIM = 'Q0' quasi-0D + DIM = 'Q1' quasi-1D + DIM = 'Q2' quasi-2D + DIM = 'BL' bilayer + DIM = 'ML' multilayer + DIM = 'ML' multilayer + + ~ + + * R0 : wire radius + ~ + * L : length of quantum well + ~ + * OM0 : frequency of the confinement potential (SI) + ~ + * CONFIN : type of confinement + CONFIN = 'NO-CONF' no confinement + CONFIN = 'DSEPLAY' layer within a stacking of layers + CONFIN = 'CC-1111' cylindrical within subband 1 + CONFIN = 'CC-1122' cylindrical between subbands 1 and 2 + CONFIN = 'CC-1221' cylindrical between subbands 1 and 2 + CONFIN = 'CC-2222' cylindrical within subband 2 + CONFIN = 'HC-1111' harmonic within subband 1 + CONFIN = 'HC-1122' harmonic between subbands 1 and 2 + CONFIN = 'HC-1221' harmonic between subbands 1 and 2 + CONFIN = 'HC-2222' harmonic within subband 2 + CONFIN = 'INVLAYE' inversion layer in semiconductor + CONFIN = 'IQWE_LB' square well with an infinite barrier + CONFIN = 'PC1_QWI' parabolic + CONFIN = 'PC2_QWI' parabolic + CONFIN = 'SOFTCOR' soft-core potential + CONFIN = 'SWC_QWI' square well with an infinite barrier + + ~ + + * DL : interlayer distance + ~ + * D1 : distance between the two layers in the unit cell + ~ + * N_DEP : electron concentration in depletion layer (SI) + ~ + * N_INV : electron concentration in inversion layer (SI) + + ~ + + * H_TYPE : heterostructure type + H_TYPE = 'SSL1' semiconductor superlattice of type I + H_TYPE = 'SSL2' semiconductor superlattice of type II + H_TYPE = 'BILA' bilayer + H_TYPE = 'MLA1' multilayer with with one layer / unit cell + H_TYPE = 'MLA2' multilayer with with two layers / unit cell + ~ + * EPS_1 : background/layer dielectric constant + ~ + * EPS_2 : interlayer dielectric constant + + *-------+---------+---------+---------+---------+---------------------------* + + * UNIT : system unit + UNIT = 'SIU' international system + UNIT = 'CGS' CGS system + UNIT = 'ATU' atomic units + + * UNIK : K unit + UNIK = 'SI' international system + UNIK = 'AU' atomic units + + *-------+---------+---------+---------+---------+---------------------------* + + * SC_TYPE : type of screeening + SC_TYPE = 'NO' no screening + SC_TYPE = 'DH' Debye-Hückel + SC_TYPE = 'IS' Tago-Utsumi-Ichimaru + SC_TYPE = 'KL' Kleinman + SC_TYPE = 'OC' one-component plasma + SC_TYPE = 'RP' RPA + SC_TYPE = 'ST' Streitenberger + SC_TYPE = 'TF' Thomas-Fermi + SC_TYPE = 'UI' Utsumi-Ichimaru + SC_TYPE = 'YT' Yasuhara-Takada + + *-------+---------+---------+---------+---------+---------------------------* + + * PL_TYPE : type of plasma considered + PL_TYPE = 'OCP' --> one-component plasma (~ electron gas) + PL_TYPE = 'DCP' --> two-component plasma + + * ZION : atomic number of (first) ion + + * ZION2 : atomic number of second ion + + *-------+---------+---------+---------+---------+---------------------------* + + * CAL_TYPE : type of calculation + CAL_TYPE = 'QUANTUM' --> quantum fluid + CAL_TYPE = 'CLASSIC' --> classical fluid + + *=======+=========+=========+=========+=========+===========================* + * DIELECTRIC FUNCTION : * + *=======+=========+=========+=========+=========+===========================* + + + * ESTDY : static vs dynamic dielectric function + STDY = ' STATIC' + STDY = 'DYNAMIC' + + * EPS_T : type of dielcectric function + EPS_T = 'LONG' longitudinal --> D_FUNCL + EPS_T = 'TRAN' transverse --> D_FUNCT + + * D_FUNC : model of dielectric function : + + 1) Static: + + ---> longitudinal: + + D_FUNCL = 'LRPA' random phase approximation (3D,2D,1D) + D_FUNCL = 'THFE' Thomas-Fermi approximation (3D,2D,1D) + + 2) Dynamic: + + ---> transverse: + + D_FUNCT = 'RPA1' random phase approximation (3D,2D) + D_FUNCT = 'RPA2' random phase approximation (3D) + D_FUNCT = 'LVLA' linearized Vlasov (3D) + D_FUNCT = 'MER1' Mermin (3D) + D_FUNCT = 'BLTZ' Boltzmann (3D) + + ---> longitudinal: + + D_FUNCL = 'ARBR' Arista-Brandt 1 <-- T-dependent + D_FUNCL = 'ATAS' Atwal-Ashcroft <-- T-dependent + D_FUNCL = 'BLZ1' Boltzmann + D_FUNCL = 'BLZ2' damped Boltzmann + D_FUNCL = 'DACA' Arista-Brandt 2 <-- T-dependent + D_FUNCL = 'GOTZ' Götze memory function + D_FUNCL = 'HEAP' Hertel-Appel + D_FUNCL = 'HAFO' Hartree-Fock + D_FUNCL = 'HUCO' Hu-O'Connell <-- damping (3D,2D,Q1) + D_FUNCL = 'HYDR' hydrodynamic <-- damping + D_FUNCL = 'KLEI' Kleinman <-- T-dependent + D_FUNCL = 'KLKD' Klimontovich-Kraeft <-- T-dependent + D_FUNCL = 'KLKN' Klimontovich-Kraeft <-- T-dependent + D_FUNCL = 'LAND' Landau parameters-based + D_FUNCL = 'LVL1' linearized Vlasov (weak coupling) <-- T-dependent + D_FUNCL = 'LVL2' linearized Vlasov (strong coupling) <-- T-dependent + D_FUNCL = 'MEM2' Two-moment memory function <-- T-dependent + D_FUNCL = 'MEM3' Three-moment memory function <-- T-dependent + D_FUNCL = 'MEM4' Four-moment memory function <-- T-dependent + D_FUNCL = 'MER1' Mermin 1 <-- damping (3D,2D) + D_FUNCL = 'MER2' Lindhard-Mermin <-- T-dependent + D_FUNCL = 'MER+' Mermin with Local Field Corrections <-- damping + D_FUNCL = 'MSAP' mean spherical approximation + D_FUNCL = 'NEV2' Two-moment Nevanlinna <-- T-dependent + D_FUNCL = 'NEV3' Three-moment Nevanlinna <-- T-dependent + D_FUNCL = 'NEV4' Four-moment Nevanlinna <-- T-dependent + D_FUNCL = 'PLPO' plasmon pole + D_FUNCL = 'RDF1' Altshuler et al <-- damping + D_FUNCL = 'RDF2' Altshuler et al <-- damping + D_FUNCL = 'RPA1' RPA + D_FUNCL = 'RPA2' RPA <-- T-dependent + D_FUNCL = 'RPA+' RPA + static local field corrections + D_FUNCL = 'RPA3' random phase approximation <-- magnetic field (2D) + D_FUNCL = 'SO2E' computed from S(q,omega) + D_FUNCL = 'UTIC' Utsumi-Ichimaru <-- T-dependent + D_FUNCL = 'VLFP' Vlasov-Fokker-Planck <-- damping + + * I_T : way to incorporate temperature dependence + I_T = 0 --> no temperature (T = 0) + I_T = 1 --> analytical models used + I_T = 2 --> temperature convolution + + ~ + + * NEV_TYPE : type of Nevalinna function used (only for D_FUNCL = 'NEVn') + NEV_TYPE = 'NONE' --> no function + NEV_TYPE = 'RELA' --> static value h(q) = i / tau + NEV_TYPE = 'STA1' --> static value h(q) + NEV_TYPE = 'STA2' --> static value h(q) + NEV_TYPE = 'STA3' --> static value h(q) + NEV_TYPE = 'STA4' --> static value h(q) + NEV_TYPE = 'PEEL' --> Perel'-Eliashberg function + NEV_TYPE = 'PE76' --> Perel'-Eliashberg by Arkhipov et al + NEV_TYPE = 'CCP1' --> + NEV_TYPE = 'CCP2' --> + NEV_TYPE = 'CCP3' --> + NEV_TYPE = 'CCP4' --> + NEV_TYPE = 'PST1' --> + + * MEM_TYPE : type of memory function used (only for D_FUNCL = 'MEMn') + MEM_TYPE = 'NONE' --> no function + MEM_TYPE = 'DELT' --> delta function + MEM_TYPE = 'DGAU' --> double Gaussian functions + MEM_TYPE = 'EXPO' --> exponential function + MEM_TYPE = 'GAUS' --> Gaussian function + MEM_TYPE = 'LORE' --> Lorentzian function + MEM_TYPE = 'SINC' --> sinc function + MEM_TYPE = 'BES0' --> J_0(t) function + MEM_TYPE = 'BES1' --> J_1(t)/t function + MEM_TYPE = 'SEC2' --> sech^2(t) function + MEM_TYPE = 'COCO' --> Cole-Cole function + MEM_TYPE = 'CODA' --> Cole-Davidson function + MEM_TYPE = 'HANE' --> Habriliak-Negami function + MEM_TYPE = 'RAYI' --> Raganathan-Yip function + MEM_TYPE = 'LIHY' --> linearized hydrodynamic function + + * ALPHA : value of the Habriliak-Negami first parameter (in ]0,1]) + + * BETA : value of the Habriliak-Negami second parameter (in ]0,1]) + + *-------+---------+---------+---------+---------+---------------------------* + + * PL_DISP : method used to compute the plasmon dispersion (3D real case) + PL_DISP = 'HYDRODY' hydrodynamic model + PL_DISP = 'RP1_MOD' RPA model up to q^2 + PL_DISP = 'RP2_MOD' RPA model up to q^4 + PL_DISP = 'GOA_MOD' Gorobchenko model + PL_DISP = 'HER_APP' Hertel-Appel model <-- T-dependent + PL_DISP = 'HUBBARD' Hubbard model + PL_DISP = 'ELASTIC' elastic model + PL_DISP = ' EXACT' computed from the dielectric function + PL_DISP = 'SGBBN_M' SGBBN model + PL_DISP = 'AL0_MOD' gamma_0 limit + PL_DISP = 'ALI_MOD' gamma_inf limit + PL_DISP = 'NOP_MOD' Nozières-Pines model + PL_DISP = 'UTI_MOD' Utsumi-Ichimaru model + PL_DISP = 'TWA_MOD' Toigo-Woodruff model + PL_DISP = 'SUM_RU2' f-sum_rule + PL_DISP = 'SUM_RU3' 3rd-frequency sum_rule + * PL_DISP : method used to compute the plasmon dispersion (2D real case) + PL_DISP = 'HYDRODY' hydrodynamic model + PL_DISP = 'RPA_MOD' RPA model + PL_DISP = 'RAJAGOP' Rajagopal formula + * PL_DISP : method used to compute the plasmon dispersion (1D real case) + PL_DISP = 'HYDRODY' hydrodynamic model + PL_DISP = 'RPA_MOD' RPA model + + *-------+---------+---------+---------+---------+---------------------------* + + * GSTDY : static vs dynamic local-field corrections + GSTDY = ' STATIC' --> GQ_TYPE + GSTDY = 'DYNAMIC' --> GQO_TYPE + + * GQ_TYPE : local-field correction type (3D) static + GQ_TYPE = 'NONE' no local field correction + GQ_TYPE = 'ALDA' adiabatic local density + GQ_TYPE = 'ALFL' Alvarellos-Flores + GQ_TYPE = 'BEBR' Bedell-Brown + GQ_TYPE = 'CDOP' TDDFT Corradini et al correction + GQ_TYPE = 'GEV2' Geldart-Vosko 2 + GQ_TYPE = 'GEVO' Geldart-Vosko correction + GQ_TYPE = 'GOCA' Gold-Calmels + temperature-dep. --> GQ_TYPE = 'HNCA' hypernetted chain + GQ_TYPE = 'HORA' Holas-Rahman + GQ_TYPE = 'HUBB' Hubbard correction (only exchange) + GQ_TYPE = 'ICUT' Ichimaru-Utsumi correction + GQ_TYPE = 'IKPA' Iwamoto-Krotscheck-Pines + GQ_TYPE = 'IWA1' Iwamoto G_{-1} + GQ_TYPE = 'IWA2' Iwamoto G_{3} approx. + temperature-dep. --> GQ_TYPE = 'IWA3' Iwamoto G_{-1} + GQ_TYPE = 'IWA4' Iwamoto G_{3} exact + GQ_TYPE = 'JGDG' Jung-Garcia-Gonzalez-Dobson-Godby + GQ_TYPE = 'KLLA' Kleinman-Langreth correction + GQ_TYPE = 'LDAC' LDA correction + GQ_TYPE = 'MCSC' Moroni-Ceperley-Senatore correction + GQ_TYPE = 'NAGY' Nagy correction + GQ_TYPE = 'NEV1' Nevalinna two-moment approximation + GQ_TYPE = 'PGGA' Petersilka-Gossmann-Gross + GQ_TYPE = 'PVHF' Pavas-Vashishta Hartree-Fock correction + GQ_TYPE = 'RICE' Rice correction + GQ_TYPE = 'SHAW' Shaw correction + GQ_TYPE = 'SLAT' Slater correction + GQ_TYPE = 'STLS' Singwi et al correction + temperature-dep. --> GQ_TYPE = 'TKAC' Tkachenko correction + GQ_TYPE = 'TOUL' Toulouse parametrization of CDOP + GQ_TYPE = 'TRMA' Tripathy-Mandal + GQ_TYPE = 'VASI' Vashishta-Singwi correction + GQ_TYPE = 'UTI1' Utsumi-Ichimaru correction (only exchange) + + * GQ_TYPE : local-field correction type (2D) static + GQ_TYPE = 'NONE' no local field correction + GQ_TYPE = 'BUTO' Bulutay-Tomak + GQ_TYPE = 'DPGT' Davoudi-Giuliani-Giuliani-Tosi + GQ_TYPE = 'GOCA' Gold-Calmels + GQ_TYPE = 'HUBB' Hubbard correction (only exchange) + GQ_TYPE = 'IWA1' Iwamoto G_{-1} + GQ_TYPE = 'IWA2' Iwamoto G_{3} + GQ_TYPE = 'SAIC' Sato-Ichimaru correction + + * GQ_TYPE : local-field correction type (1D) static + GQ_TYPE = 'NONE' no local field correction + GQ_TYPE = 'GOCA' Gold-Calmels + GQ_TYPE = 'HUBB' Hubbard correction (only exchange) + + * IQ_TYPE : type of approximation for I(q) + IQ_TYPE = 'NON' I(q) = 0 + IQ_TYPE = 'GKM' Gorobchenko-Kohn-Maksimov + IQ_TYPE = 'HKA' Hong-Kim + IQ_TYPE = 'IKP' Iwamoto-Krotscheck-Pines parametrization + IQ_TYPE = 'KU1' Kugler 1 + IQ_TYPE = 'KU2' Kugler 1 + + ~ + + * LANDAU : model chosen for the calculation of the Landau parameters (3D) + LANDAU = 'NONE' Landau's theory not used + LANDAU = 'CHEN' Chen's approach + LANDAU = 'RASC' Rayleigh-Schrödinger expansion + LANDAU = 'ANBR' Anderson-Brinkman model + LANDAU = 'GUTZ' Gutzwiller model + LANDAU = 'IWPI' Iwamoto-Pines model (hard-sphere) + LANDAU = 'GCYO' Giuliani-Vignale parametrization of + Yasuhara-Ousaka approach + LANDAU = 'SBOH' slave-boson one-band Hubbard model + + * LANDAU : model chosen for the calculation of the Landau parameters (2D) + LANDAU = 'NONE' Landau's theory not used + LANDAU = 'ERZA' Engelbrecht-Randeria-Zhang approach + LANDAU = 'GVYO' Giuliani-Vignale parametrization of + Yasuhara-Ousaka approach + LANDAU = 'KCMP' Kwoon-Ceperley-Martin parametrization + * GQO_TYPE : local-field correction type (3D) + GQO_TYPE = 'NONE' no local field correction + GQO_TYPE = 'ALFL' Alvarellos-Flores correction + GQO_TYPE = 'BACA' Barriga-Carrasco correction + GQO_TYPE = 'BBSA' Bachlechner-Böhm-Schinner + GQO_TYPE = 'COPI' Constantin-Pitarke + GQO_TYPE = 'DABR' Dabrowski + GQO_TYPE = 'FWRA' Forstmann-Wierling-Röpke + GQO_TYPE = 'HOK1' Hong-Kim correction + GQO_TYPE = 'HOK2' Hong-Kim correction + GQO_TYPE = 'JEWS' Jewsbury approximation + GQO_TYPE = 'KUG1' Kugler q --> 0 approximation + GQO_TYPE = 'KUG2' Kugler approximation + GQO_TYPE = 'MDGA' Mithen-Daligault-Gregori + GQO_TYPE = 'NEV2' Nevalinna three-moment approximation + GQO_TYPE = 'NLGA' Nagy-Laszlo-Giber approximation + GQO_TYPE = 'RIA1' Richardson-Ashcroft G_s + GQO_TYPE = 'RIA2' Richardson-Ashcroft G_n + GQO_TYPE = 'RIA3' Richardson-Ashcroft G_a + GQO_TYPE = 'SHMU' Shah-Mukhopadhyay + GQO_TYPE = 'STGU' Sturm-Gusarov + GQO_TYPE = 'TOWO' Toigo-Woodruff + GQO_TYPE = 'UTI2' Utsumi-Ichimaru approximation + GQO_TYPE = 'VISC' viscosity approximation + + * G0_TYPE : type of calculation of gamma_0 + G0_TYPE = 'SQ' from the static structure factor S(q) + G0_TYPE = 'EC' from the correlation energy E_c + + * GI_TYPE : type of calculation of gamma_inf + GI_TYPE = 'SQ' from the static strcuture factor S(q) + GI_TYPE = 'EC' from the correlation energy E_c + + + *-------+---------+---------+---------+---------+---------------------------* + + * DAMPING : type of damping used + DAMPING = 'NONE' no damping + DAMPING = 'LFTM' lifetime + DAMPING = 'RELA' relaxation time + DAMPING = 'DECA' decay rate + DAMPING = 'DIFF' diffusion coefficient + DAMPING = 'VISC' viscosity + + * LT_TYPE : approximation used for lifetime (3D) + LT_TYPE = 'EXTE' given externally (D_VALUE,POWER) + LT_TYPE = 'DAVI' Davies formula + LT_TYPE = 'GALI' Galitskii formula + LT_TYPE = 'GIQU' Giuliani-Quinn formula + LT_TYPE = 'GIVI' Giuliani-Vignale formula + LT_TYPE = 'INPE' Inogamov-Petrov formula + LT_TYPE = 'LUBR' Lugovskoy-Bray formula + LT_TYPE = 'NAEC' Nagy-Echenique formula + LT_TYPE = 'QIVI' Qian-Vignale formula + LT_TYPE = 'EXTE' given externally (D_VALUE,POWER) + LT_TYPE = 'QUFE' Quinn-Ferrell formula + + * LT_TYPE : approximation used for lifetime (2D) + LT_TYPE = 'GIQ1' Giuliani-Quinn formula for e-h loss + LT_TYPE = 'GIQ2' Giuliani-Quinn formula for plasmon loss + LT_TYPE = 'GIVI' Giuliani-Vignale formula + LT_TYPE = 'HAWR' Hawrylak formula + LT_TYPE = 'MELA' Menashe-Laikhtman formula + LT_TYPE = 'QIVI' Qian-Vignale formula + + * RT_TYPE : relaxation time + RT_TYPE = ' NO' --> no relaxation time + RT_TYPE = 'EX1' --> given externally (D_VALUE_1,POWER_1) + RT_TYPE = 'EX2' --> given externally (D_VALUE_1,POWER_1,D_VALUE_2,POWER_2) + RT_TYPE = 'E-E' --> electron-electron interaction + RT_TYPE = 'E-P' --> electron-phonon interaction + RT_TYPE = 'E-I' --> electron-phonon impurity + RT_TYPE = 'ALL' --> all three taken into account + + ~ + + * DR_TYPE : decay rate in 3D + DR_TYPE = 'EXTE' given externally (D_VALUE,POWER) + DR_TYPE = 'UTIC' --> Utsumi-Ichimaru approximation + DR_TYPE = 'VLAS' --> Vlasov approximation + + * DC_TYPE : diffusion coefficient in 3D + DC_TYPE = 'EXTE' given externally (D_VALUE,POWER) + DC_TYPE = 'ASHO' --> Ashurst-Hoover + + * VI_TYPE : viscosity in 3D + VI_TYPE = 'EXTE' given externally (D_VALUE,POWER) + VI_TYPE = 'AMPP' Angilella et al hard-sphere fluid --> T-dependent + VI_TYPE = 'DRBA' Daligault-Rasmussen-Baalrud (plasmas) --> T-dependent + VI_TYPE = 'KHRA' Khrapak for Yukawa fluid --> T-dependent + VI_TYPE = 'LHPO' Longuet-Higgins-Pope --> T-dependent + VI_TYPE = 'LLPA' Landau-Lifshitz-Pitaevskii--> T-dependent + VI_TYPE = 'SCHA' Schäfer --> T-dependent + VI_TYPE = 'SCHD' Schäfer (dynamic) --> T-dependent + VI_TYPE = 'SHTE' Shternin --> T-dependent + VI_TYPE = 'STEI' Steinberg low-temperature --> T-dependent + + * VI_TYPE : viscosity in 2D + VI_TYPE = 'EXTE' given externally (D_VALUE,POWER) + VI_TYPE = 'SCHA' Schäfer --> T-dependent + graphene <-- VI_TYPE = 'KISC' Kiselev-Schmalian (dynamic) --> T-dependent + graphene <-- VI_TYPE = 'MSFA' Müller-Schmalian-Fritz --> T-dependent + + ~ + + * EE_TYPE : e-e relaxation time in 3D + EE_TYPE = 'ALAR' --> Al'tshuler-Aronov (e-e + impurities) + EE_TYPE = 'ALA2' --> Al'tshuler-Aronov (e-e + impurities) + EE_TYPE = 'BACA' --> Barriga-Carrasco approximation (e-e) + EE_TYPE = 'FSTB' --> Fann et al approximation (e-e) + EE_TYPE = 'PIN1' --> Pines-Nozières 1st approx. (e-e) + EE_TYPE = 'PIN2' --> Pines-Nozières 2nd approx. (e-e) + EE_TYPE = 'QIV2' --> Qian-Vignale high-density limit(e-e) + EE_TYPE = 'QIVI' --> Qian-Vignale (e-e) + EE_TYPE = 'RASM' --> Rammer-Smith (e-e) + EE_TYPE = 'TAI0' --> Tanaka-Ichimaru approximation (e-e) --> q = 0 + EE_TYPE = 'TAIQ' --> Tanaka-Ichimaru approximation (e-e) --> q-dependent + EE_TYPE = 'UTIC' --> Utsumi-Ichimaru approximation (e-e) + + + * EE_TYPE : relaxation time in 2D + EE_TYPE = 'ALA2' --> Al'tshuler-Aronov (e-e + impurities) + EE_TYPE = 'FUAB' --> Fukuyama-Abrahams (disordered metals) + graphene <-- EE_TYPE = 'LUFO' --> Lucas-Fong (e-e) + EE_TYPE = 'QIVI' --> Qian-Vignale (e-e) + EE_TYPE = 'RASM' --> Rammer-Smith (e-e) + heterostructures <-- EE_TYPE = 'REWI' --> Reizer-Wilkins (e-e) + EI_TYPE = 'SHAS' --> Sharma-Ashraf (e-e + impurities) + EE_TYPE = 'ZHDA' --> Zhang-Das Sarma (e-e) + + * EE_TYPE : relaxation time in 1D + EE_TYPE = 'ALA2' --> Al'tshuler-Aronov (e-e + impurities) + EE_TYPE = 'SHAS' --> Sharma-Ashraf (e-e + impurities) + + * EP_TYPE : e-phonon relaxation time in 3D + EP_TYPE = 'STEL' --> Steinberg low-temperature + EP_TYPE = 'STEH' --> Steinberg High-temperature + + * EI_TYPE : e-impurit relaxation time in 3D + EI_TYPE = 'HEAP' --> Hertel-Appel approximation + + ~ + + * IP_TYPE : ion plasma relaxation time in 3D + IP_TYPE = 'SEMO' --> Selchow-Morawetz approximation + IP_TYPE = 'SPIT' --> Spitzer approximation + + * PD_TYPE : method used to compute the plasmon damping (3D) + PD_TYPE = 'NONE' --> no plasmon damping + PD_TYPE = 'CALL' --> Callen approximation + PD_TYPE = 'DGKA' --> DuBois-Gilinsky-Kivelson approximation + PD_TYPE = 'FEWA' --> Fetter and Walecka approximation + PD_TYPE = 'JEWS' --> Jewsbury approximation + PD_TYPE = 'LITI' --> Giuliani-Quinn lifetime approximation + PD_TYPE = 'MOPE' --> Molinari-Peerani approximation + PD_TYPE = 'NPSA' --> Ninham-Powel-Swanson approximation + PD_TYPE = 'SGAA' --> Segui-Gervasoni-Arista approximation + + * QD_TYPE : method used to compute q-dependent relaxation time + QD_TYPE = 'NONE' --> no q-dependence + QD_TYPE = 'GAUS' --> Gaussian + QD_TYPE = 'LORE' --> Lorentzian + + * ZETA : Value of Tanaka-Ichimaru parameter + + ~ + + * D_VALUE_1: Value of the 1st damping coefficient (between 0 and 999.999) + + * POWER_1 : power of ten to multiply D_VALUE_1 by + POWER = ' KILO' + POWER = ' MEGA' + POWER = ' GIGA' + POWER = ' TERA' + POWER = ' PETA' + POWER = ' EXA' + POWER = 'ZETTA' + POWER = 'MILLI' + POWER = 'MICRO' + POWER = ' NANO' + POWER = ' PICO' + POWER = 'FEMTO' + POWER = ' ATTO' + POWER = 'ZEPTO' + POWER = 'YOCTO' + + * EK : kinetic energy of electron considered (in eV) + with respect to vacuum level + + ~ + + * D_VALUE_2: Value of the 2nd damping coefficient (between 0 and 999.999) + + * POWER_2 : power of ten to multiply D_VALUE_2 by + POWER = ' KILO' + POWER = ' MEGA' + POWER = ' GIGA' + POWER = ' TERA' + POWER = ' PETA' + POWER = ' EXA' + POWER = 'ZETTA' + POWER = 'MILLI' + POWER = 'MICRO' + POWER = ' NANO' + POWER = ' PICO' + POWER = 'FEMTO' + POWER = ' ATTO' + POWER = 'ZEPTO' + POWER = 'YOCTO' + + * PCT : weight of first memory function (relaxation time D_VALUE_1) + 0.00 <= PCT <= 1.00 + + *-------+---------+---------+---------+---------+---------------------------* + + * INT_POT : type of interaction potential (3D) + INT_POT = 'COULO' Coulomb interaction + INT_POT= 'YUKAW' Yukawa interaction + INT_POT= 'SOFTS' soft sphere + INT_POT= 'LNJNS' Lennard-Jones + INT_POT= 'HCLNJ' hard-core Lennard-Jones + INT_POT= 'KIHAR' Kihara + INT_POT= 'MIE_P' Mie + INT_POT= 'VANDW' Van der Waals + INT_POT= 'MORSE' Morse + INT_POT= 'G_EXP' generalised exponential + INT_POT= 'EXP_6' exp-6 + INT_POT= 'MBUCK' modified Buckingham + INT_POT= 'N_COU' neutralised Coulomb + INT_POT= 'H_COR' hard-core + INT_POT= 'P_SPH' penetrable sphere + INT_POT= 'ST-JO' Starkloff-Joannopoulos soft-core + INT_POT= 'LR_OS' long-range oscillatory + INT_POT= 'STOCK' Stockmayer + INT_POT= 'RPAPO' RPA interaction + INT_POT = 'OVER1' Overhauser interaction + INT_POT = 'OVER2' modified Overhauser interaction + INT_POT = 'DEUTS' Deutsch interaction + INT_POT = 'PHOLE' particle-hole interaction + INT_POT = 'KELBG' Kelbg interaction + + * S : length scale parameter of the potential (in Angström) + + * EPS : depth of the potential (in units of k_B, i.e. in Kelvin) + + * DELTA : polarisation of the fluid (dimensionless) + + ~ + + * RC : potential core radius (in Angström) + * ALF : potential stiffness + * M : \ exponents for Kihara + * N : / and Mie potentials + + ~ + + * A1 : \ + * A2 : \ parameters for + * A3 : / long-range oscillatory potentials + * A4 : / + + *-------+---------+---------+---------+---------+---------------------------* + + * EP_C : electron-phonon coupling + * DEBYE_T : material Debye temperature + + ~ + + * NA : number of atoms per unit volume + * MA : mass of the atoms + * RA : radius of the atoms + + *-------+---------+---------+---------+---------+---------------------------* + + * NI : impurity concentration + * EI_C : strength of impurity scattering + + *-------+---------+---------+---------+---------+---------------------------* + + + * CF_TYPE : type of classical fluid calculation --> 3D + CF_TYPE = 'SHS' smooth hard spheres + CF_TYPE = 'RH1' rough hard spheres (Pidduck) + CF_TYPE = 'RH2' rough hard spheres (Condiff-Lu-Dahler) + CF_TYPE = 'RH3' rough hard spheres (McCoy-Sandler-Dahler) + CF_TYPE = 'DCE' dilute Chapman-Enskog + CF_TYPE = 'HCE' heavy (i.e. dense) Chapman-Enskog + CF_TYPE = 'LJF' Lennard-Jones fluid + + CF_TYPE = 'DHD' dense hard disks --> 2D + + * PF_TYPE : type of packing fraction --> 2D + PF_TYPE = 'HDM' --> hard disk model + + --> 3D + PF_TYPE = 'HSM' --> hard sphere model + PF_TYPE = 'RCP' --> random closed-packed + PF_TYPE = 'FCC' --> FCC closed-packed + PF_TYPE = 'FRE' --> freezing + PF_TYPE = 'MEL' --> melting + + * SL_TYPE : type of scattering length calculation + SL_TYPE = 'HSP' --> hard sphere potential + SL_TYPE = 'ASW' --> attractive square well (without bound state) + SL_TYPE = 'RSW' --> repulsive square well + SL_TYPE = 'DSP' --> delta-shell potential + SL_TYPE = 'AYP' --> attractive Yukawa potential + SL_TYPE = 'CCO' --> Coulomb cut-off potential + SL_TYPE = 'HUL' --> Hulthén potential + + *=======+=========+=========+=========+=========+===========================* + * STRUCTURE FACTOR : * + *=======+=========+=========+=========+=========+===========================* + + + * SSTDY : static vs dynamic local-field corrections + SSTDY = ' STATIC' --> SQ_TYPE + SSTDY = 'DYNAMIC' --> SQO_TYPE + + * SQ_TYPE : structure factor approximation (3D) --> static + SQ_TYPE = 'DEH' Debye-Hückel approximation + SQ_TYPE = 'GEA' generalized approximation + SQ_TYPE = 'GOR' Gorobchenko approximation + SQ_TYPE = 'GR2' computed from g(r) (GR_TO_SQ.f90 code) + SQ_TYPE = 'GSB' Gori-Giorgi-Sacchetti-Bachelet approximation + SQ_TYPE = 'HFA' Hartree-Fock approximation (only exchange) + SQ_TYPE = 'HUB' Hubbard approximation + SQ_TYPE = 'ICH' Ichimaru approximation + SQ_TYPE = 'LEE' Lee ideal Fermi gas + SQ_TYPE = 'MSA' mean spherical approximation + SQ_TYPE = 'PKA' Pietiläinen-Kallio + SQ_TYPE = 'RPA' RPA approximation + SQ_TYPE = 'SHA' Shaw approximation + SQ_TYPE = 'SIN' Singh + SQ_TYPE = 'SPA' Singh-Pathak + SQ_TYPE = 'TWA' Toigo-Woodruff approximation +! + * SQO_TYPE : structure factor approximation (3D) --> dynamic + SQO_TYPE = 'ABA' Arista-Brandt approximation + SQO_TYPE = 'EPS' computed from dielectric function + SQO_TYPE = 'HFA' Hartree-Fock approximation + SQO_TYPE = 'HYD' hydrodynamic approximation + SQO_TYPE = 'IGA' ideal gas approximation + SQO_TYPE = 'ITA' Ichimaru-Tanaka approximation + SQO_TYPE = 'MFA' Hansen-McDonald-Pollock approximation + SQO_TYPE = 'MFD' memory function model + SQO_TYPE = 'NIC' Nakano-Ichimaru approximation + SQO_TYPE = 'UTI' Utsumi-Ichimaru approximation (3D) + SQO_TYPE = 'VLA' linearized Vlasov approximation + + *=======+=========+=========+=========+=========+===========================* + * PAIR CORRELATION FUNCTION : * + *=======+=========+=========+=========+=========+===========================* + + * GR_TYPE : pair correlation function approximation g(r) (3D) + GR_TYPE = 'CDF' from chain diagram formula of PDF (long distance) + GR_TYPE = 'DHA' Debye-Hückel approximation + GR_TYPE = 'DWA' DeWitt approximation + GR_TYPE = 'FBA' Frieman-Book approximation + GR_TYPE = 'HFA' Hartree-Fock approximation (only exchange) + GR_TYPE = 'HUB' Hubbard approximation + GR_TYPE = 'LLA' Lee-Long approximation + GR_TYPE = 'ORB' Ortiz-Ballone approximation + GR_TYPE = 'PDF' from pair distribution function + GR_TYPE = 'SHA' Shaw approximation + GR_TYPE = 'SQ2' computed from S(q) (SQ_TO_GR.f90 code) + GR_TYPE = 'WIG' Wigner approximation + + * GR0_MODE : g(0) (3D) + GR0_MODE = 'CAGO' --> Calmels-Gold + GR0_MODE = 'DPGT' --> Davoudi-Polini-Giuliani-Tosi + GR0_MODE = 'HASA' --> Holas-Aravind-Singwi (small r_s) + GR0_MODE = 'ICHI' --> Ichimaru + GR0_MODE = 'KIMB' --> Kimball + GR0_MODE = 'OVE1' --> Overhauser 1 + GR0_MODE = 'OVE2' --> Overhauser 2 + GR0_MODE = 'QIAN' --> Qian + * GR0_MODE : g(0) (2D) + GR0_MODE = 'CAGO' --> Calmels-Gold + GR0_MODE = 'HAFO' --> Hartree-Fock + GR0_MODE = 'MOMA' --> Moreno-Marinescu + GR0_MODE = 'NSOA' --> Nagano-Singwi-Ohnishi + GR0_MODE = 'QIAN' --> Qian + + *=======+=========+=========+=========+=========+===========================* + * PAIR DISTRIBUTION FUNCTION : * + *=======+=========+=========+=========+=========+===========================* + + * RH_TYPE : pair distribution function approximation (3D) + RH_TYPE = 'CDI' chain diagram improved + RH_TYPE = 'CEG' classical electron gas + RH_TYPE = 'DEB' Debye electron gas + RH_TYPE = 'FUA' correct to order 2 in epsilon + RH_TYPE = 'SDC' short-distance correlations + RH_TYPE = 'WDA' watermelon diagrams summed + + *=======+=========+=========+=========+=========+===========================* + * SPECTRAL FUNCTION : * + *=======+=========+=========+=========+=========+===========================* + + SPF_TYPE = 'NAIC' Nakano-Ichimaru approximation + + *=======+=========+=========+=========+=========+===========================* + * ENERGY CALCULATIONS : * + *=======+=========+=========+=========+=========+===========================* + + * EC_TYPE : type of correlation energy functional (3D) + EC_TYPE = 'GEBR_W' --> Gell-Mann and Brueckner + EC_TYPE = 'CAMA_W' --> Carr and Maradudin + EC_TYPE = 'EHTY_G' --> Endo-Horiuchi-Takada-Yasuhara + EC_TYPE = 'HELU_G' --> Hedin and Lundqvist + EC_TYPE = 'VBHE_G' --> von Barth and Hedin + EC_TYPE = 'PEZU_G' --> Perdew and Zunger + EC_TYPE = 'WIGN_G' --> Wigner + EC_TYPE = 'NOPI_G' --> Nozières and Pines + EC_TYPE = 'LIRO_G' --> Lindgren and Rosen + EC_TYPE = 'PEZU_G' --> Perdew and Zunger + EC_TYPE = 'REHI_G' --> Rebei and Hitchon + EC_TYPE = 'GGSB_G' --> Gori-Giorgi-Sacchetti-Bachelet + EC_TYPE = 'PRKO_G' --> Proynov and Kong + EC_TYPE = 'GGSB_G' --> Vosko, Wilk and Nusair + EC_TYPE = 'VWNU_G' --> Perdew and Wang + EC_TYPE = 'HUBB_G' --> Hubbard + EC_TYPE = 'CHAC_G' --> Chachiyo + EC_TYPE = 'ISKO_T' --> Isihara and Kojima + * EC_TYPE : type of correlation energy functional (2D) + EC_TYPE = 'TACE_G' --> Tanatar-Ceperley + EC_TYPE = 'CPPA_G' --> Seidl-Perdew_Levy + EC_TYPE = 'AMGB_G' --> Attaccalite-Moroni-Gori-Giorgi-Bachelet + EC_TYPE = 'SEID_G' --> Seidl + EC_TYPE = 'LOOS_W' --> Loos + EC_TYPE = 'WIGN_G' --> Wigner + EC_TYPE = 'ISTO_T' --> Isihara-Toyoda + * EC_TYPE : type of correlation energy functional (1D) + EC_TYPE = 'LOOS_W' --> Loos + EC_TYPE = 'WIGN_G' --> Wigner + + + * FXC_TYPE : type of XC free energy functional --> 3D + FXC_TYPE = 'NO' --> None + FXC_TYPE = 'EB' --> Ebeling et al + FXC_TYPE = 'IC' --> Ichimaru et al + FXC_TYPE = 'KS' --> Karasiev et al + FXC_TYPE = 'VS' --> Vashishta and Singwi + FXC_TYPE = 'PD' --> Perrot and Dharma-Wardana + FXC_TYPE = 'EK' --> Ebeling-Kraeft-Kremp-Röpke + + * EXC_TYPE : type of exchange-correlation energy functional --> 3D + EXC_TYPE = 'NO' --> None + EXC_TYPE = 'GT' --> Goedeker-Tetter-Hutter + EXC_TYPE = 'ST' --> + EXC_TYPE = 'BD' --> Brown-DuBois-Holzmann-Ceperley + + ~ + + + *=======+=========+=========+=========+=========+===========================* + * SPIN POLARIZATION : * + *=======+=========+=========+=========+=========+===========================* + + * IMODE : choice of spin parameters + IMODE = 1 : no spin polarization + IMODE = 2 : fully spin-polarized + + * XI : spin polarization : (n+ - n-) / n + + *=======+=========+=========+=========+=========+===========================* + * THERMODYNAMIC PROPERTIES : * + *=======+=========+=========+=========+=========+===========================* + + * TH_PROP : type of calculation --> thermodynamic properties + TH_PROP = 'CLAS' : classical approximation + TH_PROP = 'QUAN' : quantum approximation + + * GP_TYPE : grand partition function type (3D) + GP_TYPE = 'IK0' Isihara-Kojima formulation + GP_TYPE = 'RH0' Rebei-Hitchon formulation + GP_TYPE = 'IKM' Isihara-Kojima with magnetic field + + * GP_TYPE : grand partition function type (2D) + GP_TYPE = 'I20' Isihara-Kojima formulation + GP_TYPE = 'I2M' Isihara-Kojima with magnetic field + + *=======+=========+=========+=========+=========+===========================* + * ELECTRON MEAN FREE PATH : * + *=======+=========+=========+=========+=========+===========================* + + * EK_INI : starting kinetic energy of electron in eV + * EK_FIN : final kinetic energy of electron in eV + + *=======+=========+=========+=========+=========+===========================* + * CALCULATION OF MOMENTS : * + *=======+=========+=========+=========+=========+===========================* + + * N : order of moment + * M_TYPE : way S(q,omega) is computed + M_TYPE = 'EPS' from epsilon(q,omega) + M_TYPE = 'SQO' from S(q,omega) + + *=======+=========+=========+=========+=========+===========================* + * INCOMING ION BEAM : * + *=======+=========+=========+=========+=========+===========================* + + * Z_BEAM : charge of ions in incoming beam + * EK_BEAM : kinetic energy of incoming beam ions (eV) + + *=======+=========+=========+=========+=========+===========================* + * OUTPUT CALCULATIONS : * + *=======+=========+=========+=========+=========+===========================* + + * I_DF : switch for dielectric function printing + I_DF = 0 : dielectric function not printed + I_DF = 1 : dielectric function printed in file 'diel_func.dat' + + * I_PZ : switch for polarization function printing + I_PZ = 0 : polarization function not printed + I_PZ = 1 : polarization function printed in file 'pola_func.dat' + + * I_SU : switch for susceptibility function printing + I_SU = 0 : susceptibility function not printed + I_SU = 1 : susceptibility function printed in file 'susc_func.dat' + + * I_CD : switch for electrical conductivity printing + I_CD = 0 : electrical conductivity not printed + I_CD = 1 : electrical conductivity printed in file 'cond_func.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_PD : switch for plasmon dispersion printing + I_PD = 0 : plasmon dispersion not calculated + I_PD = 1 : plasmon dispersion printed in file 'plas_disp.dat' + + * I_EH : switch for electron-hole dispersion printing + I_EH = 0 : electron-hole dispersion not calculated + I_EH = 1 : electron-hole dispersion printed in file 'elec_hole.dat' + + * I_E2 : switch for two-electron-hole dispersion printing + I_E2 = 0 : two-electron-hole dispersion not calculated + I_E2 = 1 : two-electron-hole dispersion printed in file 'elec_hol2.dat' + + * I_CK : switch for k-space e-e interaction potential printing + I_CK = 0 : potential not calculated + I_CK = 1 : potential printed in file 'int_pot_k.dat' + + * I_CR : switch for real-space e-e interaction potential printing + I_CR = 0 : potential not calculated + I_CR = 1 : potential printed in file 'int_pot_r.dat' + + * I_PK : switch for plasmon kinetic energy printing + I_PK = 0 : plasmon kinetic energy not calculated + I_PK = 1 : plasmon kinetic energy printed in file 'plas_kine.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_LF : switch for local-field corrections G(q,omega) printing + I_LF = 0 : local-field corrections not calculated + I_LF = 1 : local-field corrections printed in file 'loca_fiel.dat' + + * I_IQ : switch for G(q,inf) printing + I_IQ = 0 : G(q,inf) not calculated + I_IQ = 1 : G(q,inf) printed in file 'ginf_fiel.dat' + + * I_SF : switch for structure factor S(q,omega) printing + I_SF = 0 : structure factor not calculated + I_SF = 1 : structure factor printed in file 'stru_fact.dat' + + * I_PC : switch for pair correlation function g(r) printing + I_PC = 0 : pair correlation function not calculated + I_PC = 1 : pair correlation function printed in file 'pair_corr.dat' + + ~ + + * I_P2 : switch for pair distribution rho2(r) printing + I_P2 = 0 : pair distribution function not calculated + I_P2 = 1 : pair distribution function printed in file 'pair_dist.dat' + + * I_VX : switch for vertex function Gamma(q,omega) printing + I_VX = 0 : vertex function not calculated + I_VX = 1 : vertex function printed in file 'vertex_fu.dat' + + * I_DC : switch for plasmon damping coefficient Im[eps]/q^2 printing + I_DC = 0 : plasmon damping not calculated + I_DC = 1 : plasmon damping printed in file 'plas_damp.dat' + + * I_MD : switch for momentum distribution printing + I_MD = 0 : momentum distribution not calculated + I_MD = 1 : momentum distribution printed in file 'mome_dist.dat' + + ~ + + * I_LD : switch for Landau parameters printing + I_LD = 0 : Landau parameters not calculated + I_LD = 1 : Landau parameters printed in file 'landau_pa.dat' + + * I_DP : switch for damping printing + I_DP = 0 : damping not calculated + I_DP = 1 : damping printed in file 'damp_file.dat' + + * I_LT : switch for plasmon lifetime printing + I_LT = 0 : plasmon lifetime not calculated + I_LT = 1 : plasmon lifetime printed in file 'life_time.dat' + + * I_BR : switch for plasmon broadening printing + I_BR = 0 : plasmon broadening not calculated + I_BR = 1 : plasmon broadening printed in file 'broadenin.dat' + + ~ + + * I_PE : switch for plasmon energy printing + I_PE = 0 : plasmon energy not calculated + I_PE = 1 : plasmon energy printed in file 'plas_ener.dat' + + * I_QC : switch for plasmon q-bounds printing + I_QC = 0 : plasmon q-bounds not calculated + I_QC = 1 : plasmon q-bounds printed in file 'qc_bounds.dat' + + * I_RL : switch for relaxation time printing + I_RL = 0 : relaxation time not calculated + I_RL = 1 : relaxation time printed in file 'rela_time.dat' + + * I_KS : switch for screening wave vector printing + I_KS = 0 : screening wave vector not calculated + I_KS = 1 : screening wave vector printed in file 'screen_wv.dat' + + ~ + + * I_OQ : switch for omega = q * v_F printing + I_DY = 0 : omega = q * v_F not calculated + I_DY = 1 : omega = q * v_F printed in file 'omega_qvf.dat' + + * I_ME : switch for moments of epsilon(q,omega) printing + I_ME = 0 : moments of epsilon not calculated + I_ME = 1 : moments of epsilon printed in file 'moments_e.dat' + + * I_MS : switch for moments of S(q,omega) printing + I_MS = 0 : moments of structure factor not calculated + I_MS = 1 : moments of structure factor printed in file 'moments_s.dat' + + * I_ML : switch for moments of loss function printing + I_ML = 0 : moments of loss function not calculated + I_ML = 1 : moments of loss function printed in file 'moments_l.dat' + + ~ + + * I_MC : switch for moments of conductivity printing + I_MC = 0 : moments of conductivity not calculated + I_MC = 1 : moments of conductivity printed in file 'moments_c.dat' + + * I_DE : switch for derivative of Re[ dielectric function ] printing + I_DE = 0 : derivative not calculated + I_DE = 1 : derivative printed in file 'deri_epsi.dat' + + * I_ZE : switch for Re[ dielectric function ] = 0 printing + I_ZE = 0 : function not calculated + I_ZE = 1 : function printed in file 'ree0_file.dat' + + * I_SR : switch for sum rules for epsilon printing + I_SR = 0 : sum rules not calculated + I_SR = 1 : sum rules printed in file 'sum_rules.dat' + + ~ + + * I_CW : switch for confinement wave function printing + I_CW = 0 : confinement wave function not calculated + I_CW = 1 : confinement wave function printed in file 'confin_wf.dat' + + * I_CF : switch for confinement potential printing + I_CF = 0 : confinement potential not calculated + I_CF = 1 : confinement potential printed in file 'confin_pt.dat' + + * I_EM : switch for effective mass printing + I_EM = 0 : effective mass not calculated + I_EM = 1 : effective mass printed in file 'effe_mass.dat' + + * I_MF : switch for mean free path printing + I_MF = 0 : mean free path not calculated + I_MF = 1 : mean free path printed in file 'mean_path.dat' + + ~ + + * I_SP : switch for spectral function printing + I_SP = 0 : spectral function not calculated + I_SP = 1 : spectral function printed in file 'spec_func.dat' + + * I_SE : switch for self-energy printing + I_SE = 0 : self-energy not calculated + I_SE = 1 : self-energy printed in file 'self_ener.dat' + + * I_SB : switch for subband energies printing + I_SB = 0 : subband energies not calculated + I_SB = 1 : subband energies printed in file 'subb_ener.dat' + + * I_ES : switch for Eliashberg function printing + I_ES = 0 : Eliashberg function not calculated + I_ES = 1 : Eliashberg function printed in file 'elia_func.dat' + + ~ + + * I_GR : switch for Grüneisen parameter printing + I_GR = 0 : Grüneisen parameter not calculated + I_GR = 1 : Grüneisen parameter printed in file 'grune_par.dat' + + * I_FD : switch for Fermi-Dirac distribution printing + I_FD = 0 : Fermi-Dirac distribution not calculated + I_FD = 1 : Fermi-Dirac distribution printed in file 'fermi_dir.dat' + + * I_BE : switch for Bose-Einstein distribution printing + I_BE = 0 : Bose-Einstein distribution not calculated + I_BE = 1 : Bose-Einstein distribution printed in file 'bose_eins.dat' + + * I_MX : switch for Maxwell distribution printing + I_MX = 0 : Maxwell distribution not calculated + I_MX = 1 : Maxwell distribution printed in file 'maxwell_d.dat' + + ~ + + * I_SC : switch for scale parameters printing + I_SC = 0 : scale parameters not calculated + I_SC = 1 : scale parameters printed in file 'scale_par.dat' + + * I_DS : switch for density of states printing + I_DS = 0 : density of states not calculated + I_DS = 1 : density of states printed in file 'dens_stat.dat' + + * I_NV : switch for Fourier domain Nevanlinaa/memory function printing + I_NV = 0 : Nevanlinaa function not calculated + I_NV = 1 : Nevanlinaa function printed in file 'neva_four.dat' + + * I_MT : switch for time domain memory function printing + I_MT = 0 : memory function not calculated + I_MT = 1 : memory function printed in file 'memo_time.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_GP : switch for grand partition function printing + I_GP = 0 : grand partition function not calculated + I_GP = 1 : grand partition function printed in file 'gran_part.dat' + + * I_PR : switch for electronic pressure printing + I_PR = 0 : electronic pressure not calculated + I_PR = 1 : electronic pressure printed in file 'epressure.dat' + + * I_CO : switch for compressibility printing + I_CO = 0 : compressibility not calculated + I_CO = 1 : compressibility printed in file 'comp_file.dat' + + * I_CP : switch for chemical potential printing + I_CP = 0 : chemical potential not calculated + I_CP = 1 : chemical potential printed in file 'chem_pote.dat' + + ~ + + * I_BM : switch for bulk modulus printing + I_BM = 0 : bulk modulus not calculated + I_BM = 1 : bulk modulus printed in file 'bulk_modu.dat' + + * I_SH : switch for shear modulus printing + I_SH = 0 : shear modulus not calculated + I_SH = 1 : shear modulus printed in file 'shear_mod.dat' + + * I_S0 : switch for zero sound velocity printing + I_S0 = 0 : zero sound velocity not calculated + I_S0 = 1 : zero sound velocity printed in file 'zero_soun.dat' + + * I_S1 : switch for first sound velocity printing + I_S1 = 0 : first sound velocity not calculated + I_S1 = 1 : first sound velocity printed in file 'firs_soun.dat' + + ~ + + * I_DT : switch for Debye temperature printing + I_DT = 0 : Debye temperature not calculated + I_DT = 1 : Debye temperature printed in file 'Debye_tmp.dat' + + * I_PS : switch for Pauli paramagnetic susceptibility printing + I_PS = 0 : Pauli paramagnetic susceptibility not calculated + I_PS = 1 : Pauli paramagnetic susceptibility printed in file 'para_susc.dat' + + * I_IE : switch for internal energy printing + I_IE = 0 : internal energy not calculated + I_IE = 1 : internal energy printed in file 'inter_ene.dat' + + * I_EI : switch for excess internal energy printing + I_EI = 0 : excess internal energy not calculated + I_EI = 1 : excess internal energy printed in file 'exces_ene.dat' + + ~ + + * I_FH : switch for Helmholtz free energy printing + I_FH = 0 : Helmholtz free energy not calculated + I_FH = 1 : Helmholtz free energy printed in file 'helm_free.dat' + + * I_EY : switch for entropy printing + I_EY = 0 : entropy not calculated + I_EY = 1 : entropy printed in file 'entropy_f.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_EF : switch for Fermi energy printing + I_EF = 0 : Fermi energy not calculated + I_EF = 1 : Fermi energy printed in file 'fermi_ene.dat' + + * I_KF : switch for Fermi momentum printing + I_KF = 0 : Fermi momentum not calculated + I_KF = 1 : Fermi momentum printed in file 'fermi_vec.dat' + + * I_VF : switch for Fermi velocity printing + I_VF = 0 : Fermi velocity not calculated + I_VF = 1 : Fermi velocity printed in file 'fermi_vel.dat' + + * I_TE : switch for Fermi temperature printing + I_TE = 0 : Fermi temperature not calculated + I_TE = 1 : Fermi temperature printed in file 'fermi_tmp.dat' + + ~ + + * I_DL : switch for density of states at Fermi level printing + I_DL = 0 : density of states at Fermi level not calculated + I_DL = 1 : density of states at Fermi level printed in file 'fermi_dos.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_TW : switch for thermal De Broglie wavelength printing + I_TW = 0 : thermal De Broglie wavelength not calculated + I_TW = 1 : thermal De Broglie wavelength printed in file 'thermal_w.dat' + + * I_VT : switch for thermal velocity printing + I_VT = 0 : thermal velocity not calculated + I_VT = 1 : thermal velocity printed in file 'thermal_v.dat' + + * I_TC : switch for thermal conductivity printing + I_TC = 0 : thermal conductivity not calculated + I_TC = 1 : thermal conductivity printed in file 'thermal_c.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_EG : switch for ground state energy printing + I_EG = 0 : ground state energy not calculated + I_EG = 1 : ground state energy printed in file 'ground_st.dat' + + * I_EX : switch for exchange energy printing + I_EX = 0 : exchange energy not calculated + I_EX = 1 : exchange energy printed in file 'ex_energy.dat' + + * I_XC : switch for exchange correlation energy printing + I_XC = 0 : exchange correlation energy not calculated + I_XC = 1 : exchange correlation energy printed in file 'xc_energy.dat' + + * I_EC : switch for correlation energy printing + I_EC = 0 : correlation energy not calculated + I_EC = 1 : correlation energy printed in file 'corr_ener.dat' + + ~ + + * I_HF : switch for Hartree-Fock energy printing + I_HF = 0 : Hartree-Fock energy not calculated + I_HF = 1 : Hartree-Fock energy printed in file 'hf_energy.dat' + + * I_EK : switch for kinetic energy printing + I_EK = 0 : kinetic energy not calculated + I_EK = 1 : kinetic energy printed in file 'kine_ener.dat' + + * I_EP : switch for potential energy printing + I_EP = 0 : potential energy not calculated + I_EP = 1 : potential energy printed in file 'pote_ener.dat + + *-------+---------+---------+---------+---------+---------------------------* + + * I_VI : switch for shear viscosity printing + I_VI = 0 : shear viscosity not calculated + I_VI = 1 : shear viscosity printed in file 'visc_coef.dat' + + * I_DI : switch for diffusion coefficient printing + I_DI = 0 : diffusion coefficient not calculated + I_DI = 1 : diffusion coefficient printed in file 'diff_coef.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_FP : switch for fluctuation potential calculation + I_FP = 0 : fluctuation potential not calculated + + I_FP = 1 : fluctuation potential printed in file 'fluct_pot.dat' (function of q) \ exact + I_FP = 2 : fluctuation potential printed in file 'fluct_pot.dat' (function of q and r) / dispersion + + I_FP = 3 : fluctuation potential printed in file 'fluct_pot.dat' (function of q) \ PL_DISP + I_FP = 4 : fluctuation potential printed in file 'fluct_pot.dat' (function of q and r) / dispersion + + * I_EL : switch for loss function calculation + I_EL = 0 : loss function not calculated + I_EL = 1 : loss function printed in file 'ener_loss.dat' + + * I_PO : switch for stopping power calculation + I_PO = 0 : stopping power not calculated + I_PO = 1 : stopping power printed in file 'stop_powe.dat' + + * I_RF : switch for refractive index calculation + I_RF = 0 : refractive index not calculated + I_RF = 1 : refractive index printed in file 'refrac_in.dat' + + ~ + + * I_VC : switch for dynamic screened Coulomb potential V(q,omega) calculation + I_VC = 0 : dynamic screened Coulomb potential not calculated + I_VC = 1 : dynamic screened Coulomb potential printed in file 'dyna_coul.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_FN : switch for appending the calculation type string + to the output filename + I_FN = 0 : standard output filename + I_FN = 1 : parameter added to filename + + * I_WR : switch for writing physical properties into the log file + I_WR = 0 : does not write + I_WR = 1 : writes + I_WR = 2 : writes only for first q-index + + * I_TI : switch for writing integration tests into the log file + I_TI = -1 : writes all the tests + I_TI = 0 : does not write + I_TI = 1 : writes test for MODULE SPECIFIC_INT_1 + I_TI = 2 : writes test for MODULE SPECIFIC_INT_2 + I_TI = 3 : writes test for MODULE SPECIFIC_INT_3 + I_TI = 4 : writes test for MODULE SPECIFIC_INT_4 + I_TI = 5 : writes test for MODULE SPECIFIC_INT_5 + I_TI = 6 : writes test for MODULE SPECIFIC_INT_6 + I_TI = 7 : writes test for MODULE SPECIFIC_INT_7 + I_TI = 8 : writes test for MODULE SPECIFIC_INT_8 + I_TI = 9 : writes test for MODULE SPECIFIC_INT_9 + I_TI = 10 : writes test for MODULE TEST_INT_HUBBARD + + + + Description of the calculation parameters: + + *=======+=========+=========+=========+=========+===========================* + * GENERAL PARAMETERS : * + *=======+=========+=========+=========+=========+===========================* + + * Q_MIN : minimum value of q (in units of k_F) + * Q_MAX : maximum value of q (in units of k_F) + * N_Q : number of q-points + + * E_MIN : minimum value of energy (in units of E_F) + * E_MAX : maximum value of energy (in units of E_F) + * N_E : number of E-points + + * R_MIN : minimum value of distance r (in units of 1/k_F) + * R_MAX : maximum value of distance r (in units of 1/k_F)) + * N_R : number of r-points + + *-------+---------+---------+---------+---------+---------------------------* + + * RS : average distance between 2 electrons (in units of a0) + ~ + * MSOM : m*/m (for semiconductors) + ~ + * MAT_TYP : type of material + MAT_TYPE = 'SCHRO' standard solid + MAT_TYPE = 'DIRAC' massless Fermions + MAT_TYPE = 'WATER' liquid water + ~ + * EPS_B : material's dielectric constant + + *-------+---------+---------+---------+---------+---------------------------* + + * T : temperature (in SI) + ~ + * E : external electric field (in SI) + ~ + * H : external magnetic field (in SI) + ~ + * FLD : strength of the magnetic field + FLD = 'NO' no field + FLD = 'WF' weak field + FLD = 'IF' intermediate field + FLD = 'LF' large field + + *-------+---------+---------+---------+---------+---------------------------* + + * DIM : dimension of the system + DIM = '3D' + DIM = '2D' + DIM = '1D' + DIM = 'Q0' quasi-0D + DIM = 'Q1' quasi-1D + DIM = 'Q2' quasi-2D + DIM = 'BL' bilayer + DIM = 'ML' multilayer + DIM = 'ML' multilayer + + ~ + + * R0 : wire radius + ~ + * L : length of quantum well + ~ + * OM0 : frequency of the confinement potential (SI) + ~ + * CONFIN : type of confinement + CONFIN = 'NO-CONF' no confinement + CONFIN = 'DSEPLAY' layer within a stacking of layers + CONFIN = 'CC-1111' cylindrical within subband 1 + CONFIN = 'CC-1122' cylindrical between subbands 1 and 2 + CONFIN = 'CC-1221' cylindrical between subbands 1 and 2 + CONFIN = 'CC-2222' cylindrical within subband 2 + CONFIN = 'HC-1111' harmonic within subband 1 + CONFIN = 'HC-1122' harmonic between subbands 1 and 2 + CONFIN = 'HC-1221' harmonic between subbands 1 and 2 + CONFIN = 'HC-2222' harmonic within subband 2 + CONFIN = 'INVLAYE' inversion layer in semiconductor + CONFIN = 'IQWE_LB' square well with an infinite barrier + CONFIN = 'PC1_QWI' parabolic + CONFIN = 'PC2_QWI' parabolic + CONFIN = 'SOFTCOR' soft-core potential + CONFIN = 'SWC_QWI' square well with an infinite barrier + + ~ + + * DL : interlayer distance + ~ + * D1 : distance between the two layers in the unit cell + ~ + * N_DEP : electron concentration in depletion layer (SI) + ~ + * N_INV : electron concentration in inversion layer (SI) + + ~ + + * H_TYPE : heterostructure type + H_TYPE = 'SSL1' semiconductor superlattice of type I + H_TYPE = 'SSL2' semiconductor superlattice of type II + H_TYPE = 'BILA' bilayer + H_TYPE = 'MLA1' multilayer with with one layer / unit cell + H_TYPE = 'MLA2' multilayer with with two layers / unit cell + ~ + * EPS_1 : background/layer dielectric constant + ~ + * EPS_2 : interlayer dielectric constant + + *-------+---------+---------+---------+---------+---------------------------* + + * UNIT : system unit + UNIT = 'SIU' international system + UNIT = 'CGS' CGS system + UNIT = 'ATU' atomic units + + * UNIK : K unit + UNIK = 'SI' international system + UNIK = 'AU' atomic units + + *-------+---------+---------+---------+---------+---------------------------* + + * SC_TYPE : type of screeening + SC_TYPE = 'NO' no screening + SC_TYPE = 'DH' Debye-Hückel + SC_TYPE = 'KL' Kleinman + SC_TYPE = 'ST' Streitenberger + SC_TYPE = 'TF' Thomas-Fermi + SC_TYPE = 'UI' Utsumi-Ichimaru + SC_TYPE = 'YT' Yasuhara-Takada + + *-------+---------+---------+---------+---------+---------------------------* + + * PL_TYPE : type of plasma considered + PL_TYPE = 'OCP' --> one-component plasma (~ electron gas) + PL_TYPE = 'DCP' --> two-component plasma + + * ZION : atomic number of (first) ion + + * ZION2 : atomic number of second ion + + *=======+=========+=========+=========+=========+===========================* + * DIELECTRIC FUNCTION : * + *=======+=========+=========+=========+=========+===========================* + + + * ESTDY : static vs dynamic dielectric function + STDY = ' STATIC' + STDY = 'DYNAMIC' + + * EPS_T : type of dielcectric function + EPS_T = 'LONG' longitudinal --> D_FUNCL + EPS_T = 'TRAN' transverse --> D_FUNCT + + * D_FUNC : model of dielectric function : + + 1) Static: + + ---> longitudinal: + + D_FUNCL = 'LRPA' random phase approximation (3D,2D,1D) + D_FUNCL = 'THFE' Thomas-Fermi approximation (3D,2D,1D) + + 2) Dynamic: + + ---> transverse: + + D_FUNCT = 'RPA1' random phase approximation (3D,2D) + D_FUNCT = 'RPA2' random phase approximation (3D) + D_FUNCT = 'LVLA' linearized Vlasov (3D) + D_FUNCT = 'MER1' Mermin (3D) + D_FUNCT = 'BLTZ' Boltzmann (3D) + + ---> longitudinal: + + D_FUNCL = 'ATAS' Atwal-Ashcroft <-- T-dependent + D_FUNCL = 'BLZ1' Boltzmann + D_FUNCL = 'BLZ2' damped Boltzmann + D_FUNCL = 'DACA' Arista-Brandt <-- T-dependent + D_FUNCL = 'HEAP' Hertel-Appel + D_FUNCL = 'HAFO' Hartree-Fock + D_FUNCL = 'HUCO' Hu-O'Connell <-- damping (3D,2D,Q1) + D_FUNCL = 'HYDR' hydrodynamic <-- damping + D_FUNCL = 'KLEI' Kleinman <-- T-dependent + D_FUNCL = 'KLKD' Klimontovich-Kraeft <-- T-dependent + D_FUNCL = 'KLKN' Klimontovich-Kraeft <-- T-dependent + D_FUNCL = 'LAND' Landau parameters-based + D_FUNCL = 'LVL1' linearized Vlasov (weak coupling) <-- T-dependent + D_FUNCL = 'LVL2' linearized Vlasov (strong coupling) <-- T-dependent + D_FUNCL = 'MER1' Mermin 1 <-- damping + D_FUNCL = 'MER2' Mermin 2 <-- T-dependent + D_FUNCL = 'MSAP' mean spherical approximation + D_FUNCL = 'NEVA' Nevanlinna <-- T-dependent + D_FUNCL = 'PLPO' plasmon pole + D_FUNCL = 'RDF1' Altshuler et al <-- damping + D_FUNCL = 'RDF2' Altshuler et al <-- damping + D_FUNCL = 'RPA1' RPA + D_FUNCL = 'RPA2' RPA <-- T-dependent + D_FUNCL = 'RPA3' random phase approximation <-- magnetic field (2D) + D_FUNCL = 'UTIC' Utsumi-Ichimaru <-- T-dependent + D_FUNCL = 'VLFP' Vlasov-Fokker-Planck <-- damping + + * NEV_TYPE : type of Nevalinna function used (only for D_FUNCL = 'NEVA') + NEV_TYPE = 'NONE' --> no function + NEV_TYPE = 'STA1' --> static value h(q) + NEV_TYPE = 'STA2' --> static value h(q) + NEV_TYPE = 'CLCO' --> Classical Coulomb OCP + NEV_TYPE = 'AMTA' --> Adamjan-Meyer-Tkachenko + NEV_TYPE = 'PEEL' --> Perel'-Eliashberg function + NEV_TYPE = 'PE76' --> Perel'-Eliashberg by Arkhipov et al + + ~ + + * I_T : way to incorporate temperature dependence + I_T = 0 --> no temperature (T = 0) + I_T = 1 --> analytical models used + I_T = 2 --> temperature convolution + + *-------+---------+---------+---------+---------+---------------------------* + + * PL_DISP : method used to compute the plasmon dispersion (3D real case) + PL_DISP = 'HYDRODY' hydrodynamic model + PL_DISP = 'RPA_MOD' RPA model + PL_DISP = 'TWA_MOD' Toigo-Woodruff model + PL_DISP = 'GOA_MOD' Gorobchenko model + PL_DISP = 'HUBBARD' Hubbard model + PL_DISP = 'ELASTIC' elastic model + PL_DISP = 'SGBBN_M' SGBBN model + PL_DISP = 'UTI_MOD' Utsumi-Ichimaru model + * PL_DISP : method used to compute the plasmon dispersion (2D real case) + PL_DISP = 'HYDRODY' hydrodynamic model + PL_DISP = 'RPA_MOD' RPA model + * PL_DISP : method used to compute the plasmon dispersion (1D real case) + PL_DISP = 'HYDRODY' hydrodynamic model + PL_DISP = 'RPA_MOD' RPA model + + *-------+---------+---------+---------+---------+---------------------------* + + * GSTDY : static vs dynamic local-field corrections + GSTDY = ' STATIC' --> GQ_TYPE + GSTDY = 'DYNAMIC' --> GQO_TYPE + + * GQ_TYPE : local-field correction type (3D) static + GQ_TYPE = 'NONE' no local field correction + GQ_TYPE = 'ALDA' adiabatic local density + GQ_TYPE = 'ALFL' Alvarellos-Flores + GQ_TYPE = 'BEBR' Bedell-Brown + GQ_TYPE = 'CDOP' TDDFT Corradini et al correction + GQ_TYPE = 'GEV2' Geldart-Vosko 2 + GQ_TYPE = 'GEVO' Geldart-Vosko correction + GQ_TYPE = 'GOCA' Gold-Calmels + temperature-dep. --> GQ_TYPE = 'HNCA' hypernetted chain + GQ_TYPE = 'HORA' Holas-Rahman + GQ_TYPE = 'HUBB' Hubbard correction (only exchange) + GQ_TYPE = 'ICUT' Ichimaru-Utsumi correction + GQ_TYPE = 'IKPA' Iwamoto-Krotscheck-Pines + GQ_TYPE = 'IWA1' Iwamoto G_{-1} + GQ_TYPE = 'IWA2' Iwamoto G_{3} approx. + temperature-dep. --> GQ_TYPE = 'IWA3' Iwamoto G_{-1} + GQ_TYPE = 'IWA4' Iwamoto G_{3} exact + GQ_TYPE = 'JGDG' Jung-Garcia-Gonzalez-Dobson-Godby + GQ_TYPE = 'KLLA' Kleinman-Langreth correction + GQ_TYPE = 'LDAC' LDA correction + GQ_TYPE = 'MCSC' Moroni-Ceperley-Senatore correction + GQ_TYPE = 'NAGY' Nagy correction + GQ_TYPE = 'PAVA' Pavas-Vashishta correction + GQ_TYPE = 'PGGA' Petersilka-Gossmann-Gross + GQ_TYPE = 'RICE' Rice correction + GQ_TYPE = 'SHAW' Shaw correction + GQ_TYPE = 'SLAT' Slater correction + GQ_TYPE = 'STLS' Singwi et al correction + temperature-dep. --> GQ_TYPE = 'TKAC' Tkachenko correction + GQ_TYPE = 'TRMA' Tripathy-Mandal + GQ_TYPE = 'VASI' Vashishta-Singwi correction + GQ_TYPE = 'UTI1' Utsumi-Ichimaru correction (only exchange) + + * GQ_TYPE : local-field correction type (2D) static + GQ_TYPE = 'NONE' no local field correction + GQ_TYPE = 'BUTO' Bulutay-Tomak + GQ_TYPE = 'DPGT' Davoudi-Giuliani-Giuliani-Tosi + GQ_TYPE = 'GOCA' Gold-Calmels + GQ_TYPE = 'HUBB' Hubbard correction (only exchange) + GQ_TYPE = 'IWA1' Iwamoto G_{-1} + GQ_TYPE = 'IWA2' Iwamoto G_{3} + GQ_TYPE = 'SAIC' Sato-Ichimaru correction + + * GQ_TYPE : local-field correction type (1D) static + GQ_TYPE = 'NONE' no local field correction + GQ_TYPE = 'GOCA' Gold-Calmels + GQ_TYPE = 'HUBB' Hubbard correction (only exchange) + + * IQ_TYPE : type of approximation for I(q) + IQ_TYPE = 'GKM' Gorobchenko-Kohn-Maksimov + IQ_TYPE = 'HKA' Hong-Kim + IQ_TYPE = 'IKP' Iwamoto-Krotscheck-Pines parametrization + IQ_TYPE = 'KU1' Kugler 1 + IQ_TYPE = 'KU2' Kugler 1 + + ~ + + * LANDAU : model chosen for the calculation of the Landau parameters (3D) + LANDAU = 'NONE' Landau's theory not used + LANDAU = 'CHEN' Chen's approach + LANDAU = 'RASC' Rayleigh-Schrödinger expansion + LANDAU = 'ANBR' Anderson-Brinkman model + LANDAU = 'GUTZ' Gutzwiller model + LANDAU = 'IWPI' Iwamoto-Pines model (hard-sphere) + LANDAU = 'GCYO' Giuliani-Vignale parametrization of + Yasuhara-Ousaka approach + LANDAU = 'SBOH' slave-boson one-band Hubbard model + + * LANDAU : model chosen for the calculation of the Landau parameters (2D) + LANDAU = 'NONE' Landau's theory not used + LANDAU = 'ERZA' Engelbrecht-Randeria-Zhang approach + LANDAU = 'GVYO' Giuliani-Vignale parametrization of + Yasuhara-Ousaka approach + LANDAU = 'KCMP' Kwoon-Ceperley-Martin parametrization + * GQO_TYPE : local-field correction type (3D) + GQO_TYPE = 'NONE' no local field correction + GQO_TYPE = 'ALFL' Alvarellos-Flores correction + GQO_TYPE = 'BACA' Barriga-Carrasco correction + GQO_TYPE = 'BBSA' Bachlechner-Böhm-Schinner + GQO_TYPE = 'COPI' Constantin-Pitarke + GQO_TYPE = 'DABR' Dabrowski + GQO_TYPE = 'FWRA' Forstmann-Wierling-Röpke + GQO_TYPE = 'HOK1' Hong-Kim correction + GQO_TYPE = 'HOK2' Hong-Kim correction + GQO_TYPE = 'JEWS' Jewsbury approximation + GQO_TYPE = 'KUG1' Kugler q --> 0 approximation + GQO_TYPE = 'KUG2' Kugler approximation + GQO_TYPE = 'MDGA' Mithen-Daligault-Gregori + GQO_TYPE = 'NLGA' Nagy-Laszlo-Giber approximation + GQO_TYPE = 'RIA1' Richardson-Ashcroft G_s + GQO_TYPE = 'RIA2' Richardson-Ashcroft G_n + GQO_TYPE = 'RIA3' Richardson-Ashcroft G_a + GQO_TYPE = 'SHMU' Shah-Mukhopadhyay + GQO_TYPE = 'TOWO' Toigo-Woodruff + GQO_TYPE = 'UTI2' Utsumi-Ichimaru approximation + GQO_TYPE = 'VISC' viscosity approximation + + *-------+---------+---------+---------+---------+---------------------------* + + * DAMPING : type of damping used + DAMPING = 'NONE' no damping + DAMPING = 'LFTM' lifetime + DAMPING = 'RELA' relaxation time + DAMPING = 'DECA' decay rate + DAMPING = 'DIFF' diffusion coefficient + DAMPING = 'VISC' viscosity + + * LT_TYPE : approximation used for lifetime (3D) + LT_TYPE = 'DAVI' Davies formula + LT_TYPE = 'GALI' Galitskii formula + LT_TYPE = 'GIQU' Giuliani-Quinn formula + LT_TYPE = 'GIVI' Giuliani-Vignale formula + LT_TYPE = 'INPE' Inogamov-Petrov formula + LT_TYPE = 'LUBR' Lugovskoy-Bray formula + LT_TYPE = 'NAEC' Nagy-Echenique formula + LT_TYPE = 'QIVI' Qian-Vignale formula + LT_TYPE = 'QUFE' Quinn-Ferrell formula + + * LT_TYPE : approximation used for lifetime (2D) + LT_TYPE = 'GIQ1' Giuliani-Quinn formula for e-h loss + LT_TYPE = 'GIQ2' Giuliani-Quinn formula for plasmon loss + LT_TYPE = 'GIVI' Giuliani-Vignale formula + LT_TYPE = 'HAWR' Hawrylak formula + LT_TYPE = 'MELA' Menashe-Laikhtman formula + LT_TYPE = 'QIVI' Qian-Vignale formula + + * RT_TYPE : relaxation time + RT_TYPE = ' NO' --> no relaxation time + RT_TYPE = 'E-E' --> electron-electron interaction + RT_TYPE = 'E-P' --> electron-phonon interaction + RT_TYPE = 'E-I' --> electron-phonon impurity + RT_TYPE = 'ALL' --> all three taken into account + + ~ + + * DR_TYPE : decay rate in 3D + DR_TYPE = 'UTIC' --> Utsumi-Ichimaru approximation + DR_TYPE = 'VLAS' --> Vlasov approximation + + * DC_TYPE : diffusion coefficient in 3D + DC_TYPE = 'ASHO' --> Ashurst-Hoover + + * VI_TYPE : viscosity in 3D + VI_TYPE = 'AMPP' Angilella et al hard-sphere fluid --> T-dependent + VI_TYPE = 'DRBA' Daligault-Rasmussen-Baalrud (plasmas) --> T-dependent + VI_TYPE = 'KHRA' Khrapak for Yukawa fluid --> T-dependent + VI_TYPE = 'LHPO' Longuet-Higgins-Pope --> T-dependent + VI_TYPE = 'SCHA' Schäfer --> T-dependent + VI_TYPE = 'SCHD' Schäfer (dynamic) --> T-dependent + VI_TYPE = 'SHTE' Shternin --> T-dependent + VI_TYPE = 'STEI' Steinberg low-temperature --> T-dependent + + * VI_TYPE : viscosity in 2D + VI_TYPE = 'SCHA' Schäfer --> T-dependent + graphene <-- VI_TYPE = 'KISC' Kiselev-Schmalian (dynamic) --> T-dependent + graphene <-- VI_TYPE = 'MSFA' Müller-Schmalian-Fritz --> T-dependent + + ~ + + * EE_TYPE : e-e relaxation time in 3D + RT_TYPE = 'ALAR' --> Al'tshuler-Aronov (e-e + impurities) + RT_TYPE = 'BACA' --> Barriga-Carrasco approximation (e-e) + RT_TYPE = 'FSTB' --> Fann et al approximation (e-e) + RT_TYPE = 'QIVI' --> Qian-Vignale (e-e) + RT_TYPE = 'RASM' --> Rammer-Smith (e-e) + RT_TYPE = 'UTIC' --> Utsumi-Ichimaru approximation (e-e) + RT_TYPE = 'TAIC' --> Tanaka-Ichimaru approximation (e-e) + + + * EE_TYPE : relaxation time in 2D + EE_TYPE = 'FUAB' --> Fukuyama-Abrahams (disordered metals) + graphene <-- EE_TYPE = 'LUFO' --> Lucas-Fong (e-e) + EE_TYPE = 'QIVI' --> Qian-Vignale (e-e) + EE_TYPE = 'RASM' --> Rammer-Smith (e-e) + heterostructures <-- EE_TYPE = 'REWI' --> Reizer-Wilkins (e-e) + EI_TYPE = 'SHAS' --> Sharma-Ashraf (e-e + impurities) + EE_TYPE = 'ZHDA' --> Zhang-Das Sarma (e-e) + + * EE_TYPE : relaxation time in 1D + EI_TYPE = 'SHAS' --> Sharma-Ashraf (e-e + impurities) + + * EP_TYPE : e-phonon relaxation time in 3D + EP_TYPE = 'STEL' --> Steinberg low-temperature + EP_TYPE = 'STEH' --> Steinberg High-temperature + + * EI_TYPE : e-impurit relaxation time in 3D + EI_TYPE = 'HEAP' --> Hertel-Appel approximation + + ~ + + * IP_TYPE : ion plasma relaxation time in 3D + IP_TYPE = 'SEMO' --> Selchow-Morawetz approximation + IP_TYPE = 'SPIT' --> Spitzer approximation + + * PD_TYPE : method used to compute the plasmon damping (3D) + PD_TYPE = 'NONE' --> no plasmon damping + PD_TYPE = 'CALL' --> Callen approximation + PD_TYPE = 'DGKA' --> DuBois-Gilinsky-Kivelson approximation + PD_TYPE = 'FEWA' --> Fetter and Walecka approximation + PD_TYPE = 'JEWS' --> Jewsbury approximation + PD_TYPE = 'LITI' --> Giuliani-Quinn lifetime approximation + PD_TYPE = 'MOPE' --> Molinari-Peerani approximation + PD_TYPE = 'NPSA' --> Ninham-Powel-Swanson approximation + PD_TYPE = 'SGAA' --> Segui-Gervasoni-Arista approximation + + ~ + + * QD_TYPE : method used to compute q-dependent relaxation time + QD_TYPE = 'NONE' --> no q-dependence + QD_TYPE = 'GAUS' --> Gaussian + QD_TYPE = 'LORE' --> Lorentzian + + * ZETA : Value of Tanaka-Ichimaru parameter + + *-------+---------+---------+---------+---------+---------------------------* + + * INT_POT : type of interaction potential (3D) + INT_POT = 'COULO' Coulomb interaction + INT_POT= 'YUKAW' Yukawa interaction + INT_POT= 'RPAPO' RPA interaction + INT_POT = 'OVER1' Overhauser interaction + INT_POT = 'OVER2' modified Overhauser interaction + INT_POT = 'DEUTS' Deutsch interaction + INT_POT = 'PHOLE' particle-hole interaction + INT_POT = 'KELBG' Kelbg interaction + + * S : + + * EPS : + + *-------+---------+---------+---------+---------+---------------------------* + + * EK : electron kinetic energy (eV) + * EP_C : electron-phonon coupling + * DEBYE_T : material Debye temperature + + ~ + + * NA : number of atoms per unit volume + * MA : mass of the atoms + * RA : radius of the atoms + + *-------+---------+---------+---------+---------+---------------------------* + + * NI : impurity concentration + * EI_C : strength of impurity scattering + + *-------+---------+---------+---------+---------+---------------------------* + + + * CF_TYPE : type of classical fluid calculation --> 3D + CF_TYPE = 'SHS' smooth hard spheres + CF_TYPE = 'RH1' rough hard spheres (Pidduck) + CF_TYPE = 'RH2' rough hard spheres (Condiff-Lu-Dahler) + CF_TYPE = 'RH3' rough hard spheres (McCoy-Sandler-Dahler) + CF_TYPE = 'DCE' dilute Chapman-Enskog + CF_TYPE = 'HCE' heavy (i.e. dense) Chapman-Enskog + CF_TYPE = 'LJF' Lennard-Jones fluid + + CF_TYPE = 'DHD' dense hard disks --> 2D + + * PF_TYPE : type of packing fraction --> 2D + PF_TYPE = 'HDM' --> hard disk model + + --> 3D + PF_TYPE = 'HSM' --> hard sphere model + PF_TYPE = 'RCP' --> random closed-packed + PF_TYPE = 'FCC' --> FCC closed-packed + PF_TYPE = 'FRE' --> freezing + PF_TYPE = 'MEL' --> melting + + * SL_TYPE : type of scattering length calculation + SL_TYPE = 'HSP' --> hard sphere potential + SL_TYPE = 'ASW' --> attractive square well (without bound state) + SL_TYPE = 'RSW' --> repulsive square well + SL_TYPE = 'DSP' --> delta-shell potential + SL_TYPE = 'AYP' --> attractive Yukawa potential + SL_TYPE = 'CCO' --> Coulomb cut-off potential + SL_TYPE = 'HUL' --> Hulthén potential + + *=======+=========+=========+=========+=========+===========================* + * STRUCTURE FACTOR : * + *=======+=========+=========+=========+=========+===========================* + + + * SSTDY : static vs dynamic local-field corrections + SSTDY = ' STATIC' --> SQ_TYPE + SSTDY = 'DYNAMIC' --> SQO_TYPE + + * SQ_TYPE : structure factor approximation (3D) --> static + SQ_TYPE = 'DEH' Debye-Hückel approximation + SQ_TYPE = 'GEA' generalized approximation + SQ_TYPE = 'GOR' Gorobchenko approximation + SQ_TYPE = 'GR2' computed from g(r) (GR_TO_SQ.f code) + SQ_TYPE = 'GSB' Gori-Giorgi-Sacchetti-Bachelet approximation + SQ_TYPE = 'HFA' Hartree-Fock approximation (only exchange) + SQ_TYPE = 'HUB' Hubbard approximation + SQ_TYPE = 'ICH' Ichimaru approximation + SQ_TYPE = 'MSA' mean spherical approximation + SQ_TYPE = 'PKA' Pietiläinen-Kallio + SQ_TYPE = 'RPA' RPA approximation + SQ_TYPE = 'SHA' Shaw approximation + SQ_TYPE = 'SIN' Singh + SQ_TYPE = 'SPA' Singh-Pathak + SQ_TYPE = 'TWA' Toigo-Woodruff approximation +! + * SQO_TYPE : structure factor approximation (3D) --> dynamic + SQO_TYPE = 'ABA' Arista-Brandt approximation + SQO_TYPE = 'HFA' Hartree-Fock approximation + SQO_TYPE = 'HYD' hyrodynamic approximation + SQO_TYPE = 'IGA' ideal gas approximation + SQO_TYPE = 'ITA' Ichimaru-Tanaka approximation + SQO_TYPE = 'MFA' Hansen-McDonald-Pollock approximation + SQO_TYPE = 'NIC' Nakano-Ichimaru approximation + SQO_TYPE = 'UTI' Utsumi-Ichimaru approximation (3D) + SQO_TYPE = 'VLA' linearized Vlasov approximation + + *=======+=========+=========+=========+=========+===========================* + * PAIR CORRELATION FUNCTION : * + *=======+=========+=========+=========+=========+===========================* + + * GR_TYPE : pair correlation function approximation g(r) (3D) + GR_TYPE = 'CDF' from chain diagram formula of PDF (long distance) + GR_TYPE = 'DHA' Debye-Hückel approximation + GR_TYPE = 'DWA' DeWitt approximation + GR_TYPE = 'FBA' Frieman-Book approximation + GR_TYPE = 'HFA' Hartree-Fock approximation (only exchange) + GR_TYPE = 'HUB' Hubbard approximation + GR_TYPE = 'LLA' Lee-Long approximation + GR_TYPE = 'ORB' Ortiz-Ballone approximation + GR_TYPE = 'PDF' from pair distribution function + GR_TYPE = 'SHA' Shaw approximation + GR_TYPE = 'SQ2' computed from S(q) (SQ_TO_GR.f code) + GR_TYPE = 'WIG' Wigner approximation + + * GR0_MODE : g(0) (3D) + GR0_MODE = 'CAGO' --> Calmels-Gold + GR0_MODE = 'DPGT' --> Davoudi-Polini-Giuliani-Tosi + GR0_MODE = 'HASA' --> Holas-Aravind-Singwi (small r_s) + GR0_MODE = 'ICHI' --> Ichimaru + GR0_MODE = 'KIMB' --> Kimball + GR0_MODE = 'OVE1' --> Overhauser 1 + GR0_MODE = 'OVE2' --> Overhauser 2 + GR0_MODE = 'QIAN' --> Qian + * GR0_MODE : g(0) (2D) + GR0_MODE = 'CAGO' --> Calmels-Gold + GR0_MODE = 'HAFO' --> Hartree-Fock + GR0_MODE = 'MOMA' --> Moreno-Marinescu + GR0_MODE = 'NSOA' --> Nagano-Singwi-Ohnishi + GR0_MODE = 'QIAN' --> Qian + + *=======+=========+=========+=========+=========+===========================* + * PAIR DISTRIBUTION FUNCTION : * + *=======+=========+=========+=========+=========+===========================* + + * RH_TYPE : pair distribution function approximation (3D) + RH_TYPE = 'CDI' chain diagram improved + RH_TYPE = 'CEG' classical electron gas + RH_TYPE = 'DEB' Debye electron gas + RH_TYPE = 'FUA' correct to order 2 in epsilon + RH_TYPE = 'SDC' short-distance correlations + RH_TYPE = 'WDA' watermelon diagrams summed + + *=======+=========+=========+=========+=========+===========================* + * ENERGY CALCULATIONS : * + *=======+=========+=========+=========+=========+===========================* + + * EC_TYPE : type of correlation energy functional (3D) + EC_TYPE = 'GEBR_W' --> Gell-Mann and Brueckner + EC_TYPE = 'CAMA_W' --> Carr and Maradudin + EC_TYPE = 'EHTY_S' --> Endo-Horiuchi-Takada-Yasuhara + EC_TYPE = 'HELU_W' --> Hedin and Lundqvist + EC_TYPE = 'VBHE_W' --> von Barth and Hedin + EC_TYPE = 'PEZU_W' --> Perdew and Zunger + EC_TYPE = 'WIGN_S' --> Wigner + EC_TYPE = 'NOPI_S' --> Nozières and Pines + EC_TYPE = 'LIRO_S' --> Lindgren and Rosen + EC_TYPE = 'PEZU_S' --> Perdew and Zunger + EC_TYPE = 'REHI_S' --> Rebei and Hitchon + EC_TYPE = 'GGSB_G' --> Gori-Giorgi-Sacchetti-Bachelet + EC_TYPE = 'PRKO_G' --> Proynov and Kong + EC_TYPE = 'VWNU_G' --> Vosko, Wilk and Nusair + EC_TYPE = 'PEWA_G' --> Perdew and Wang + EC_TYPE = 'HUBB_G' --> Hubbard + EC_TYPE = 'CHAC_G' --> Chachiyo + EC_TYPE = 'ISKO_T' --> Isihara and Kojima + * EC_TYPE : type of correlation energy functional (2D) + EC_TYPE = 'TACE_G' --> Tanatar-Ceperley + EC_TYPE = 'CPPA_G' --> Seidl-Perdew_Levy + EC_TYPE = 'AMGB_G' --> Attaccalite-Moroni-Gori-Giorgi-Bachelet + EC_TYPE = 'SEID_G' --> Seidl + EC_TYPE = 'LOOS_W' --> Loos + EC_TYPE = 'WIGN_S' --> Wigner + EC_TYPE = 'ISTO_T' --> Isihara-Toyoda + * EC_TYPE : type of correlation energy functional (1D) + EC_TYPE = 'LOOS_W' --> Loos + EC_TYPE = 'WIGN_S' --> Wigner + + + * FXC_TYPE : type of XC free energy functional --> 3D + FXC_TYPE = 'NO' --> None + FXC_TYPE = 'EB' --> Ebeling et al + FXC_TYPE = 'IC' --> Ichimaru et al + FXC_TYPE = 'KS' --> Karasiev et al + FXC_TYPE = 'VS' --> Vashishta and Singwi + FXC_TYPE = 'PD' --> Perrot and Dharma-Wardana + FXC_TYPE = 'EK' --> Ebeling-Kraeft-Kremp-Röpke + + * EXC_TYPE : type of exchange-correlation energy functional --> 3D + EXC_TYPE = 'NO' --> None + EXC_TYPE = 'GT' --> Goedeker-Tetter-Hutter + EXC_TYPE = 'ST' --> + EXC_TYPE = 'BD' --> Brown-DuBois-Holzmann-Ceperley + + ~ + + + *=======+=========+=========+=========+=========+===========================* + * SPIN POLARIZATION : * + *=======+=========+=========+=========+=========+===========================* + + * IMODE : choice of spin parameters + IMODE = 1 : no spin polarization + IMODE = 2 : fully spin-polarized + + * XI : spin polarization : (n+ - n-) / n + + *=======+=========+=========+=========+=========+===========================* + * THERMODYNAMIC PROPERTIES : * + *=======+=========+=========+=========+=========+===========================* + + * TH_PROP : type of calculation --> thermodynamic properties + TH_PROP = 'CLAS' : classical approximation + TH_PROP = 'QUAN' : quantum approximation + + * GP_TYPE : grand partition function type (3D) + GP_TYPE = 'IK0' Isihara-Kojima formulation + GP_TYPE = 'RH0' Rebei-Hitchon formulation + GP_TYPE = 'IKM' Isihara-Kojima with magnetic field + + * GP_TYPE : grand partition function type (2D) + GP_TYPE = 'I20' Isihara-Kojima formulation + GP_TYPE = 'I2M' Isihara-Kojima with magnetic field + + *=======+=========+=========+=========+=========+===========================* + * INCOMING ION BEAM : * + *=======+=========+=========+=========+=========+===========================* + + * Z_BEAM : charge of ions in incoming beam + * EK_BEAM : kinetic energy of incoming beam ions (eV) + + *=======+=========+=========+=========+=========+===========================* + * OUTPUT CALCULATIONS : * + *=======+=========+=========+=========+=========+===========================* + + * I_DF : switch for dielectric function printing + I_DF = 0 : dielectric function not printed + I_DF = 1 : dielectric function printed in file 'diel_func.dat' + + * I_PZ : switch for polarization function printing + I_PZ = 0 : polarization function not printed + I_PZ = 1 : polarization function printed in file 'pola_func.dat' + + * I_SU : switch for susceptibility function printing + I_SU = 0 : susceptibility function not printed + I_SU = 1 : susceptibility function printed in file 'susc_func.dat' + + * I_CD : switch for electrical conductivity printing + I_CD = 0 : electrical conductivity not printed + I_CD = 1 : electrical conductivity printed in file 'cond_func.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_PD : switch for plasmon dispersion printing + I_PD = 0 : plasmon dispersion not calculated + I_PD = 1 : plasmon dispersion printed in file 'plas_disp.dat' + + * I_EH : switch for electron-hole dispersion printing + I_EH = 0 : electron-hole dispersion not calculated + I_EH = 1 : electron-hole dispersion printed in file 'elec_hole.dat' + + * I_E2 : switch for two-electron-hole dispersion printing + I_E2 = 0 : two-electron-hole dispersion not calculated + I_E2 = 1 : two-electron-hole dispersion printed in file 'elec_hol2.dat' + + * I_CK : switch for k-space e-e interaction potential printing + I_CK = 0 : potential not calculated + I_CK = 1 : potential printed in file 'int_pot_k.dat' + + * I_CR : switch for real-space e-e interaction potential printing + I_CR = 0 : potential not calculated + I_CR = 1 : potential printed in file 'int_pot_r.dat' + + * I_SA : switch for scattering amplitude printing + I_SA = 0 : scattering amplitude not calculated + I_SA = 1 : scattering amplitude printed in file 'scat_ampl.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_LF : switch for local-field corrections G(q,omega) printing + I_LF = 0 : local-field corrections not calculated + I_LF = 1 : local-field corrections printed in file 'loca_fiel.dat' + + * I_IQ : switch for G(q,inf) printing + I_IQ = 0 : G(q,inf) not calculated + I_IQ = 1 : G(q,inf) printed in file 'ginf_fiel.dat' + + * I_SF : switch for structure factor S(q,omega) printing + I_SF = 0 : structure factor not calculated + I_SF = 1 : structure factor printed in file 'stru_fact.dat' + + * I_PC : switch for pair correlation function g(r) printing + I_PC = 0 : pair correlation function not calculated + I_PC = 1 : pair correlation function printed in file 'pair_corr.dat' + + ~ + + * I_P2 : switch for pair distribution rho2(r) printing + I_P2 = 0 : pair distribution function not calculated + I_P2 = 1 : pair distribution function printed in file 'pair_dist.dat' + + * I_VX : switch for vertex function Gamma(q,omega) printing + I_VX = 0 : vertex function not calculated + I_VX = 1 : vertex function printed in file 'vertex_fu.dat' + + * I_DC : switch for plasmon damping coefficient Im[eps]/q^2 printing + I_DC = 0 : plasmon damping not calculated + I_DC = 1 : plasmon damping printed in file 'plas_damp.dat' + + * I_MD : switch for momentum distribution printing + I_MD = 0 : momentum distribution not calculated + I_MD = 1 : momentum distribution printed in file 'mome_dist.dat' + + ~ + + * I_LD : switch for Landau parameters printing + I_LD = 0 : Landau parameters not calculated + I_LD = 1 : Landau parameters printed in file 'landau_pa.dat' + + * I_DP : switch for damping printing + I_DP = 0 : damping not calculated + I_DP = 1 : damping printed in file 'damp_file.dat' + + * I_LT : switch for plasmon lifetime printing + I_LT = 0 : plasmon lifetime not calculated + I_LT = 1 : plasmon lifetime printed in file 'life_time.dat' + + * I_BR : switch for plasmon broadening printing + I_BR = 0 : plasmon broadening not calculated + I_BR = 1 : plasmon broadening printed in file 'broadenin.dat' + + ~ + + * I_PE : switch for plasmon energy printing + I_PE = 0 : plasmon energy not calculated + I_PE = 1 : plasmon energy printed in file 'plas_ener.dat' + + * I_QC : switch for plasmon q-bounds printing + I_QC = 0 : plasmon q-bounds not calculated + I_QC = 1 : plasmon q-bounds printed in file 'qc_bounds.dat' + + * I_RL : switch for relaxation time printing + I_RL = 0 : relaxation time not calculated + I_RL = 1 : relaxation time printed in file 'rela_time.dat' + + * I_TF : switch for Thomas-Fermi wave vector printing + I_TF = 0 : Thomas-Fermi wave vector not calculated + I_TF = 1 : Thomas-Fermi wave vector printed in file 'thomas-fe.dat' + + ~ + + * I_DY : switch for Debye wave vector printing + I_DY = 0 : Debye wave vector not calculated + I_DY = 1 : Debye wave vector printed in file 'debye_wav.dat' + + * I_ME : switch for moments of epsilon(q,omega) printing + I_ME = 0 : moments of epsilon not calculated + I_ME = 1 : moments of epsilon printed in file 'moments_e.dat' + + * I_MS : switch for moments of S(q,omega) printing + I_MS = 0 : moments of structure factor not calculated + I_MS = 1 : moments of structure factor printed in file 'moments_s.dat' + + * I_ML : switch for moments of loss function printing + I_ML = 0 : moments of loss function not calculated + I_ML = 1 : moments of loss function printed in file 'moments_l.dat' + + ~ + + * I_MC : switch for moments of conductivity printing + I_MC = 0 : moments of conductivity not calculated + I_MC = 1 : moments of conductivity printed in file 'moments_c.dat' + + * I_DE : switch for derivative of Re[ dielectric function ] printing + I_DE = 0 : derivative not calculated + I_DE = 1 : derivative printed in file 'deri_epsi.dat' + + * I_ZE : switch for Re[ dielectric function ] = 0 printing + I_ZE = 0 : function not calculated + I_ZE = 1 : function printed in file 'ree0_file.dat' + + * I_SR : switch for sum rules for epsilon printing + I_SR = 0 : sum rules not calculated + I_ST = 1 : sum rules printed in file 'sum_rules.dat' + + ~ + + * I_CW : switch for confinement wave function printing + I_CW = 0 : confinement wave function not calculated + I_CW = 1 : confinement wave function printed in file 'confin_wf.dat' + + * I_CF : switch for confinement potential printing + I_CF = 0 : confinement potential not calculated + I_CF = 1 : confinement potential printed in file 'confin_pt.dat' + + * I_EM : switch for effective mass printing + I_EM = 0 : effective mass not calculated + I_EM = 1 : effective mass printed in file 'effe_mass.dat' + + * I_MF : switch for mean free path printing + I_MF = 0 : mean free path not calculated + I_MF = 1 : mean free path printed in file 'mean_path.dat' + + ~ + + * I_SP : switch for spectral function printing + I_SP = 0 : spectral function not calculated + I_SP = 1 : spectral function printed in file 'spec_func.dat' + + * I_SE : switch for self-energy printing + I_SE = 0 : self-energy not calculated + I_SE = 1 : self-energy printed in file 'self_ener.dat' + + * I_NV : switch for Nevanlinaa function printing + I_NV = 0 : Nevanlinaa function not calculated + I_NV = 1 : Nevanlinaa function printed in file 'nevanlina.dat' + + * I_ES : switch for Eliashberg function printing + I_ES = 0 : Eliashberg function not calculated + I_ES = 1 : Eliashberg function printed in file 'elia_func.dat' + + ~ + + * I_GR : switch for Grüneisen parameter printing + I_GR = 0 : Grüneisen parameter not calculated + I_GR = 1 : Grüneisen parameter printed in file 'grune_par.dat' + + * I_FD : switch for Fermi-Dirac distribution printing + I_FD = 0 : Fermi-Dirac distribution not calculated + I_FD = 1 : Fermi-Dirac distribution printed in file 'fermi_dir.dat' + + * I_BE : switch for Bose-Einstein distribution printing + I_BE = 0 : Bose-Einstein distribution not calculated + I_BE = 1 : Bose-Einstein distribution printed in file 'bose_eins.dat' + + * I_MX : switch for Maxwell distribution printing + I_MX = 0 : Maxwell distribution not calculated + I_MX = 1 : Maxwell distribution printed in file 'maxwell_d.dat' + + ~ + + * I_SC : switch for scale parameters printing + I_SC = 0 : scale parameters not calculated + I_SC = 1 : scale parameters printed in file 'scale_par.dat' + + * I_DS : switch for density of states printing + I_DS = 0 : density of states not calculated + I_DS = 1 : density of states printed in file 'dens_stat.dat' + + * I_SB : switch for subband energies printing + I_SB = 0 : subband energies not calculated + I_SB = 1 : subband energies printed in file 'subb_ener.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_GP : switch for grand partition function printing + I_GP = 0 : grand partition function not calculated + I_GP = 1 : grand partition function printed in file 'gran_part.dat' + + * I_PR : switch for electronic pressure printing + I_PR = 0 : electronic pressure not calculated + I_PR = 1 : electronic pressure printed in file 'epressure.dat' + + * I_CO : switch for compressibility printing + I_CO = 0 : compressibility not calculated + I_CO = 1 : compressibility printed in file 'comp_file.dat' + + * I_CP : switch for chemical potential printing + I_CP = 0 : chemical potential not calculated + I_CP = 1 : chemical potential printed in file 'chem_pote.dat' + + ~ + + * I_BM : switch for bulk modulus printing + I_BM = 0 : bulk modulus not calculated + I_BM = 1 : bulk modulus printed in file 'bulk_modu.dat' + + * I_SH : switch for shear modulus printing + I_SH = 0 : shear modulus not calculated + I_SH = 1 : shear modulus printed in file 'shear_mod.dat' + + * I_S0 : switch for zero sound velocity printing + I_S0 = 0 : zero sound velocity not calculated + I_S0 = 1 : zero sound velocity printed in file 'zero_soun.dat' + + * I_S1 : switch for first sound velocity printing + I_S1 = 0 : first sound velocity not calculated + I_S1 = 1 : first sound velocity printed in file 'firs_soun.dat' + + ~ + + * I_DT : switch for Debye temperature printing + I_DT = 0 : Debye temperature not calculated + I_DT = 1 : Debye temperature printed in file 'Debye_tmp.dat' + + * I_PS : switch for Pauli paramagnetic susceptibility printing + I_PS = 0 : Pauli paramagnetic susceptibility not calculated + I_PS = 1 : Pauli paramagnetic susceptibility printed in file 'para_susc.dat' + + * I_IE : switch for internal energy printing + I_IE = 0 : internal energy not calculated + I_IE = 1 : internal energy printed in file 'inter_ene.dat' + + * I_EI : switch for excess internal energy printing + I_EI = 0 : excess internal energy not calculated + I_EI = 1 : excess internal energy printed in file 'exces_ene.dat' + + ~ + + * I_FH : switch for Helmholtz free energy printing + I_FH = 0 : Helmholtz free energy not calculated + I_FH = 1 : Helmholtz free energy printed in file 'helm_free.dat' + + * I_EY : switch for entropy printing + I_EY = 0 : entropy not calculated + I_EY = 1 : entropy printed in file 'entropy_f.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_EF : switch for Fermi energy printing + I_EF = 0 : Fermi energy not calculated + I_EF = 1 : Fermi energy printed in file 'fermi_ene.dat' + + * I_KF : switch for Fermi momentum printing + I_KF = 0 : Fermi momentum not calculated + I_KF = 1 : Fermi momentum printed in file 'fermi_vec.dat' + + * I_VF : switch for Fermi velocity printing + I_VF = 0 : Fermi velocity not calculated + I_VF = 1 : Fermi velocity printed in file 'fermi_vel.dat' + + * I_TE : switch for Fermi temperature printing + I_TE = 0 : Fermi temperature not calculated + I_TE = 1 : Fermi temperature printed in file 'fermi_tmp.dat' + + ~ + + * I_DL : switch for density of states at Fermi level printing + I_DL = 0 subband energies: density of states at Fermi level not calculated + I_DL = 1 : density of states at Fermi level printed in file 'fermi_dos.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_TW : switch for thermal De Broglie wavelength printing + I_TW = 0 : thermal De Broglie wavelength not calculated + I_TW = 1 : thermal De Broglie wavelength printed in file 'thermal_w.dat' + + * I_VT : switch for thermal velocity printing + I_VT = 0 : thermal velocity not calculated + I_VT = 1 : thermal velocity printed in file 'thermal_v.dat' + + * I_TC : switch for thermal conductivity printing + I_TC = 0 : thermal conductivity not calculated + I_TC = 1 : thermal conductivity printed in file 'thermal_c.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_EG : switch for ground state energy printing + I_EG = 0 : ground state energy not calculated + I_EG = 1 : ground state energy printed in file 'ground_st.dat' + + * I_EX : switch for exchange energy printing + I_EX = 0 : exchange energy not calculated + I_EX = 1 : exchange energy printed in file 'ex_energy.dat' + + * I_XC : switch for exchange correlation energy printing + I_XC = 0 : exchange correlation energy not calculated + I_XC = 1 : exchange correlation energy printed in file 'xc_energy.dat' + + * I_EC : switch for correlation energy printing + I_EC = 0 : correlation energy not calculated + I_EC = 1 : correlation energy printed in file 'corr_ener.dat' + + ~ + + * I_HF : switch for Hartree-Fock energy printing + I_HF = 0 : Hartree-Fock energy not calculated + I_HF = 1 : Hartree-Fock energy printed in file 'hf_energy.dat' + + * I_EK : switch for kinetic energy printing + I_EK = 0 : kinetic energy not calculated + I_EK = 1 : kinetic energy printed in file 'kine_ener.dat' + + * I_EP : switch for potential energy printing + I_EP = 0 : potential energy not calculated + I_EP = 1 : potential energy printed in file 'pote_ener.dat + + *-------+---------+---------+---------+---------+---------------------------* + + * I_VI : switch for shear viscosity printing + I_VI = 0 : shear viscosity not calculated + I_VI = 1 : shear viscosity printed in file 'visc_coef.dat' + + * I_DI : switch for diffusion coefficient printing + I_DI = 0 : diffusion coefficient not calculated + I_DI = 1 : diffusion coefficient printed in file 'diff_coef.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_FP : switch for fluctuation potential calculation + I_FP = 0 : fluctuation potential not calculated + I_FP = 1 : fluctuation potential printed in file 'fluct_pot.dat' + + * I_EL : switch for loss function calculation + I_EL = 0 : loss function not calculated + I_EL = 1 : loss function printed in file 'ener_loss.dat' + + * I_PO : switch for stopping power calculation + I_PO = 0 : stopping power not calculated + I_PO = 1 : stopping power printed in file 'stop_powe.dat' + + * I_RF : switch for refractive index calculation + I_RF = 0 : refractive index not calculated + I_RF = 1 : refractive index printed in file 'refrac_in.dat' + + ~ + + * I_VC : switch for dynamic screened Coulomb potential V(q,omega) calculation + I_RF = 0 : dynamic screened Coulomb potential not calculated + I_RF = 1 : dynamic screened Coulomb potential printed in file 'dyna_coul.dat' + + *-------+---------+---------+---------+---------+---------------------------* + + * I_FN : switch for appending the calculation type string + to the output filename + I_FN = 0 : standard output filename + I_FN = 1 : parameter added to filename + + * I_WR : switch for writing physical properties into the log file + I_WR = 0 : does not write + I_WR = 1 : writes diff --git a/src/python/msspec_dfm/__init__.py b/src/python/msspec_dfm/__init__.py new file mode 100644 index 0000000..a3a6446 --- /dev/null +++ b/src/python/msspec_dfm/__init__.py @@ -0,0 +1,27 @@ +#!/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 . +# +# Source file : src/python/msspec_dfm/__init__.py +# Last modified: Fri, 25 Feb 2022 17:27:31 +0100 +# Committed by : Sylvain Tricot 1645806435 +0100 + +from msspec_dfm.version import __version__ +try: + from msspec_dfm.compute import compute +except ModuleNotFoundError as err: + pass diff --git a/src/python/msspec_dfm/cli.py b/src/python/msspec_dfm/cli.py new file mode 100644 index 0000000..f9d03f0 --- /dev/null +++ b/src/python/msspec_dfm/cli.py @@ -0,0 +1,164 @@ +#!/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 . +# +# Source file : src/python/msspec_dfm/cli.py +# Last modified: Fri, 25 Feb 2022 17:27:32 +0100 +# Committed by : Sylvain Tricot 1645806435 +0100 + +import click +import logging +import os +from msspec_dfm.input_file import InputFile +from msspec_dfm.version import __version__ +from msspec_dfm.eps import epsilon +from msspec_dfm import plotting + +@click.group(invoke_without_command=True, no_args_is_help=True) +@click.option('--version', is_flag=True, + help='Print the program version and exit.') +@click.option('-v', '--verbose', count=True, + help='Increase the verbosity output. Full verbosity for -vvv') +def main(version, verbose): + # Adjust the verbosity level + verbosity_levels = [logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG] + logging.basicConfig(level=verbosity_levels[min(verbose, len(verbosity_levels)-1)]) + + # Print the version and exit + if version: + logging.debug('Getting the version number...') + print(__version__) + 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)) + input_data = InputFile(input_file) + input_data.write() + logging.info("Input file with default values generated in: {}".format(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.info("Computing...") + logging.debug(" Input file : \'{:s}\'".format(input_file)) + logging.debug(" Output folder: \'{:s}\'".format(folder)) + epsilon(input_file, 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)) + + # data = plotting.Data(os.path.join(folder, plot_type + ".dat")) + # data.load(imag=img) + + # pw = plotting.PlotWindow3d(data) + # pw.plot() + # pw.show() + + # start by loading data + df_file = os.path.join(folder, 'diel_func.dat') + pd_file = os.path.join(folder, 'plas_disp.dat') + eh_file = os.path.join(folder, 'elec_hole.dat') + X, Y, ReZ, ImZ, pd, eh = plotting.load_data(df_file, pd_file, eh_file) + + vmin, vmax = bounds + Z = ReZ + if img: + Z = ImZ + + fig = ax = None + + if not(plot3d): + fig, ax = plotting.plot_2d(X, Y, Z, cmap=plotting.cmap, vmin=vmin, vmax=vmax, fig=fig, ax=ax) + else: + fig, ax = plotting.plot_3d(X, Y, Z, cmap=plotting.cmap, vmin=vmin, vmax=vmax, fig=fig, ax=ax, strides=strides) + + if contour: + fig, ax = plotting.plot_contour(X, Y, ReZ, levels=levels, vmin=vmin, vmax=vmax, + cmap=None, colors='black', fig=fig, ax=ax) + + if pdeh: + fig, ax = plotting.plot_pdeh(pd, eh, Ef=Ef, fig=fig, ax=ax) + + plotting.entitle(fig, ax, img=img) + plotting.plt.show() + + + + +if __name__ == '__main__': + main() diff --git a/src/python/msspec_dfm/compute.py b/src/python/msspec_dfm/compute.py new file mode 100644 index 0000000..cb47bf6 --- /dev/null +++ b/src/python/msspec_dfm/compute.py @@ -0,0 +1,63 @@ +#!/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 . +# +# Source file : src/python/msspec_dfm/version.py +# Last modified: Fri, 25 Feb 2022 17:27:32 +0100 +# Committed by : Sylvain Tricot 1645806435 +0100 + +import os +import sys +from tempfile import NamedTemporaryFile, TemporaryDirectory + +from matplotlib import pyplot as plt +import numpy as np + +from msspec_dfm.input_file import InputFile +from msspec_dfm.eps import epsilon + +from contextlib import redirect_stdout + +def compute(filename=None, folder=None, logfile='-', **parameters): + # If filename is None, a temporary name is provided + if filename is None: + filename = NamedTemporaryFile().name + + # If folder is None, a temporary name is provided + if folder is None: + folder = TemporaryDirectory().name + + if logfile != '-': + sys.stdout.flush() + old_fd = os.dup(1) + os.close(1) + os.open(logfile, os.O_WRONLY|os.O_CREAT) + + data = {} + input_file = InputFile(filename, **parameters) + input_file.write() + epsilon(filename, folder) + for root, dirs, files in os.walk(folder): + for f in files: + data[os.path.splitext(f)[0]] = np.loadtxt(os.path.join(root, f)) + + if logfile != '-': + os.close(1) + os.dup(old_fd) + os.close(old_fd) + + return data diff --git a/src/python/msspec_dfm/input_file.py b/src/python/msspec_dfm/input_file.py new file mode 100644 index 0000000..bd3d643 --- /dev/null +++ b/src/python/msspec_dfm/input_file.py @@ -0,0 +1,498 @@ +#!/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 . +# +# Source file : src/python/msspec_dfm/version.py +# Last modified: Fri, 25 Feb 2022 17:27:32 +0100 +# Committed by : Sylvain Tricot 1645806435 +0100 + +import os + +class InputFile: + defaults = { + # GENERAL PARAMETERS + # (q, omega, r) + 'Q_MIN' : (0.010, '13.3f'), + 'Q_MAX' : (4.000, '13.3f'), + 'N_Q' : (1000, '10d'), + 'E_MIN' : (0.010, '13.3f'), + 'E_MAX' : (4.000, '13.3f'), + 'N_E' : (2000, '10d'), + 'R_MIN' : (0.010, '13.3f'), + 'R_MAX' : (4.000, '13.3f'), + 'N_R' : (2000, '>10d'), + # Material's properties + 'RS' : (2.079, '13.3f'), + 'MSOM' : (1.000, '13.3f'), + 'MAT_TYP' : ('SCHRO', '>10s'), + 'EPS_B' : (1.000, '13.3f'), + # External fields + 'T' : (1.00, '12.2f'), + 'E' : (0.000, '13.3f'), + 'H' : (0.000, '13.3f'), + 'FLD' : ('NO', '>10s'), + # System's dimension + 'DIM' : ('3D', '>10s'), + # Confinement + 'R0' : (0.000, '13.3f'), + 'L' : (0.000, '13.3f'), + 'OM0' : (0.00, '12.2f'), + 'CONFIN' : ('NO-CONF', '>10s'), + # Multilayer structure + 'DL' : (0.000, '13.3f'), + 'D1' : (0.000, '13.3f'), + 'N_DEP' : (0.00, '12.2f'), + 'N_INV' : (0.00, '12.2f'), + 'H_TYPE' : ('NONE', '>10s'), + 'EPS_1' : (12.000, '13.3f'), + 'EPS_2' : (12.000, '13.3f'), + # Units + 'UNIT' : ('SIU', '>10s'), + 'UNIK' : ('SI', '>10s'), + # Screening + 'SC_TYPE' : ('NO', '>10s'), + # Plasma type + 'PL_TYPE' : ('OCP', '>10s'), + 'ZION' : (1.000, '13.3f'), + 'ZION2' : (0.000, '13.3f'), + # Calculation type + 'CAL_TYPE' : ('QUANTUM', '>10s'), + # DIELECTRIC FUNCTION + 'ESTDY' : ('DYNAMIC', '>10s'), + 'EPS_T' : ('LONG', '>10s'), + 'D_FUNC' : ('NEV3', '>10s'), + 'I_T' : (0, '>10d'), + 'NEV_TYPE' : ('STA2', '>10s'), + 'MEM_TYPE' : ('COCO', '>10s'), + 'ALPHA' : (0.500, '13.3f'), + 'BETA' : (0.600, '13.3f'), + # Analytical plasmon dispersion + 'PL_DISP' : ('RP2_MOD', '>10s'), + # Local-field corrections + 'GSTDY' : ('STATIC', '>10s'), + 'GQ_TYPE' : ('ICUT', '>10s'), + 'IQ_TYPE' : ('IKP', '>10s'), + 'LANDAU' : ('NONE', '>10s'), + 'GQO_TYPE' : ('NONE', '>10s'), + 'G0_TYPE' : ('EC', '>10s'), + 'GI_TYPE' : ('EC', '>10s'), + # Damping + 'DAMPING' : ('RELA', '>10s'), + 'LT_TYPE' : ('NONE', '>10s'), + 'RT_TYPE' : ('EX1', '>10s'), + 'DR_TYPE' : ('NONE', '>10s'), + 'DC_TYPE' : ('EXTE', '>10s'), + 'VI_TYPE' : ('NONE', '>10s'), + 'EE_TYPE' : ('NONE', '>10s'), + 'EP_TYPE' : ('NONE', '>10s'), + 'EI_TYPE' : ('NONE', '>10s'), + 'IP_TYPE' : ('NONE', '>10s'), + 'PD_TYPE' : ('NONE', '>10s'), + 'QD_TYPE' : ('LORE', '>10s'), + 'ZETA' : (1.250, '13.3f'), + 'D_VALUE_1': (0.500, '13.3f'), + 'POWER_1' : ('FEMTO', '>10s'), + 'EK' : (50.00, '12.2f'), + 'D_VALUE_2': (5.000, '13.3f'), + 'POWER_2' : ('FEMTO', '>10s'), + 'PCT' : (0.80, '12.2f'), + # Electron-electron interaction + 'INT_POT' : ('COULO', '>10s'), + 'S' : (2.590, '13.3f'), + 'EPS' : (470.000, '13.3f'), + 'DELTA' : (1.500, '13.3f'), + 'RC' : (1.500, '13.3f'), + 'ALF' : (5.000, '13.3f'), + 'M' : (7, '10d'), + 'N' : (28, '10d'), + 'A1' : (1.000, '13.3f'), + 'A2' : (1.000, '13.3f'), + 'A3' : (1.000, '13.3f'), + 'A4' : (1.000, '13.3f'), + # Electron-phonon interaction + 'EP_C' : (1500.000, '13.3f'), + 'DEBYE_T' : (1500.000, '13.3f'), + 'NA' : (12.000, '13.3f'), + 'MA' : (0.000, '13.3f'), + 'RA' : (0.000, '13.3f'), + # Electron-impurity interaction + 'NI' : (0.000, '13.3f'), + 'EI_C' : (0.000, '13.3f'), + # Classical fluid parameters + 'CF_TYPE' : ('SHS', '>10s'), + 'PF_TYPE' : ('HSM', '>10s'), + 'SL_TYPE' : ('HSP', '>10s'), + # STRUCTURE FACTOR + 'SSTDY' : ('DYNAMIC', '>10s'), + 'SQ_TYPE' : ('PKA', '>10s'), + 'SQO_TYPE' : ('EPS', '>10s'), + # PAIR CORRELATION FUNCTION + 'GR_TYPE' : ('SHA', '>10s'), + 'GR0_MODE' : ('KIMB', '>10s'), + # PAIR DISTRIBUTION FUNCTION + 'RH_TYPE' : ('CEG', '>10s'), + # SPECTRAL FUNCTION + 'SPF_TYPE' : ('NAIC', '>10s'), + # ENERGY CALCULATIONS + 'EC_TYPE' : ('GGSB_G', '>10s'), + 'FXC_TYPE' : ('NO', '>10s'), + 'EXC_TYPE' : ('NO', '>10s'), + 'EX_TYPE' : ('HEG', '>10s'), + 'EK_TYPE' : ('HEG', '>10s'), + # SPIN POLARIZATION + 'IMODE' : (1, '10d'), + 'XI' : (0.000, '13.3f'), + # THERMODYNAMIC PROPERTIES + 'TH_PROP' : ('QUAN', '>10s'), + 'GP_TYPE' : ('IK0', '>10s'), + # ELECTRON MEAN FREE PATH + 'EK_INI' : (150.00, '12.2f'), + 'EK_FIN' : (200.00, '12.2f'), + # CALCULATIONS OF MOMENTS + 'N_M' : (1, '10d'), + 'M_TYPE' : ('SQO', '>10s'), + # INCOMING ION BEAM + 'Z_BEAM' : (1.00, '12.2f'), + 'EK_BEAM' : (15000.00, '12.2f'), + # OUTPUT CALCULATIONS/PRINTING + 'I_DF' : (1, '10d'), + 'I_PZ' : (0, '10d'), + 'I_SU' : (0, '10d'), + 'I_CD' : (0, '10d'), + 'I_PD' : (1, '10d'), + 'I_EH' : (1, '10d'), + 'I_E2' : (0, '10d'), + 'I_CK' : (0, '10d'), + 'I_CR' : (0, '10d'), + 'I_PK' : (0, '10d'), + 'I_LF' : (0, '10d'), + 'I_IQ' : (0, '10d'), + 'I_SF' : (0, '10d'), + 'I_PC' : (0, '10d'), + 'I_P2' : (0, '10d'), + 'I_VX' : (0, '10d'), + 'I_DC' : (0, '10d'), + 'I_MD' : (0, '10d'), + 'I_LD' : (0, '10d'), + 'I_DP' : (0, '10d'), + 'I_LT' : (0, '10d'), + 'I_BR' : (0, '10d'), + 'I_PE' : (0, '10d'), + 'I_QC' : (0, '10d'), + 'I_RL' : (0, '10d'), + 'I_KS' : (0, '10d'), + 'I_OQ' : (0, '10d'), + 'I_ME' : (0, '10d'), + 'I_MS' : (0, '10d'), + 'I_ML' : (0, '10d'), + 'I_MC' : (0, '10d'), + 'I_DE' : (0, '10d'), + 'I_ZE' : (0, '10d'), + 'I_SR' : (0, '10d'), + 'I_CW' : (0, '10d'), + 'I_CF' : (0, '10d'), + 'I_EM' : (0, '10d'), + 'I_MF' : (0, '10d'), + 'I_SP' : (0, '10d'), + 'I_SE' : (0, '10d'), + 'I_SB' : (0, '10d'), + 'I_ES' : (0, '10d'), + 'I_GR' : (0, '10d'), + 'I_FD' : (0, '10d'), + 'I_BE' : (0, '10d'), + 'I_MX' : (0, '10d'), + 'I_SC' : (0, '10d'), + 'I_DS' : (0, '10d'), + 'I_NV' : (0, '10d'), + 'I_MT' : (0, '10d'), + 'I_GP' : (0, '10d'), + 'I_PR' : (0, '10d'), + 'I_CO' : (0, '10d'), + 'I_CP' : (0, '10d'), + 'I_BM' : (0, '10d'), + 'I_SH' : (0, '10d'), + 'I_S0' : (0, '10d'), + 'I_S1' : (0, '10d'), + 'I_DT' : (0, '10d'), + 'I_PS' : (0, '10d'), + 'I_IE' : (0, '10d'), + 'I_EI' : (0, '10d'), + 'I_FH' : (0, '10d'), + 'I_EY' : (0, '10d'), + 'I_EF' : (1, '10d'), + 'I_KF' : (1, '10d'), + 'I_VF' : (1, '10d'), + 'I_TE' : (1, '10d'), + 'I_DL' : (1, '10d'), + 'I_TW' : (0, '10d'), + 'I_VT' : (0, '10d'), + 'I_TC' : (0, '10d'), + 'I_EG' : (0, '10d'), + 'I_EX' : (0, '10d'), + 'I_XC' : (0, '10d'), + 'I_EC' : (0, '10d'), + 'I_HF' : (0, '10d'), + 'I_EK' : (0, '10d'), + 'I_EP' : (0, '10d'), + 'I_VI' : (0, '10d'), + 'I_DI' : (0, '10d'), + 'I_FP' : (0, '10d'), + 'I_EL' : (0, '10d'), + 'I_PO' : (0, '10d'), + 'I_RF' : (0, '10d'), + 'I_VC' : (0, '10d'), + 'I_FN' : (0, '10d'), + 'I_WR' : (2, '10d'), + 'I_TI' : (0, '10d'), + } + + def __init__(self, filename, **parameters): + self.filename = filename + self.parameters = self.defaults + for key, value in parameters.items(): + fmt = self.parameters[key][1] + self.parameters.update({key:(value, fmt)}) + + + def _stack(self, *keys, comments=""): + params = [] + for key in keys: + value, fmt = self.parameters[key] + params.append((key, value, fmt)) + line = [' ',] * 49 + labels = [] + for i, (label, value, fmt) in enumerate(params): + labels.append(label) + fmts = ' ' * (10 * i) + '{{:{}}}'.format(fmt) + line_ = fmts.format(value) + for ichar, char in enumerate(line_): + if char != ' ': + line[ichar] = char + + # add labels + labels = list(','.join(labels)) + line += labels + + # Pad with spaces if needed + line += ' ' * max(78 - len(line), 0) + + # Add stars + line[1] = '*' + line += '*' + + # Add comments + line += comments + + # Add CR + line += '\n' + + return ''.join(line) + + + def write(self): + content = "" + content += " ******************************************************************************\n" + content += " * MsSpec DIELECTRIC FUNCTION MODULE *\n" + content += " ******************************************************************************\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * GENERAL PARAMETERS : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * (q,omega,r) : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('Q_MIN', 'Q_MAX', 'N_Q', comments=" in units of k_F") + content += self._stack('E_MIN', 'E_MAX', 'N_E', comments=" in units of E_F") + content += self._stack('R_MIN', 'R_MAX', 'N_R', comments=" in units of 1/k_F") + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Material's properties : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('RS', 'MSOM', 'MAT_TYP', 'EPS_B') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * External fields : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('T', 'E', 'H', 'FLD') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * System's dimension : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('DIM') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Confinement : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('R0', 'L', 'OM0', 'CONFIN') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Multilayer structure : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('DL', 'D1', 'N_DEP', 'N_INV', comments=" --- EPS_1 ---") + content += self._stack('H_TYPE', 'EPS_1', 'EPS_2', comments=" EPS_2") + content += " *-------+---------+---------+---------+---------+----------------------------* --- EPS_1 ---\n" + content += " * Units : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('UNIT', 'UNIK') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Screening : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('SC_TYPE') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Plasma type : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('PL_TYPE', 'ZION', 'ZION2') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Calculation type : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('CAL_TYPE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * DIELECTRIC FUNCTION : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('ESTDY', 'EPS_T', 'D_FUNC', 'I_T') + content += self._stack('NEV_TYPE', 'MEM_TYPE', 'ALPHA', 'BETA') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Analytical plasmon dispersion : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('PL_DISP') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Local-field corrections *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('GSTDY', 'GQ_TYPE', 'IQ_TYPE') + content += self._stack('LANDAU', 'GQO_TYPE', 'G0_TYPE', 'GI_TYPE') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Damping : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('DAMPING', 'LT_TYPE', 'RT_TYPE') + content += self._stack('DR_TYPE', 'DC_TYPE', 'VI_TYPE') + content += self._stack('EE_TYPE', 'EP_TYPE', 'EI_TYPE') + content += self._stack('IP_TYPE', 'PD_TYPE', 'QD_TYPE', 'ZETA') + content += self._stack('D_VALUE_1', 'POWER_1', 'EK') + content += self._stack('D_VALUE_2', 'POWER_2', 'PCT') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Electron-electron interaction : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('INT_POT','S','EPS','DELTA') + content += self._stack('RC','ALF','M','N') + content += self._stack('A1','A2','A3','A4') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Electron-phonon interaction : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('EP_C','DEBYE_T') + content += self._stack('NA','MA','RA') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Electron-impurity interaction : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('NI','EI_C') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += " * Classical fluid parameters : *\n" + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('CF_TYPE','PF_TYPE','SL_TYPE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * STRUCTURE FACTOR : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('SSTDY','SQ_TYPE','SQO_TYPE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * PAIR CORRELATION FUNCTION : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('GR_TYPE','GR0_MODE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * PAIR DISTRIBUTION FUNCTION : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('RH_TYPE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * SPECTRAL FUNCTION : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('SPF_TYPE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * ENERGY CALCULATIONS : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('EC_TYPE','FXC_TYPE','EXC_TYPE') + content += self._stack('EX_TYPE','EK_TYPE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * SPIN POLARIZATION : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('IMODE','XI') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * THERMODYNAMIC PROPERTIES : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('TH_PROP','GP_TYPE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * ELECTRON MEAN FREE PATH : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('EK_INI','EK_FIN') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * CALCULATION OF MOMENTS : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('N_M','M_TYPE') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * INCOMING ION BEAM : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('Z_BEAM', 'EK_BEAM') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * OUTPUT CALCULATIONS/PRINTING : *\n" + content += " *=======+=========+=========+=========+=========+============================*\n" + content += self._stack('I_DF','I_PZ','I_SU','I_CD') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_PD','I_EH','I_E2','I_CK') + content += self._stack('I_CR','I_PK') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_LF','I_IQ','I_SF','I_PC') + content += self._stack('I_P2','I_VX','I_DC','I_MD') + content += self._stack('I_LD','I_DP','I_LT','I_BR') + content += self._stack('I_PE','I_QC','I_RL','I_KS') + content += self._stack('I_OQ','I_ME','I_MS','I_ML') + content += self._stack('I_MC','I_DE','I_ZE','I_SR') + content += self._stack('I_CW','I_CF','I_EM','I_MF') + content += self._stack('I_SP','I_SE','I_SB','I_ES') + content += self._stack('I_GR','I_FD','I_BE','I_MX') + content += self._stack('I_SC','I_DS','I_NV','I_MT') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_GP','I_PR','I_CO','I_CP') + content += self._stack('I_BM','I_SH','I_S0','I_S1') + content += self._stack('I_DT','I_PS','I_IE','I_EI') + content += self._stack('I_FH','I_EY') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_EF','I_KF','I_VF','I_TE') + content += self._stack('I_DL') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_TW','I_VT','I_TC') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_EG','I_EX','I_XC','I_EC') + content += self._stack('I_HF','I_EK','I_EP') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_VI','I_DI') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_FP','I_EL','I_PO','I_RF') + content += self._stack('I_VC') + content += " *-------+---------+---------+---------+---------+----------------------------*\n" + content += self._stack('I_FN','I_WR','I_TI') + content += " *=======+=========+=========+=========+=========+============================*\n" + content += " * INPUT FILES : *\n" + content += " *----------------------------------------------------------------------------*\n" + content += " * NAME UNIT TYPE *\n" + content += " *=======+======================+======+=========+============================*\n" + content += " * epsilon.dat 5 INPUT DATA FILE *\n" + content += " *=======+======================+======+=========+============================*\n" + content += " * OUTPUT FILES : *\n" + content += " *----------------------------------------------------------------------------*\n" + content += " * NAME UNIT TYPE *\n" + content += " *=======+======================+======+=========+============================*\n" + content += " * epsilon.lis 6 CHECK FILE *\n" + content += " *=======+======================+======+=========+============================*\n" + content += " * END OF THE DATA FILE *\n" + content += " *============================================================================*\n" + content += " ******************************************************************************\n" + + abs_path = os.path.abspath(self.filename) + dir_path = os.path.dirname(abs_path) + os.makedirs(dir_path, exist_ok=True) + with open(self.filename, 'w') as fd: + fd.write(content) diff --git a/src/python/msspec_dfm/plotting.py b/src/python/msspec_dfm/plotting.py new file mode 100644 index 0000000..e7972bb --- /dev/null +++ b/src/python/msspec_dfm/plotting.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python +# +# Copyright © 2020-2020 - Rennes Institute of Physics. +# +# This file is part of plotdf. +# +# plotdf 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. + +# plotdf 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 plotdf. If not, see . +# +# Source file : src/old_plotdf.py +# Last modified: Tue, 27 Apr 2021 11:00:13 +0200 +# Committed by : Sylvain Tricot + +import sys + +try: + from matplotlib import pyplot as plt + from mpl_toolkits.mplot3d import Axes3D + from matplotlib import cm + from matplotlib.colorbar import Colorbar +except ImportError: + print('You need matplotlib to run this script!') + exit(-1) + +try: + import numpy as np +except ImportError: + print('You need NumPy to run this script!') + exit(-1) + +try: + import argparse +except ImportError as err: + print('Please, install the package \"{}\" to run that script.'.format(err.name)) + exit(-1) + +try: + import logging +except ImportError as err: + print('Please, install the package \"{}\" to run that script.'.format(err.name)) + exit(-1) + + + + + +# Choose diverging colormap +# (PiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismic) + +# custom cmap +cmap = cm.bwr.from_list("custom_cmap", [ + (0.00, (.6, 0.8, 1.0)), + (0.48, (0.2, 0.2, .8)), + (0.50, (1, 1, 1)), + (0.52, (1., 0., 0.)), + (1.00, (1.0, 0.8, 0)), + ]) + +#cmap = cm.bwr + +def load_data(df='diel_func.dat', pd='plas_disp.dat', eh='elec_hole.dat'): + logging.info('loading data, please wait...') + # load data + logging.debug('loading {:s} file'.format(df)) + data = np.loadtxt(df) + logging.debug('loading {:s} file'.format(pd)) + pd = np.loadtxt(pd) + logging.debug('loading {:s} file'.format(eh)) + eh = np.loadtxt(eh) + + # convert to grid + logging.debug('Creating the grid') + x = np.unique(data[:,0]) + y = np.unique(data[:,1]) + + X, Y = np.meshgrid(x, y) + size = (len(x), len(y)) + ReZ = data[:,2].reshape(size).T + ImZ = data[:,3].reshape(size).T + + logging.debug('loading data done.') + + return X, Y, ReZ, ImZ, pd, eh + +def plot_2d(X, Y, Z, cmap, fig=None, ax=None, vmin=None, vmax=None): + # plotting + if fig is None: + fig = plt.figure() + if ax is None: + ax = fig.add_subplot(111) + + xmin, xmax, ymin, ymax = [np.min(X), np.max(X), np.min(Y), np.max(Y)] + extent = [xmin, xmax, ymin, ymax] + im = ax.imshow(Z, cmap=cmap, aspect='auto', origin='lower', vmin=vmin, vmax=vmax, extent=extent, + interpolation='bilinear') + ax.set_xlim(None, xmax) + ax.set_ylim(None, ymax) + + # colorbar + cb_val = np.linspace(vmin, vmax, 9, endpoint=True) + #cb_lbl = [f"{_:.1f}" for _ in cb_val] + cb_lbl = ["{:.1f}".format(_) for _ in cb_val] + cb_lbl[0] = "$\leq$ {:.1f}".format(cb_val[0]) + cb_lbl[-1] = "$\geq$ {:.1f}".format(cb_val[-1]) + cb = fig.colorbar(im, ax=ax, ticks=cb_val) + cb.ax.set_yticklabels(cb_lbl) + + return fig, ax + + +def plot_contour(X, Y, Z, colors='black', cmap=None, fig=None, ax=None, levels=8, + vmin=None, vmax=None): + # plotting + if fig is None: + fig = plt.figure() + if ax is None: + ax = fig.add_subplot(111) + + xmin, xmax, ymin, ymax = [np.min(X), np.max(X), np.min(Y), np.max(Y)] + extent = [xmin, xmax, ymin, ymax] + cset = ax.contour(X, Y, Z, zdir='z', levels=np.linspace(vmin,vmax,levels), offset=np.min(Z), + colors=colors, cmap=cmap) + ax.clabel(cset, cset.levels, inline=True, fontsize=10) + + ax.set_xlim(None, xmax) + ax.set_ylim(None, ymax) + + return fig, ax + + +# Plot the 3D surface +def plot_3d(X, Y, Z, cmap=None, fig=None, ax=None, vmin=None, vmax=None, strides=64): + # plotting + if fig is None: + fig = plt.figure() + if ax is None: + ax = fig.add_subplot(111, projection='3d') + ax.plot_surface(X, Y, Z, vmin=vmin, vmax=vmax, rstride=strides, cstride=strides, alpha=1., cmap=cmap) + + return fig, ax + + +def plot_pdeh(pd, eh, Ef=1, color='black', fig=None, ax=None): + # plotting + if fig is None: + fig = plt.figure() + if ax is None: + ax = fig.add_subplot(111) + + ax.plot(pd[:,0], pd[:,1], color=color, linestyle="--", label="Plasmon energy") + ax.plot(eh[:,0], eh[:,1]/Ef, color=color, linestyle=":", label=r"e-h pair continuum $\omega_+$") + ax.plot(eh[:,0], np.abs(eh[:,2]/Ef), color=color, linestyle="-.", label=r"e-h pair continuum $\omega_-$") + ax.legend() + + return fig, ax + + +def entitle(fig, ax, img=False): + title = r"$\Im(\epsilon)$" if img else r"$\Re(\epsilon)$" + ax.set_title(title) + ax.set_xlabel(r"$q/k_F$") + ax.set_ylabel(r"$E/E_F$") diff --git a/src/python/msspec_dfm/version.py b/src/python/msspec_dfm/version.py new file mode 100644 index 0000000..b6899cf --- /dev/null +++ b/src/python/msspec_dfm/version.py @@ -0,0 +1,54 @@ +#!/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 . +# +# Source file : src/python/msspec_dfm/version.py +# Last modified: Fri, 25 Feb 2022 17:27:32 +0100 +# Committed by : Sylvain Tricot 1645806435 +0100 + +import os + +from pkg_resources import DistributionNotFound +from pkg_resources import get_distribution +from pkg_resources import parse_version + +# find the version number +# 1- Try to read it from the git info +# 2- If it fails, try to read it from the distribution file +# 3- If it fails, try to read it from the VERSION file + +try: + from setuptools_scm import get_version + v = get_version(root='../../', relative_to=__file__, version_scheme="post-release") + v = parse_version(v) + if v._version.post[-1] == 0: + __version__ = v.base_version + else: + __version__ = v.public +except Exception as err: + try: + __version__ = get_distribution(__name__.strip('.version')).version + except Exception as err: + try: + thisfile_path = os.path.abspath(__file__) + thisfile_dir = os.path.dirname(thisfile_path) + versionfile = os.path.join(thisfile_dir, "../VERSION") + with open(versionfile, "r") as fd: + __version__ = fd.readline() + except Exception as err: + #print("Unable to get the version number!") + __version__ = "0.0.0" diff --git a/src/python/pip.freeze b/src/python/pip.freeze new file mode 100644 index 0000000..e7e4b4a --- /dev/null +++ b/src/python/pip.freeze @@ -0,0 +1,3 @@ +matplotlib +click +click-man diff --git a/src/python/setup.py b/src/python/setup.py new file mode 100644 index 0000000..58d9582 --- /dev/null +++ b/src/python/setup.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# +# 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 . +# +# Source file : src/python/setup.py +# Last modified: Fri, 25 Feb 2022 17:27:32 +0100 +# Committed by : Sylvain Tricot 1645806435 +0100 + +import glob +import sys +from setuptools import setup, find_packages +from msspec_dfm.version import __version__ + +with open('pip.freeze', 'r') as fd: + REQUIREMENTS = fd.read().strip().split('\n') + +if __name__ == "__main__": + setup(name='msspec_dfm', + version=__version__, + include_package_data=True, + packages=find_packages(include='msspec_dfm.*'), + install_requires=REQUIREMENTS, + data_files = [('share/man/man1', glob.glob('man/pages/*.gz'))], + + author='Didier Sébilleau, Aditi Mandhal, Sylvain Tricot', + author_email='sylvain.tricot@univ-rennes1.fr', + maintainer='Sylvain Tricot', + maintainer_email='sylvain.tricot@univ-rennes1.fr', + url='https://git.ipr.univ-rennes1.fr/epsi/MsSpec-DFM', + description='', + long_description="", + #download_url='', + # See https://pypi.python.org/pypi?%3Aaction=list_classifiers + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Environment :: Console', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: GNU General Public License (GPL)', + 'Natural Language :: English', + 'Operating System :: Microsoft :: Windows :: Windows 10', + 'Operating System :: POSIX :: Linux', + 'Operating System :: MacOS :: MacOS X', + 'Programming Language :: Fortran', + 'Programming Language :: Python :: 3 :: Only', + 'Topic :: Scientific/Engineering :: Physics', + ], + keywords='', + license='GPL', + entry_points={'console_scripts': [ + 'eps=msspec_dfm.cli:main',], + }, + )