Jongsu Liam Kim | Blog

비개발자들에게도 권하는 개발자 도구들

생각외로 많은 이공계 학생들이 프로그래밍을 못한다. CS가 아니면 대부분.. 특히 시뮬레이션 위주의 과학계산 연구를 하는 사람들도 알고리즘 자체는 복잡하지만 코드 아키텍처는 간단한 프로그래밍을 주로 한다. OOP니 FP니 없어도 Init - Read - Compute - Write 구조의 코드로 수십년동안 시뮬레이션 하는 경우도 있다. 오랫동안 대학원 생활을 하면서 이런 비 CS출신 이공계학생들을 보니 다음과 같은 특징이 있다는 걸 알게 되었다.

  • 그 전에는 코딩경험이 전무하거나, C/Fortran, 혹은 Matlab 문법 정도만을 안다.
  • 리눅스는 물론이고 CLI환경에 대해 익숙하지 않다.
  • 대부분 개발자 툴에 대해 모르거나 필요성을 느끼지 못한다.
  • 그렇다고 새로운 툴을 적극적으로 배우려고 하지 않는데, 그 이유는 지금쓰고 있는 정도로도 결과가 잘 나오기 때문이다. 즉,...

External Forcing of Homogeneous Isotropic Turbulence

(This content is originally written by ‪Kyongmin Yeo’s manual)


The small scale statistics of turbulence are important research topic.

Small-scale behavior in turbulent flows tends to be characterized by statistical homoegenity, isotropy, and universality. Because of this universality we can hope to
understand small-scale behavior by studying the simplest turbulent flows, i.e. homoegeneous, isotropic turbulence.

(Eswaran and Pope 1988)

To maintain statistically stationary turbulence, adding force to low wavenumber (large scale) velocity components artificially. Therfore, external force term is added to Navier-Stokes equation

\[\dfrac{d \hat{u}_i}{dt} = - i \kappa_{i} \hat{P} + \hat{H}_i - \nu \kappa^2 \hat{u}_i +...

(Note) Tox workflow

What do I need to install

  • tox : virtualenv for testing
  • tox-pyenv : pyenv plugin for tox
  • pytest : testing framework
  • pipreqs : generates requirements.txt

What do I need to do

  1. Checkout cookiecutter

  2. create virtualenv using pyenv

$ pyenv install "some versions" $ pip install tox tox-pyenv $ pyenv local "my_env" "some versions" 
  1. create src...

Navier Stokes Equation Solver for Homogeneous Isotropic Turbulence

(This content is originally written by ‪Kyongmin Yeo’s manual)


The spectral method is solving certain differential equation by some “basis function”, typically sinusoids with Fourier method. With the Navier-Stokes equation, it can remove presssure term in N-S equation and solve viscous term analytically.


  • Removing pressure term is huge performance advantage
  • Accurate result because differential operator doesn’t depends on grid size


  • Only can be applied to periodic domain

Governing Equation

Original Navier-Stokes equation in convection form is

\[\begin{align} \dfrac{\partial u_i}{\partial t} &= -\dfrac{\nabla p}{\rho} - (u...