3D 구형의 Drag Force 계산

Main Forums Free Board 3D 구형의 Drag Force 계산

This topic contains 2 replies, has 2 voices, and was last updated by Dongjin Dongjin 1 year, 10 months ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #1198
    Dongjin
    Dongjin
    Participant

    잘 지내시나요?
    최근 구형과 같은 물체 혹은 불규칙한 형상을 가진 물체의 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 정보와 그것의 속도 혹은 압력장을 이용하여 루프를 구성해 힘을 구할 수 있을까요? 팁 좀 주시면 감사하겠습니다!

    #1199
    GameBegins
    GameBegins
    Participant

    반갑습니다.
    허나 구지 프로그래밍 코드를 이용하여 계산식을 짤 필요 없이 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
        }
    );

    좋은 결과 있길 바라겠습니다.

    #1200
    Dongjin
    Dongjin
    Participant

    감사해요 GameBegins님!
    말씀하신 라이브러리 함수를 한번 시도해보도록 하겠습니다.
    수고하세요~

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.