요즘엔 포트란보다 파이썬(눔피)으로 주로 계산하는데 주목적은 메스메티카로 하면 쉽고 금방 하지만 시간낭비하고 싶을때 많이 쓴다.
파이썬의 장점은 포트란보다 짜기 편하다는데 있지만 막상 나처럼 쪼렙들이 프로그램을 짜면 포트란에 비해 엄청 느리다. 그러니까 파이썬, 포트란 둘다 못하는 사람은 그냥 닥치고 포트란을 배우는게 났다...ㅜㅜ 가 아니라 그래도 조금이라도 공부한 의리가 있으니 나중을 위해 기록...
파이썬에선 베셀함수를 쓰려면 그냥 유니버설 평션인 sph_jn (링크) 을 쓰면 되지만 이걸쓰다보면 어이없는게 함수처럼 쓸수있는것도 아니면서 n 번째 오더까지 함수값과 미분값을 같이 준다. 따라서 쓸데없이 계산시간만 길어지는데 그래서 생각해낸 방법이 f2py 란걸 이용해서 그냥 새로 만들어 쓰는법. f2py 는 포트란 코드를 파이썬 모듈처럼 쓸수 있게 해주는 것이다. (링크) 나도 아직 제대로 쓸줄은 모르는데 심심할때마다 공부중... 아무튼 어찌어찌 성공해서 프로그램을 돌려보니 시간 차이가 많이 난다.
f2py 를 쓰기 위해선 당연히 잘 돌아가는 포트란 코드가 필요하다. 그리고 명령어 몇번 치면 된다. f2py는 우분투에선 그냥 시냅틱 패키지 관리자에서 받을수 있다. 아래는 그냥 내가 쓰고있는 스페리컬 베셀 포트란 코드. 나도 어찌어찌 받은건데 이런거 막 올려도 되는지 잘 모르겠다. (안되면 자삭) sbess.f90 이 들어있는 폴더로 이동한 뒤 터미널에서 아래 첫번쨰 명령어를 실행하면 sbess.pyf 가 생성되고 두번째 명령어를 실행시키면 sbess.so 가 생성된다. 그러면 위 프로그램처럼 그냥 import 로 불러 올수 있다.
sbess.f90
파이썬의 장점은 포트란보다 짜기 편하다는데 있지만 막상 나처럼 쪼렙들이 프로그램을 짜면 포트란에 비해 엄청 느리다. 그러니까 파이썬, 포트란 둘다 못하는 사람은 그냥 닥치고 포트란을 배우는게 났다...ㅜㅜ 가 아니라 그래도 조금이라도 공부한 의리가 있으니 나중을 위해 기록...
파이썬에선 베셀함수를 쓰려면 그냥 유니버설 평션인 sph_jn (링크) 을 쓰면 되지만 이걸쓰다보면 어이없는게 함수처럼 쓸수있는것도 아니면서 n 번째 오더까지 함수값과 미분값을 같이 준다. 따라서 쓸데없이 계산시간만 길어지는데 그래서 생각해낸 방법이 f2py 란걸 이용해서 그냥 새로 만들어 쓰는법. f2py 는 포트란 코드를 파이썬 모듈처럼 쓸수 있게 해주는 것이다. (링크) 나도 아직 제대로 쓸줄은 모르는데 심심할때마다 공부중... 아무튼 어찌어찌 성공해서 프로그램을 돌려보니 시간 차이가 많이 난다.
f2py 를 쓰기 위해선 당연히 잘 돌아가는 포트란 코드가 필요하다. 그리고 명령어 몇번 치면 된다. f2py는 우분투에선 그냥 시냅틱 패키지 관리자에서 받을수 있다. 아래는 그냥 내가 쓰고있는 스페리컬 베셀 포트란 코드. 나도 어찌어찌 받은건데 이런거 막 올려도 되는지 잘 모르겠다. (안되면 자삭) sbess.f90 이 들어있는 폴더로 이동한 뒤 터미널에서 아래 첫번쨰 명령어를 실행하면 sbess.pyf 가 생성되고 두번째 명령어를 실행시키면 sbess.so 가 생성된다. 그러면 위 프로그램처럼 그냥 import 로 불러 올수 있다.
! f2py -m SBESS -h SBESS.pyf SBESS.f90
! f2py -c SBESS.pyf SBESS.f
sbess.f90
|
댓글
댓글 쓰기