Jongsu Liam Kim | Blog

Environment Modules 사용하기

오랫동안 연구실에서 서버관리를 담당해왔다. 처음에는 단순 서버 on/off 정도만 하는 일이었는데, 별것도 아닌걸로 업체 통하면 시간도 오래걸리고 설명하기도 복잡하다보니 내가 처리하게 되었다. 그러다보니 점점 일이 늘어나서 서버 구축포함 대부분의 이슈를 내 선에서 해결하고자 노력하고 있다.

그런데 처음에는 다들 Fortran만 써서 상관없었지만 연구주제가 다양해지면서 다양한 환경을 구축할 필요가 생겼다. 다른 컴파일러, 다른 언어, 다른 서버 등등. 당연히 환경변수를 건드려야할 일이 많았다. 하지만, 유저들 대부분 환경변수가 뭔지도 모르는 사람들이다. 그래서 그동안 사용한 방법은 curl을 통해 미리 작성된 .bashrc를 받게 하는 것이었다. 디폴트 bashrc를 변경할 수도 있었겠지만, 상황에 따라 각자의 bashrc를 업데이트해야하는 경우도 생겨서 좀 더 안전하게 가려고 했다. 이 방법은 유연하게 대처하기...

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

생각외로 많은 이공계 학생들이 프로그래밍을 못한다. 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)

Introduction

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)

Introduction

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.

Pros:

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

Cons:

  • 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...