CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   one-way coupled particle tracking (https://www.cfd-online.com/Forums/openfoam-solving/255252-one-way-coupled-particle-tracking.html)

Raduviant March 28, 2024 07:08

one-way coupled particle tracking
 
1 Attachment(s)
Hi!

I am trying to do a particle tracking using one-way coupling. Searching the forum, I found this thread discussing the same thing: https://www.cfd-online.com/Forums/op...-tracking.html

In the thread, icoUncoupledKinematicParcelFoam is suggested as an appropriate solver. I tried to use the same method and obtained this result:

Attachment 99142

The figure shows the velocity magnitude of both the particle and 2-D flow. I applied a glyph filter over the particle track and made the radius scale with the velocity.

There are two problems:
1. I cannot specify the 3-dimensional initial position of the particle. I did specify 3 dimensions in constant -> kinematicCloudPositions, but only the x-value seems to have any effect.
2. The straight particle track suggests fully passive transport, because I varied the density and hoped to see vertical motion. (I tried running with rho0 values matching both g/cm3 and kg/m3, but it made no difference for vertical transport).

Since the particle is slowly accelerating in a somewhat uniform flow, I don't think it is a passive particle simulation as the description of the solver describes: https://www.openfoam.com/documentati...8C_source.html

So my current conclusion is that the particle is somehow modelled in 1 dimension only. I don't understand why this is the case.

I will include my kinematicCloudProperties file below, but I am not sure the error is in there. If anyone has a suggestion as to why my simulation behaves like this, or can direct me to other input files I should check, I will be very thankful :).

Code:

FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    //location    "constant";
    object      kinematicCloudProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solution
{
    active          true;
    coupled        false;
    transient      yes;
    cellValueSourceCorrection off;
    maxCo          0.3;

    interpolationSchemes
    {
        rho            cell;
        U              cellPoint;
        mu              cell;
    }

    integrationSchemes
    {
        U              Euler;
    }
}

constantProperties
{
    rho0            1500;
    youngsModulus  6e8;
    poissonsRatio  0.35;
}

subModels
{
    particleForces
    {
        sphereDrag;
        gravity;
    }

    injectionModels
    {
        model1
        {
            type            manualInjection;
            massTotal      0;
            parcelBasisType fixed;
            nParticle      1;
            SOI            0;
            positionsFile  "kinematicCloudPositions";
            U0              (0 0 0);
            sizeDistribution
            {
                type        fixedValue;
                fixedValueDistribution
                {
                    value  0.003;
                }
            }
        }
    }

    dispersionModel none;

    patchInteractionModel none;

    surfaceFilmModel none;

    stochasticCollisionModel none;

    collisionModel none;

    pairCollisionCoeffs
    {
        // Maximum possible particle diameter expected at any time
        maxInteractionDistance  0.0001;

        writeReferredParticleCloud no;

        pairModel pairSpringSliderDashpot;

        pairSpringSliderDashpotCoeffs
        {
            useEquivalentSize  no;
            alpha              0.12;
            b                  1.5;
            mu                  0.52;
            cohesionEnergyDensity 0;
            collisionResolutionSteps 12;
        };

        wallModel    wallLocalSpringSliderDashpot;

        wallLocalSpringSliderDashpotCoeffs
        {
            useEquivalentSize no;
            collisionResolutionSteps 12;
            upperWall
            {
                youngsModulus  1e10;
                poissonsRatio  0.23;
                alpha          0.12;
                b              1.5;
                mu              0.43;
                cohesionEnergyDensity 0;
            }
            lowerWall
            {
                youngsModulus  1e10;
                poissonsRatio  0.23;
                alpha          0.12;
                b              1.5;
                mu              0.43;
                cohesionEnergyDensity 0;
            }
            frontAndBack
            {
                youngsModulus  1e10;
                poissonsRatio  0.23;
                alpha          0.12;
                b              1.5;
                mu              0.1;
                cohesionEnergyDensity 0;
            }
        };
    }
}


cloudFunctions
{}


Raduviant April 22, 2024 08:20

Just in case anyone finds this and has the same problem, I found the problem:

I had three 'empty' boundaries, two of which were in the y-dimension to simulate 2D flow, and the final one in the z-dimension at the 'top' boundary to avoid using a 'wall' boundary and creating (unwanted) pipe-like flow. For each dimension in which at least one boundary was 'empty', the particle tracker fixed the particle in that dimension. So, the solution is having functional boundaries (non-empty) in each dimension you wish to track particle movement.

I have since switched to simulating multiphase flow to more accurately represent my system, which also solves the top boundary problem.


All times are GMT -4. The time now is 11:44.