ParaView Tips

BARAM의 계산 결과 후처리를 위해 ParaView를 사용할 때 참고할 만한 팁을 소개합니다.

Drawing a boundary

Display min/max values ​​in Colormap Legend

Backface Styling

Vortex Cores

Parallel Processing

Particle Tracer

Surface Oil Flow

Schlieren Image

Light

No-Slip Wall display error

Contour with Line

Representing axi-symmetric data in three dimensions


경계면(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‘이라는 것으로 다른 것들과 따로 관리되는 항목이기 때문입니다.

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 SupportEnable 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 display error

OpenFOAM에서 벽면의 속도 경계 조건으로 noSlip을 사용할 경우, 벽면에 속도가 존재하는 것처럼 보이는 문제가 ParaView에서 발생합니다.

OpenFOAM에서 noSlip 조건을 사용할 때, 결과에 속도 값을 0으로 기록하는 대신 noSlip으로 기록하지만, ParaView는 이를 인식하지 못하고 내부 속도 값을 표시합니다.

현재 해결 방법이 없습니다. noSlip wall에 속도를 표시해야 할 일은 거의 없을 것이며, 계산 자체가 잘못된 것은 아니므로 큰 문제로 보이지는 않습니다.


Contour with Line

평면에 스칼라 분포를 그릴 때, 위 그림과 같이 결과 이해를 위해 색상 단계 사이를 구분하는 선을 그리는 것이 도움이 될 수 있습니다.

ParaView에서 표면을 선택하고 ‘색상 지정’에 ‘스칼라’를 선택하면, 위 왼쪽 그림과 같이 표현됩니다.

‘Edit Colormap’을 열면 맨 아래에 있는 ‘테이블 값 수’의 기본값이 256임을 확인할 수 있습니다. 이 값을 20으로 변경하면 아래 이미지와 같은 모양이 됩니다. 색상 수가 줄어들었기 때문에 값의 변화를 조금 더 쉽게 확인할 수 있습니다.

색상 사이의 경계를 포현하려면, ‘Contour’, 필터를 사용합니다. 아래 그림과 같이 ‘Contour By’에서 원하는 스칼라를 선택하고, ‘Isosurfaces’에서 ‘Add a range of values’를 선택한 후, ‘Number of Samples’에 컬러맵 편집기에서 설정한 값에 1을 더한 값을 입력하세요.

그려진 윤곽선의 채우기 색상을 ‘Solid’로 변경하고 색상을 검정색으로 선택하면 아래 그림과 같은 결과를 얻을 수 있습니다.


Representing axi-symmetric data in three dimensions

The Rotational Extrusion 필터를 사용하면 평면 데이터를 3차원으로 표현할 수 있습니다. 이는 축대칭 계산 결과를 후처리할 때 유용한 기능입니다.

Rotational Extrusion 필터에 Resolution, Angle, Rotation Axis를 입력하면 해당 축을 중심으로 회전된 3차원 형상이 생성됩니다.