[Fortran] Diffusion

FORTRAN 은 컴퓨터 언어이다. 2016년 근래에는 가르쳐 주는 곳이 없을 정도로 사람들이 사용하지 않는다. 그러나, 가르쳐 주지 않아도 배워야 할 만큼 중요한 언어이다.

왜냐하면 이 언어는 가장 빠른 계산을 할 수 있는 언어이기 때문이다.

그런데 요즘 컴퓨터는 워낙 빨라서 계산은 다 빠르다. 게다가 알파고도 나왔으니.. 그렇다면 왜 배워야 하는 거지?

행렬의 처리가 쉽기 때문에?

Diffusion 과 같이 해석을 해야 하는 경우, 행렬 계산을 해야 하는데, 그런 경우에 행렬 계산을 직관적으로 할 수 있다. 그래서 이 부분을 공부해야 한다.

그래서 google 에서 FORTRAN diffusion 단어로 검색을 해 보았다.

그 중에서 "computation modeling of multicomponent diffusion ..." 문서를 읽고 있다. 영어 읽기가 귀찮다. 영어를 못해서 그런 것인지? 아니면 수학을 못해서 그런 것 인지 그것도 아니면 fortran 을 못해서 그런 것인지, 맹공부하자.

Diffusion Equation for Predicting Concentration Profiles

부분을 읽어보니, 좋은 내용이 적혀 있다. 1) Fick's raw 이런 말도 있고, 2) thin film 에 대해서 concentraion 이런 용어도 나온다. 대학교 다닐때 전부 유도했던 거 같은데, 유도 하려면 밤을 새워야 겠지. 이젠 수학 공식들도 기억이 나지 않고, .. 3) trigonometric solution 이란 단어도 나온다. 여기에서는 relaxation time 이란 단어도 나온다.

diffusion coefficient 는 일반적으로 constant 로 두고 계산하는데, 심지어 function of concentration 이라는 단어도 나온다.

이 때부터 수치해석적으로 계산 하는 것이 나온다.

그리고 multicomponent 에 대한 계산을 위해서 flux 라는 것을 설명하기 시작한다. flux 는 multi가 되어야 필요한 모양이군.

이 이후에 각 component 에 대한 diffusivity 를 계산하기 어려우니 effective diffusivity 를 도입하고, 이 diffusivity 를 간단화 하기 위해서 local equilibrium 과 long-range diffusion 이 없다고 가정하여 effective diffsuvity 를 간략화 한다.

그리고 나서 수치해석이 다시 나온다. finite-difference methods.

즉 계산하려고 하는 영역을 바둑판, mesh 로 쪼개고, 계산해야 하는 미분 방정식을 수치해석 할 수 있도록 근사식으로 수정한다.

그리고 이것을 수치해석을 계산한다.

Explicit forward-difference method(Euler Method)
Crank-nicolson method - 이게 자주 사용되는 안정화된 방법이다. -> 그럼 자세히 공부해야 겠네.

Comments

Popular posts from this blog

Q > 4M 변경과 ECR 의 차이는?

[Ontology] Protege 의 설치

[리튬 배터리] 공정에 대해서