BARAM의 계산결과 후처리를 위해 ParaView를 사용할 때 참고할 만한 팁을 소개합니다.
경계면(boundary) 그리기
ParaView에서 Baram의 결과를 읽으면 Mesh Regions에 경계면들과 internalMesh가 나타나는데 디폴트로 internalMesh가 선택되어 있습니다.(아래 그림의 위쪽) 이런 상태에서는 경계면들을 원하는 대로 그릴 수가 없습니다. internalMesh를 선택하지 않고 경계면들만 선택하면 원하는 경계면들을 그릴 수 있지만 internalMesh가 없으면 slice, cut, streamline 등을 제대로 그릴 수 없습니다.(아래 그림의 가운데)
internalMesh와 경계면들을 모두 선택한 다음 ‘Extract Block‘ 필터를 이용하면 경계면들을 따로 추출해서 원하는 경계면들만 그릴 수 있습니다. 아래 그림은 Extract Block 필터와 slice 필터를 함께 나타낸 예입니다.
Colormap Legend에 최소/최대값 표시
Paraview에서 스칼라 값의 분포를 그렸을 때 colormap legend의 최소/최대값이 이상하게 표현되는 경우가 있음을 자주 느낄 것입니다. 아래 그림을 보면 최소인 0.7과 최대인 1.8이 그 사이의 값과는 다르게 표현되었음을 알 수 있습니다.
이것은 최소/최대값은 ‘Range Label‘이라는 것으로 다른 것들과 따로 관리되는 항목이기 때문입니다.
‘Edit Colormap‘ – ‘Edit Color Lengend Properties‘ 창의 ‘Labels’ 라는 부분에서 설정됩니다. 아래 그림의 위쪽 legend는 ‘Add Range Labels‘ 옵션이 꺼져 있는 경우이고, 아래쪽 legend는 켜져 있는 경우입니다.
위 그림의 ‘Add Range Labels’ 아래의 ‘Range Label Format‘을 ‘%-#6.3f’로 바꾸어 주면 아래 그림과 같이 최대/최소의 값을 정확히 표현할 수 있습니다.
Backface styling
경계면이나 paraview에서 만든 각종 필터들을 디스플레이 할 때 바깥쪽 면에 가려진 안쪽 부분을 볼 수 없는 경우가 많이 있습니다. 바깥쪽 면의 투명도(Opacity)를 조절하는 방법이 있지만 번거롭기도 하고 기능의 제한이 있어 만족스럽지 못한 경우가 많이 있습니다. 이런 경우 Backface styling 기능을 사용할 수 있습니다. ‘Backface Representation‘ 설정 옵션 중 ‘Cull Frontface‘ 옵션을 사용하면 내부의 형상이나 스칼라 분포를 확인할 수 있습니다.
아래 그림의 왼쪽은 시로코팬의 내부 형상을 투명도를 조절하여 나타낸 것이고 가운데는 투명도와 함께 ‘Cull Frontface’ 옵션을 사용한 것입니다. 오른쪽은 slice 필터를 함께 나타낸 것입니다.
Vortex Cores
와류를 streamline으로 그리고 싶을 때 ‘Vortex Cores‘ 필터를 사용하면 효과적으로 표현할 수 있습니다.
아래 그림은 얇은 육면체 구조물이 유동과 45 각도를 이루고 있는 경우의 Vortex core를 나타낸 것입니다.
‘Vortex Cores’ 필터를 실행하면 굉장히 많은 시간이 소모되는 문제가 있어 ‘Faster Approximation’ 옵션을 켜주는 것이 좋습니다.(paraview 5.10에서부터 이 옵션이 있습니다.)
‘Stream Tracer With Custom Source‘ 필터에서 source를 vortex core로 주면 아래 그림과 같은 결과를 얻을 수 있습니다.
Parallel processing
Setting 창의 ‘Multicore Support’ 활성화를 통해 데스크탑 컴퓨터에서 병렬 연산 기능을 사용할 수 있습니다.
메뉴에서 Edit – Settings를 선택하고 Multicore Support의 Enable Auto MPI를 활성화 하고 사용할 최대 core 개수를 입력하면 됩니다.
Particle Tracer
비정상상태 문제에서 유체의 흐름을 입자를 이용해서 표현할 때 ‘Particle Trancer‘ 필터를 사용합니다.
입자의 소스가 필요한데 여러가지 방법이 있지만 Sources – Plane 을 사용하면 평면에 입자를 분포시키기가 용이합니다. Plane에서는 Origin, Point1, Point2의 좌표를 주고 x와, y의 resolution을 입력하면 원하는 만큼의 입자를 분포시킬 수 있습니다. 아래의 그림에서 붉은색으로 표시된 것이 plane을 생성하고 Representation을 Point로 표시한 것입니다.
‘Particle Trancer‘ 필터를 생성하고 Source를 plane으로 설정합니다.
Particle Tracer의 Properties에서 ‘Force Reinjection Every NSteps‘를 1로 설정합니다. 매 시간 간격마다 입자를 생성하겠다는 설정입니다. 최종 pipeline은 아래 오른쪽 그림과 같이 됩니다.
Play 하면 시간에 따른 입자의 운동을 확인할 수 있습니다. 아래의 그림은 Slice의 Contour와 Particle Tracer를 같이 그린 동영상입니다.
Surface Oil Flow
면에서 스칼라 분포를 그릴 때 Representation을 ‘Surface LIC‘로 선택하면 면에서 유선을 확인할 수 있습니다.
공간상의 Slice나 symmetry 면 등에서는 속도 벡터를 이용해 유선을 그려주는데, no-slip wall에서는 속도 벡터가 없기 때문에 ‘SurfaceLIC:Integrator‘를 wallShearStress로 설정해 주어야 합니다.
원하는 그림의 품질을 얻기 위해서는 ‘SurfaceLIC: Rendering‘ 설정 조절이 필요합니다.
wallShearStress 필드는 OpenFOAM의 postProcess 기능을 이용해서 얻을 수 있는데, 다음과 같은 명령을 통해 생성합니다.
$ postProcess -func wallShearStress <options>
Representation에 Surface LIC가 없을 때는 Tools 메뉴의 ‘**Manage Plugins..*‘를 실행하면 나타나는 창에서 Surface LIC를 선택하고 ‘Load Selected‘ 버튼을 누르면 됩니다. ‘Auto Load**’를 선택하면 paraview가 실행될 때 항상 자동으로 load 됩니다.
Schlieren Image
유동 가시화 실험에 많이 사용되는 Schlieren 사진처럼 계산 결과를 후처리하는 방법은 밀도의 구배(gradient)를 그리면 됩니다.
필터에서 ‘Gradient of Unstructured DataSet‘을 선택합니다. ‘Scalar Array‘는 rho를, ‘Coloring‘은 Gradients를 선택합니다. 흑백을 그리고 싶다면 Color Map을 ‘X Ray’를 선택하면 됩니다.
Light
빛의 종류, 방향, 강도 등을 조절할 수 있습니다. ‘View‘ 메뉴의 ‘Light Inspector‘를 활성화 하면 아래 그림과 같은 창이 나타납니다.
‘Add Light‘ 버튼을 누르면 광원이 추가됩니다. Intensity, Type, Position 등을 조절하여 다양한 그림을 그릴 수 있습니다.
no-Slip Wall 디스플레이 오류
OpenFOAM에서 벽면의 속도 경계조건으로 noSlip을 사용했을 때 ParaView에서 벽면에 속도가 있는 것처럼 나타나는 문제가 있습니다.
OpenFOAM에서 noSlip 조건을 사용하면 결과에 속도 값을 0으로 쓰는 것이 아니라 noSlip이라고 쓰는데 ParaView가 이것을 인식하지 못해서 내부의 속도값을 디스플레이하기 때문입니다.
현재로서는 해결 방법은 없습니다. noSlip wall에서 속도를 그릴 일은 거의 없을 것이고, 계산이 잘못된 것은 아니니 큰 문제는 아닌 것 같습니다.
Contour with Line
위 그림과 같이 평면에서 스칼라 분포를 그릴 때 색상의 단계를 구분하는 선을 같이 그리는 것이 결과를 이해하는데 도움이 되는 경우가 있습니다.
ParaView에서 면을 선택하고 Coloring을 스칼라로 선택하면 위의 왼쪽 그림과 같이 표현됩니다.
‘Edit Colormap’ 을 열어보면 제일 아래쪽에 ‘Number of Table Values’의 디폴트 값이 256으로 되어있습니다. 이 값을 20으로 바꾸어 주면 아래 그림과 같이 됩니다. 색상의 수가 줄어드니 값의 변화를 조금 더 쉽게 알 수 있습니다.
색상 사이에 선을 표현하기 위해서는 Contour 필터 를 만들어 줍니다. 아래 그림과 같이 ‘Contour By’에 원하는 스칼라를 선택하고 ‘Isosurfaces’에서 ‘Add a range of values’를 선택하고 ‘Number of Samples’에 Colormap Editor에서 설정한 값에 1을 더한 값을 입력합니다.
그려진 Contour의 Coloring을 Solid로 바꾸고 색을 검은색으로 선택하면 아래와 같은 그림을 얻을 수 있습니다.
축대칭 데이터를 3차원으로 표현
Rotational Extrusion 필터를 사용하면 평면의 데이터를 3차원으로 표현할 수 있습니다. 축대칭(axi-symmetry) 계산 결과를 후처리할 때 유용한 기능입니다.
Rotational Extrusion 필터에서 Resolution, Angle, Rotation Axis를 입력하면 축을 기준으로 회전된 3차원 형상이 만들어집니다.