Rays 정보 확인하기

ASAP에서 Ray를 생성시키면 Ray와 관련된 모든 정보들이 계산되는데 우리는 그 계산 결과를 하나하나 확인할 수 있다. 아래의 프로그램을 실행시켜 보자.

SYSTEM NEW
RESET

UNITS  MM
WAVELENGTH  632.8  NM
EMITTING  RECTANGLE  Z  0  1  1  10

GET
&REG  WAVELEN
RETURN  

우선 632.8nm의 파장을 가지는 Rays를 10개 만들었다. 그리고, GET 명령어와  &REG 명령어를 사용해서 원하는 결과를 확인하였다. GET 명령어는 ASAP이 만들어낸 Rays들의 내부적인 데이터들을 불러내는 것이고, &REG 명령어는 불러낸 데이터들 중에서 원하는 값을 표시해 주는 것이 다. &REG WAVELWN은 Wavelength of ray/beam의 결과를 확인할 수 있는 명령어다. GET 명령어 만 사용하면 평균값을 표시해 주고, GET 3 처럼 숫자와 함께 사용하면 3번재 Ray에 대한 값만을 표시해 준다.

— SYSTEM NEW
— RESET
— UNITS MM
— WAVELENGTH 632.8 NM
— EMITTING RECTANGLE Z 0 1 1 10
Total flux in rays created by this emitter is   1.000000

— GET
— &REG
WAVELEN WAVELEN=632.799987792969
— RETURN

Help를 통해 GET 명령어로 확인할 수 있는 내용들에 대해서 알아보자.

GET (ASAP Command)
Retrieves ray data and copies it into variables.Syntax
GET [ k [ k’ ] ]

Option Description
k k’ number of a given ray or range of rays


Remarks
 1. Get the current data for all rays, ray k, or rays k to k’ and place it into the input registers. This data can then be used in any future commands and can even be modified if the PUT command is used.
2. If more than one ray is selected, then registers contain flux-weighted averages (except total flux).
3. The register assignments are as follows:

Register Literal Ray/Beam Data
A0,B0,C0 X,Y,Z_DIR_B Absolute X,Y,Z direction cosines of base ray
Ai,Bi,Ci X,Y,Z_DIR_i Relative direction vector of ith parabasal ray
D0 OPL Optical path length from start of base ray
E1,E2,E3 X,Y,Z_EPOL Components of unit polarization vector
F0 FLUX Total flux in ray/beam
G0 DIVERG Average divergence angle of beam
H0 HEIGHT Average height of beam centered on base ray
Ii PREV_O_i ith previous split object for ray/beam
J0 SOURCE Source number from which ray/beam originated
K0 CURR_OBJ Current object at which ray/beam is located
L0 HITS Total number of surfaces ray has hit (intersected)
M0 MEDIUM Medium that ray/beam is in
N0 SPLITS Number of times ray/beam has been split
N1 LEVELS Number of times ray/beam has been scattered
P0 POLAR_0 Relative modulus of fundamental beam mode
P1,P2 POLAR_1,2 Relative moduli of polarization components
Q0 NUM_RAYS Total number of ray/beams
Q1 NSOURCES Total number of original sources
R0 PARENT Number of ray from which this ray was split (parent)
S0 SHAPE Beam shape number (see SHAPES command)
S1 FACTOR Beam shape factor or number of higher modes
T0 PHASE_0 Relative phase angles of fundamental beam mode
T1,T2 PHASE_1,2 Relative phase angles of polarization components
U0,V0 U,VPARAMB Parametric coordinates of base ray position
W0 WAVELEN Wavelength of ray/beam
Wi WAVLNS_i Wavelength for ith source
X0,Y0,Z0 X,Y,Z_POS_B Global X,Y,Z coordinates of base ray
Xi,Yi,Zi X,Y,Z_POS_i Relative coordinates of ith parabasal ray

GET 명령어의 Help를 보면 얼마나 많은 데이터들을 ASAP이 계산하고 있는지 알 수 있다. 좀 더 많은 정보를 한 눈에 보기위해 $SCR 명령어를 사용해보자.

SYSTEM NEW
RESET

UNITS
  MM
WAVELENGTH  632.8  NM
EMITTING  RECTANGLE  Z  0  1  1  10                

GET
$SCR  1X0.4 ₩ ₩Y0.4 ₩ ₩Z0.4 ₩ ₩FLUX.4 ₩ ₩WAVELEN
RETURN

$SCR 명령어는 Rays와 관련된 수많은 데이터들 중에서 보고싶은 결과를 선택적으로 표시해 준다. GET 명령어로 Rays의 데이터들을 읽어오고, $SCR 명령어와 Register 들의 조합으로 원하는 결과를 표시해 주면된다.  위 프로그램은 X0, Y0, Z0의 좌표값과 Flux, Wavelength들을 차례대로 표시해 준다. 여기서 사용되는 변수명으로는 Register도 가능하고 Literal도 가능하다.

프로그램을 실행한 후 Command Output Window의 결과를 확인해 보면 다음과 같은을 얻을 수 있다.


— GET
— $SCR 1

-0.0272 -0.0036  0.0000    1.0000        633
— RETURN

GET 명령어에 k 옵션(number of a given ray)을 사용하지 않았기 때문에 10개 Rays에 대한 평균값을 표시해 주는데, $DO 명령어와 GET ? 를 통해 10개 Ray 각각에 대한 결과도 확인할 수 있다.

SYSTEM NEW
RESET
UNITS
  MM
WAVELENGTH  632.8  NM
EMITTING  RECTANGLE  Z  0  1  1  10                

$DO 1 10
{
  GET  ?
  $SCR  1  X0.4 ₩ ₩Y0.4 ₩ ₩Z0.4 ₩ ₩FLUX.4 ₩ ₩WAVELEN
}
RETURN

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: