Skip to content

Instantly share code, notes, and snippets.

View kumpeishiraishi's full-sized avatar

Kumpei Shiraishi kumpeishiraishi

View GitHub Profile
@kumpeishiraishi
kumpeishiraishi / 20170530_sph_harm.py
Last active May 30, 2017 14:22
Draw spherical harmonics with your preferred quantum numbers
import numpy as np
from scipy.special import sph_harm
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Designate quantum numbers here!
m = 1
l = 3
point_size = 100

やりたいこと

Eigenでdouble型の行列の固有値を計算し、結果を倍精度で標準出力する。

まずはPythonで正解を計算する

import numpy as np
A = np.array([[4,1],[2,-1]])
print(np.linalg.eig(A)[0][0])
print(np.linalg.eig(A)[0][1])
@kumpeishiraishi
kumpeishiraishi / chrono.cpp
Created April 10, 2018 08:43
chrono basic usage
# include <iostream>
# include <chrono>
int main() {
auto start = std::chrono::system_clock::now(); // use auto to skip typing std::chrono::system_clock::time_point
/* do something */
auto end = std::chrono::system_clock::now();
auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(end-start).count();
/*
Trasnlate time unit to nanoseconds.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@kumpeishiraishi
kumpeishiraishi / set_width.cpp
Created May 9, 2018 06:02
set width and set fill
#include <iostream>
#include <iomanip>
#include <sstream>
int main() {
int t = 58;
std::ostringstream ss;
ss << std::setw(5) << std::setfill('0') << t;
std::cout << ss.str() << std::endl; // -> '00058'
}
@kumpeishiraishi
kumpeishiraishi / zerofill.cpp
Last active May 18, 2018 02:33
Another way to set width
#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
int main() {
std::stringstream ss;
for (int i=0; i<15; i++) {
ss << std::setw(2) << std::setfill('0') << i;
std::cout << ss.str() << std::endl;
# Your .skk-record location
filename = '~/.skk-record'
import os
import datetime as dt
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
filename = os.path.expanduser(filename)
f = open(filename)

研究室の計算機でMPI並列するには

研究室の計算機クラスタでは、1つのノード内で24コア程度のCPUが使える。 単一ノード内の並列計算ならば、Open MPを使って比較的簡単にコード開発・実行が出来るが、並列数に制限がある。 これを越える並列数で計算するため、MPIの使い方のメモを残しておく。 MPI的に正しい書き方・術語である自信はないので、鵜呑みにせず各自で勉強してほしい。

プログラムを書く

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@kumpeishiraishi
kumpeishiraishi / CMakeLists.txt
Created December 9, 2022 08:23
My minimum cmake file with cnpy and AVX intrinsics
cmake_minimum_required(VERSION 3.13)
project(test_cmake CXX)
add_executable(a.out main.cpp)
target_include_directories(a.out PRIVATE /home/shiraishi/.local/include)
target_link_directories(a.out PRIVATE /home/shiraishi/.local/lib)
target_compile_options(a.out PRIVATE -O3 -xCORE_AVX512)