AiiDA v2.0 migration

eval "$(_VERDI_COMPLETE=zsh_source verdi)"
export AIIDA_WARN_v3=1
% conda update pip

In aiida-core

% find . -name "*.pyc" -delete
% rm -r ./*.egg-info
% git checkout develop
% git pull
% git checkout v2.0.1
% pip install -e ."[atomic_tools,docs,tests,rest]"
% verdi storage migrate
% verdi storage maintain --full

Migration log and old data

migration-repository-missing-subfolder-qxze5vt4.json
.aiida/repository/demo/repository

cmake memory check

Making CMake work for you

if (USE_SANITIZER STREQUAL "Address")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
elseif (USE_SANITIZER STREQUAL "Thread")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
elseif (USE_SANITIZER STREQUAL "Undefined")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
elseif (USE_SANITIZER STREQUAL "Leak")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=leak")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=leak")
elseif (USE_SANITIZER STREQUAL "Memory")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=memory")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=memory")
endif()

Using finufft from python and conda-forge environment

GitHub - flatironinstitute/finufft: Non-uniform fast Fourier transform library of types 1,2,3 in dimensions 1,2,3

  1. git clone https://github.com/flatironinstitute/finufft.git
  2. Modify make.inc.
  3. make lib
  4. export LD_LIBRARY_PATH=finufft_dir/lib
  5. cd python
  6. python setup.py build && pip install -e .
  7. python test/run_accuracy_tests.py

make.inc for macOS and conda-forge environment:

CFLAGS = -O3
CONDA_PREFIX = /Users/accountname/.miniforge/envs/dev
CXX=$(CONDA_PREFIX)/bin/clang++
CC=$(CONDA_PREFIX)/bin/clang
CFLAGS   += -I./include -I$(CONDA_PREFIX)/include
FFLAGS   = $(CFLAGS)
CXXFLAGS = $(CFLAGS)
LIBS += -L$(CONDA_PREFIX)/lib
OMPFLAGS = -fopenmp
OMPLIBS = -L$(CONDA_PREFIX)/lib -lomp

(recovery) np.fft.ifft and finufft.nufft1d2

x = 2 * np.pi * np.arange(100) / 100
c = np.exp(1j * x)
f = np.fft.fftshift(np.fft.ifft(c))
c_r = finufft.nufft1d2(x, f)

import matplotlib.pyplot as plt
plt.plot(x, c_r.real)
plt.plot(x, c.real, '.')
plt.show()

Note fftshift but not ifftshift for the case that the number of original uniform data is odd. This shift is necessary to make data compatible between np.fft and finufft. See

(interpolation) np.fft.ifft and finufft.nufft1d2

x = 2 * np.pi * np.arange(100) / 100
c = np.exp(1j * x)
f = np.fft.fftshift(np.fft.ifft(c))
y = 2 * np.pi * np.arange(200) / 200
c_i = finufft.nufft1d2(y, f)

import matplotlib.pyplot as plt
plt.plot(y, c_i.real)
plt.plot(x, c.real, '.')
plt.show()

Note fftshift but not ifftshift for the case that the number of original uniform data is odd. This shift is necessary to make data compatible between np.fft and finufft. See

hiki (on my private server with no security consideration at my own risk)

On Ubuntu 20.04

sudo apt install apache2 ruby ruby-hikidoc docdiff ruby-nokogiri
ln -s ../mods-available/cgi.load
ln -s ../mods-available/cgid.load
ln -s ../mods-available/cgid.conf
        <Directory /var/www/html>
                Options ExecCGI FollowSymLinks
                AddHandler cgi-script .cgi
                DirectoryIndex hiki.cgi
                <Files "hikiconf.rb">
                        deny from all
                </Files>
        </Directory>