Skip to content

Lagrangian modelling updates/new features

Andrew Heather requested to merge feature-lagrangian-additions into develop

Multiple enhancements:

  • PatchInjectionModel: updated to include additional velocity specification options
  • ConeNozzleInjection: updated to enable dynamic position and direction vectors
  • FaceInteraction: new cloudFunctionObject

PatchInjectionModel

The parcel initial velocity can now be set using the new velocityType entry, taking one of the following options:

  • fixedValue : (default) same as earlier versions, requires U0
  • patchValue : velocity set to seed patch face value
  • zeroGradient : velocity set to seed patch face adjacent cell value

Example usage:

model1
{
    type            patchInjection;
    massTotal       1;
    SOI             0;
    parcelBasisType mass;
    patch           cylinder;
    duration        10;
    parcelsPerSecond 100;
    velocityType    patchValue;
    //velocityType    zeroGradient;
    //U0              (-10 0 0);
    flowRateProfile constant 1;
    sizeDistribution
    {
        type        normal;
        normalDistribution
        {
            expectation 1e-3;
            variance 1e-4;
            minValue 1e-5;
            maxValue 2e-3;
        }
    }
}

See the new $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/spinningDisk tutorial

ConeNozzleInjection

  • Now only has the options point and disk (deprecated movingPoint)

    • moving state is based on the type of Function1
  • The position and direction entries are Function1-types, e.g. for the table type the entries could be:

position        table
(
    (  0 (0.1 0.5 0.5))
    (0.2 (0.5 0.9 0.5))
    (0.4 (0.9 0.5 0.5))
    (0.6 (0.5 0.1 0.5))

    (0.8 (0.5 0.5 0.9))
    (1.0 (0.5 0.9 0.5))
    (1.2 (0.5 0.5 0.1))
    (1.4 (0.5 0.1 0.5))
);

direction       table
(
    (  0 ( 1  0  0))
    (0.2 ( 0 -1  0))
    (0.4 (-1  0  0))
    (0.6 ( 0  1  0))

    (0.8 ( 0  0 -1))
    (1.0 ( 0 -1  0))
    (1.2 ( 0  0  1))
    (1.4 ( 0  1  0))
);

FaceInteraction

Enables particles to interact with mesh faces (described using faceZones).

faceInteraction1
{
    type            faceInteraction;
    faceZones
    (
        (blockageFaces    stick)
//            (blockageFaces    escape)
//            (blockageFaces    rebound) // not applicable for this test case (!)
    );

    dMin            0;
    dMax            1;
}
    
The `faceZones` entry is a list of (`faceZoneName` `interactionType`), where interaction type is either `stick`, `escape` or `rebound`.

No tutorial added yet; for testing: reactingParcelFoam case: [filter.tgz](/uploads/e0034538f6c9bb85c0cfa3e1068a6ba2/filter.tgz)
Edited by Kutalmış Berçin

Merge request reports