All Projects → flame-code → FLAME

flame-code / FLAME

Licence: other
FLAME: a library for atomistic modeling environments

Programming Languages

fortran
972 projects
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
Makefile
30231 projects
M4
1887 projects
OpenEdge ABL
179 projects

Projects that are alternatives of or similar to FLAME

nequip
NequIP is a code for building E(3)-equivariant interatomic potentials
Stars: ✭ 312 (+1633.33%)
Mutual labels:  atomistic-simulations, interatomic-potentials
CalibrationWizard
[ICCV'19] Calibration Wizard: A Guidance System for Camera Calibration Based on Modelling Geometric and Corner Uncertainty
Stars: ✭ 80 (+344.44%)
Mutual labels:  global-optimization
Hyperopt.jl
Hyperparameter optimization in Julia.
Stars: ✭ 144 (+700%)
Mutual labels:  global-optimization
opfunu
A collection of Benchmark functions for numerical optimization problems (https://opfunu.readthedocs.io)
Stars: ✭ 31 (+72.22%)
Mutual labels:  global-optimization
PyDE
Differential evolution global optimization in Python.
Stars: ✭ 28 (+55.56%)
Mutual labels:  global-optimization
uf3
UF3: a python library for generating ultra-fast interatomic potentials
Stars: ✭ 19 (+5.56%)
Mutual labels:  interatomic-potentials
axxb calibration
A Comprehensive AX = XB Calibration Solvers in Matlab
Stars: ✭ 19 (+5.56%)
Mutual labels:  global-optimization
EAGO.jl
A development environment for robust and global optimization
Stars: ✭ 106 (+488.89%)
Mutual labels:  global-optimization
OptimisationAlgorithms
Searching global optima with firefly algorithm and solving traveling salesmen problem with genetic algorithm
Stars: ✭ 20 (+11.11%)
Mutual labels:  global-optimization
polyply 1.0
Generate input parameters and coordinates for atomistic and coarse-grained simulations of polymers, ssDNA, and carbohydrates
Stars: ✭ 59 (+227.78%)
Mutual labels:  atomistic-simulations
Cassandra
Cassandra is a Monte Carlo package to conduct atomistic simulations.
Stars: ✭ 26 (+44.44%)
Mutual labels:  atomistic-simulations
calphy
A Python library and command line interface for automated free energy calculations
Stars: ✭ 28 (+55.56%)
Mutual labels:  interatomic-potentials
MINLPLib.jl
A JuMP-based library of Non-Linear and Mixed-Integer Non-Linear Programs
Stars: ✭ 30 (+66.67%)
Mutual labels:  global-optimization

FLAME: a library for atomistic modeling environments

FLAME is a highly modular open source software package to perform atomistic simulations using a variety of techniques.

Prerequisites

FLAME requires autoconf and automake. IMPORTANT NOTE:currently only automake up to version 1.15.1 is supported due to changes introduced in later versions that break the Makefile structure.

Any Fortran and C compiler should in principle work for compiling FLAME. However, we recommend using the Intel Fortran and C compiler.

FLAME has to be linked to Blas, LaPack, and FFT libraries.
They can be obtained as part of the Intel Math Kernel Library (MKL), which is the recommended route. In principle, other implementations of the libraries should also work.

Linking to Atsushi Togo's SPGLIB is recommended. The currently supported and well-tested version is 1.6.x and can be found here:

https://sourceforge.net/projects/spglib/files/spglib/

Linking to LAMMPS requires the installation of LAMMPS with the desired potentials. The best upported and well tested version is r12824:

http://lammps.sandia.gov

Futile is required, a library of tools developed as part of the BigDFT project.

http://bigdft.org/

Installation of python is required. Currently, only python 2.7 is supported. Future releases of FLAME will support python 3

Installing FLAME on Linux

  • It is recommended to install FLAME in a different directory than the source code.

Here are steps:

  1. First, install futile which is a set of utilities from the BigDFT project. Preferably, use the version provided with FLAME to avoid conflicts. Untar the included futile-suite.tar.gz (tar -zxvf futile-suite.tar.gz), then create a new build directory (e.g., mkdir futile-build ; cd futile-build), and from there run

    • for GNU compilers:

      path_to_futile_source/Installer.py build futile -c CC=gcc CXX=g++ FC=gfortran F77=gfortran \ --with-ext-linalg="-llapack -lblas"

    • for Intel compilers:

      path_to_futile_source/Installer.py build futile -c FCFLAGS=-O2 \ --with-ext-linalg="-L$MKLROOT/lib/intel64 \ -lmkl_rt -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -liomp5 -lm" \ CC=icc CXX=icpc FC=ifort F77=ifort

    • for parallel compilation use the corresponding MPI wrappers:

      path_to_futile_source/Installer.py build futile -c FCFLAGS=-O2 \ --with-ext-linalg="-L$MKLROOT/lib/intel64 \ -lmkl_rt -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -liomp5 -lm" \ CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90

    follwed by make build if necessary. Make sure to adapt the library locations and the linking flags appropriately. After the installation of futile, we need to link it with FLAME. To display details on the general linking procedure, run:

    path_to_futile_source/Installer.py link futile

  2. To compile FLAME, change into the main FLAME directory and run:

    • autoreconf -fi
  3. Create a build directory for FLAME (e.g., mkdir build-FLAME ; cd build-FLAME). Explicitly replace $FUTILE with the full path of the futile build-directory during configure, or define it as an environmental variable:

    • export FUTILE=path_to_futile_build

    Note that providing the FUTILE variable is required to successfully compile FLAME, and is not optional. Then, run configure.

    • For Intel compilers and MPI parallelization:

      path_to_flame_source/configure FC=mpif90 F77=mpif90 CXX=mpicc CC=mpicc \ FCFLAGS="-I$FUTILE/install/include -shared-intel -mcmodel=large -mkl=sequential" \ CFLAGS=-mcmodel=large "LIBS=-L$FUTILE/install/lib \ -L/$MKLROOT/lib/intel64 -lfutile-1 -lmkl_rt \ -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -liomp5 -lm -lyaml -ldl -lrt -cxxlib"

    • For GNU compilers without MKL:

      path_to_flame_source/configure FC=mpif90 F77=mpif90 CXX=mpicc CC=mpicc \ FCFLAGS="-I$FUTILE/install/include -mcmodel=large" \ CFLAGS=-mcmodel=large "LIBS=-L$FUTILE/install/lib \ -lfutile-1 -lm -lyaml -llapack -lfftw3 -ldl -cxxlib"

    • To link with SPGLIB, append --with-spglib SPGLIB_ROOT=path_to_spglib

    • To link with the BigDFT PSolver, append --with-bps BDIR=path_to_bigdft_root

    • To link with LAMMPS, append --with-lammps LAMMPS_ROOT=path_to_lammps_root

  4. Run make to compile the code. Upon successful compilation, the executable can be found in src/flame.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].