An open API service indexing awesome lists of open source software.

https://github.com/mdavezac/libxc

libxc mirror
https://github.com/mdavezac/libxc

Last synced: about 1 month ago
JSON representation

libxc mirror

Awesome Lists containing this project

README

        

This library implements many of the standard xc functionals in the
market. For more information, please check the manual at

http://www.tddft.org/programs/Libxc

INSTALLATION
============

To install the library, just use the standard procedure:

./configure --prefix=PATH/TO/LIBXC
make
make check
make install

INFORMATION FOR DEVELOPERS
==========================

The distribution is organized in the following way:

./
./build Fedora spec files
./m4 m4 scripts used by configure.ac,
and libxc.m4 use by other projects linking libxc.
./src source files
./testsuite regression tests

Furthermore, the most important contents of the src directory are:

xc.h - main header file with all external definitions
util.h - header file with internal definitions
*f90 *.F90 xc_f.c - Fortran 90 interface
string_f.h
xc_funcs.h - automatically generated file with the list of functionals
funcs_*.c - automatically generated files with the functional definitions
functionals.c - generic interface to simplify access to the different families
lda.c gga.c mgga.c - interface to the different families of functionals
special_functions.c - implementation of a series of special functions
lda_*.c - definition of the different LDA functionals
work_lda.c - code that simplifies the implementation of LDAs
gga_*.c - definition of the different GGA functionals
work_gga_x.c - code that simplifies the implementation of exchange GGAs
work_gga_c.c - code that simplifies the implementation of some
correlation GGAs
work_gga_becke.c - code that simplifies the implementation of some
correlation GGAs
mgga_*.c - definition of the different meta-GGA functionals
work_mgga_x.c - code that simplifies the implementation of exchange meta-GGAs
work_mgga_c.c - code that simplifies the implementation of some correlation
meta-GGAs
hyb_gga_*.c - definition of the different hybrid-GGA functionals

-------------------------------------------------------------------------------
Notes:

*) Most functionals use the framework contained in a work_*.c file. This
simplifies tremendously the implementation of the different functionals.
The work_*.c is included in the gga_*.c through a preprocessor directive

*) Some files contain more than one functional, as similar functionals
are usually grouped together. Therefore, the best way to find where a
functional is implemented is by looking at its keyword in xc_funcs.h and
using grep to find the correct file.

*) The files where the functionals are defined are named as
family_type_name.c, where:
family - functional family (lda, gga, hyb_gga, or mgga)
type - type of functional (x, c, xc, or k)
name - name of the functional or class of functionals