Main › Forums › Free Board › 3D 구형의 Drag Force 계산
This topic contains 2 replies, has 2 voices, and was last updated by Dongjin 3 years ago.
-
AuthorPosts
-
January 22, 2016 at 5:52 am #1198
잘 지내시나요?
최근 구형과 같은 물체 혹은 불규칙한 형상을 가진 물체의 drag coefficient, 즉 항력의 계수를 CFD 방법을 이용해 얻어내고자 합니다. 하지만 구형에서 시도 하는 와중 문제가 하나 생겼습니다.
물체에 작용하는 유체의 힘을 어떻게 계산해야 하는 지 잘 몰라서요..
pimpleFoam을 사용하여 유체 안의 구형에 관해 속도장이나 압력장에 관해서는 구할 수 있었습니다.
다음의 사진이 압력장을 나타냅니다.
물체에 걸리는 힘에 관한 공식은 이렇게 나타낼 수 있지 않을까 합니다. [구는 N개의 sub-surfaces]
F_fluild = Sum(Pk * Ak* <strong>n</strong>), k = 1, 2, .... N
물론 Pk, Ak 는 각각 k면에서의 압력과 면적을 의미하며 n은 각 면의 법선벡터를 의미합니다.여기서 부력을 제한다면 Drag Force를 얻을 수 있을거라 생각했습니다.
Fd(Drag) = F_fluid - Fb(buoyancy)
어떻게 하면 지정한 Boundary 정보와 그것의 속도 혹은 압력장을 이용하여 루프를 구성해 힘을 구할 수 있을까요? 팁 좀 주시면 감사하겠습니다!January 22, 2016 at 5:56 am #1199반갑습니다.
허나 구지 프로그래밍 코드를 이용하여 계산식을 짤 필요 없이 OpenFOAM에서 제공하는 forces, forceCoeffs 를 이용하는 것이 좋을 듯합니다. OKUC 혹은 Google에서도 정보를 찾아볼 수 있을 듯 하니 한번 검색해서 자세히 알아보시는 것도 좋을 듯 합니다.
참고하시라고 forces, forceCoeffs의 실례를 위해 airfoil force 계산에 관한 controlDict를 아래에 첨부하였습니다. 이는 system/controlDict의 functions에서 수정하여 실행하실 수 있습니다. 주석을 통해 각각이 무슨 기능인지 직접 학습하시기 바라며 이를 이용하면 쉽게 해결하실 수 있을거라 생각합니다.FoamFile { version 2.0; format ascii; class dictionary; object controlDict; } application icoFoam; startFrom startTime; startTime 0.0; stopAt endTime; endTime 30; deltaT 0.0025; writeControl timeStep; writeInterval 20; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression uncompressed; timeFormat general; timePrecision 6; runTimeModifiable yes; functions ( forces { type forces; // use the forces class functionObjectLibs ("libforces.so"); // "plugin" library to load patches (naca0012); // Name of patches to integrate forces outputControl outputTime; // When to write the output rhoName rhoInf; // Name of the reference density rhoInf 1.0; // Reference density for fluid CofR (0.33333 0 0); // Origin for moment calculations } forceCoeffs { type forceCoeffs; // compute force-coefficients functionObjectLibs ("libforces.so"); patches (naca0012); outputControl outputTime; rhoName rhoInf; rhoInf 1.0; CofR (0.33333 0 0); liftDir (0 1 0); // lift direction (parallel to U_inf) dragDir (1 0 0); // drag direction (normal to U_inf) pitchAxis (0 0 1); // rotational moment axis magUInf 1; // magnitude of U_inf (for normalization) lRef 1.0; // reference length Aref 1.0; // reference area } );
좋은 결과 있길 바라겠습니다.
January 22, 2016 at 5:58 am #1200감사해요 GameBegins님!
말씀하신 라이브러리 함수를 한번 시도해보도록 하겠습니다.
수고하세요~ -
AuthorPosts
You must be logged in to reply to this topic.