고급 원유 처리를 이제 막 개방해서(뉴비), 샌박으로 중유 경유를 어떻게 관리할지 설계해보고 있었다.


출력부에서 펌프를 통해 중유를 탱크로 보내고, 탱크에 중유가 충분히 차면 펌프 효율이 낮아짐을 이용한 설계

회로 없이 하겠다고 고민을 많이 했는데, 찾아보니까 갤에도 있더라


근데 하다보니까 좀 신기한게 있음.





처음에는 펌프 하나로는 유체가 새길래 두개 세개 쓰다가, 나중에 보니까 하나로도 될 때가 있더라고?


위에 짤에서는 펌프 하나로도 유체 통제가 잘 되는 모습이지만, 어떨 때는 펌프 몇개를 달아도 유체가 새...




그래서 이 부분만 따로 가져와서 재연해봄.

지금 보면 똑같은 배치에서도 다른 결과가 나옴을 확인할 수 있다.(당연히 무한파이프 세팅은 같음)


조금 만지다 보니, 원인은 파이프의 건설 순서에 있음을 확인할 수 있었는데, '아래 파이프를 먼저' 건설한 구조가 가장 안정적이였음


위 짤을 기준으로



파이프가 이렇게 있으면


3

2

1


순서로 건설했을때, 좌측처럼 펌프가 안정적으로 유체를 가져오고 있음.



건설순서가 어떻게 영향을 미치는지는 몰라도, 펌프 직전의 3개 파이프와 펌프의 건설순서를 계속 바꿔가며 실험한 결과,

파이프를 아래에서부터 건설하는 것이 가장 중요해 보였.. 으나


귀찮아서 사진을 안찍어서 그렇지, 몇가지 예외도 존재했다.



/////////////  대표적인 예외  /////////////



2

1

3  순서는 문제가 없었다. (심지어 각 파이프의 유량이나 펌프의 속도도 3 2 1 과 다른점이 없었다)


근데,


3

2

1 순서로 지은다음, 1번째로 지은걸 부수고 다시 지은


3

2

4 는 문제가 있었다. ( 2 1 3과 다를게 없어 보이는데, 결과는 다름 )


이유는 모름.


////////////////////////////////////////////



그러다가 문득, 건설순서가 파이프 계산에 영향을 미친다면, 시스템의 유속에도 건설순서가 중요하지 않을까? 하는 생각이 들었다.



결론부터 말하자면, 아니다.



일단 가장 단순하게, 아래에서 위로, 위에서 아래로 지은 두 시스템을 비교해서 실험함.

(앞으로는 아래에서부터 지은걸 '앙', 위에서부터 지은걸 '윙' 으로 표기하겠음)



좌측은 앙, 우측은 윙이다.

(이 사진은 좌측 위 무한 파이프가 먼저 지어져서 약간 오차가 있다 / 무한파이프도 건설순서에 동일한 영향을 받는걸로 보임)


일단 유속비교 없이 유량만 보자면, 좌측의 유체 시스템에 유체가 더 많이 들어있었다 (좌 904, 우 638, 거의 1.5배 차이)


이번에는 유속을 비교해보자.



펌프로 유속을 확인했는데,(귀찮아서 찍지는 않음) 양쪽 다 동일한 값이 나왔다 (여기서는 1227)

펌프 직전 파이프의 유량은 양쪽다 20.5로 같았는데, 최종 유속이 같은 이유일 것이다. ( 20.5 * 6 0 = 1230 )


재밌는 점은, 우측의 시스템(윙)이 우리 상식과 다른 부분을 보인다는 것


(덧붙이자면 펌프 자체는 건설순서를 뒤바꿔도 시스템에 아무런 영향을 미치지 못했다)


최종 유속은 같은데... 유량은 다 다르다... 이거까지는 그렇다 치는데,


20.5 이전에 5.7이라는 유량은 어떻게 가능한걸까?

유속이나 유압에 대한 기존의 인식으로는 이해하기 어려워 보인다.




개인적으로는, 먼저 설치된 파이프를 하나의 틱에서 먼저 계산하다 보니 생기는 문제라고 추측한다.

다른 게임이나 입자단위의 시뮬레이션 프로그램에서도 자주 볼 수 있는 현상인데, 어디까지나 추측이긴 함.


이게 뭔말이냐면, 위 사진같은 경우는 (앙 기준) 아래에 있는 파이프에 대한 유체 계산을 먼저 하고, 그 다음 위로 차근차근 계산한다는 소리.

이렇게되면 유체가 공급되고있는 위쪽의 유체 계산순서가 뒤에 있게 되는데, 결론적으로 하나의 틱 내에서 유체는 하나의 파이프만 이동하게됨.


솔직히 개발자로 일해본건 아니라 자세한 원리가 맞을지도 모르고, 아예 틀렸을 수는 있다.


글이 좀 길어져서 마무리를 해야할 거 같은데, 틱에대한 계산 순서 얘기를 꺼낸만큼 틱에 대한 실험을해봤다.

사진은 몇장 안찍었는데, UPS를 1.5까지 내려서 틱당 계산을 관찰했다. (실험 다 끝나고 안건데, 에디터 쓰면 한틱씩 넘기기 되더라. 혼자 개지랄함...)


.


예상한대로 1틱당 1파이프를 이동하는 것으로 보였다. (UPS가 1.5라서, 2초에 3개를 이동했다)

여기까지는 크게 의미가 없다. 당연히 대조군을 가져와야한다.


윙.


예상에 적중했다. 1틱만에 가장 아래 파이프까지 유체가 도달한 모습.

하나의 틱 내에서 위쪽의 유체를 먼저 계산하고, 바로 아래 유체를 연이어 계산하기 때문에 가능한 일이다.

(Alt 모드라 헷갈린거 아니냐고 생각할 수 있는데, 잘못찍었을 뿐이지 혼자서 여러 상황들을 수차례 실험한 거라 ㄱㅊ)

 

물론 계산순서 면에서 유리하더라도, 유압의 문제는 똑같기 때문에 아래쪽 파이프의 유량 자체는 매우 적다.


이 계산순서는 청사진이나 복붙에서는 적용되지 않았지만(드론이 건설한 순서를 따름), 재접시에는 동일했다.


/////////////////////////////////////////////////////////////////////////////////////////



사실 호기심에 이런저런 실험을 하게됐는데, 여전히 중유를 끌어당기는 펌프는 이해가 완벽하지 않고,

유체에 있어서 '계산순서'는 무엇인가? 하는 의문, 유량 값의 역행, 결과적으로 같아지는 유속에 대해서는 전혀 모르겠다.


추측에 추측을 더해보자면 파이프는 한번의 계산에서 '주변과의 1회 상호작용'을 하는 것으로 보이고(출/입을 모두 하는지는 모름. 하나만 할 수도 있음),

유량 값의 역행은 뒤바뀐 계산순서에서의 안정상태로 보인다(일종의 계산상 정체가 발생한다고 볼 수 있는데, 잘은 모르겠다).


최종 유속이 앙이랑 윙이 같은건 아예 모르겠는데, 아마 최적화 과정에서 표기값과 실 계산이 다르게 이루어질 수도 있을 거 같다(이것도 실험을 통해 부분적으로 확인 가능할 것으로 보임).





생략한 부분들도 많고, 논리적으로 안맞는 부분도 많을 수 있다.

학생인지라 시간이 없어서 생각이 여기까지 못미친게 조금 아쉽다.


혹시 이 부분에 대해 아는 내용이 있다거나, 내가 한 말 중에 문제되는게 있으면 지적해줬으면 좋겠다.


피곤할때 써서 그런가 글이 엉망진창인데 이해좀 해주셈