CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Centripetal forces on particles in incompressible fluid (

sam1984_b December 13, 2012 11:15

Centripetal forces on particles in incompressible fluid
Hi all,

I am trying to simulate very small oil droplets in water, in a rotating reference frame. I would like to use icoUncoupledKinematicParcelFoam, as the problem is an incompressible one and I would like to uncouple the particles from the flow. However, I am struggling to implement the centripetal/Coriolis forces on the particle.

As far as I can see, my options for particle forces include NonInertialFrame and SRF, neither of which seem to work.

When I put in a NonInertialFrame in the kinematicCloudProperties, as

{ nonInertialFrame
{omega (0 0 180);
centreOfRotation (0 0 0);

It compiles and runs but the particles stay perfectly still! It's always worrying when I can replace that code with nonInertialFrame {blah blah;} and get the same result.

When I try and use SRF I get the error message:
request for SRFModel SRFProperties from objectRegistry region0 failed
available objects of type SRFModel are 0 ( )

So I guess the solver doesn't know to supply the SRF data. Please could someone advise, I would be happy fixing either of the above, or putting in a custom code to define the particle forces.

Thanks in advance,


vikramaditya91 July 29, 2016 03:43

I have the same problem as above

I have 2 questions about the post above:

1) I am stuck in the exact same problem of not being able to provide an SRF force. I get this error when I try to do some Lagrangian particle tracking using the icoUncoupledKineticParcelFoam on a case which has flow field results from an SRFPimpleFoam solver.
From what I understand in the error, it seems that objectRegistry does not have the SRFProperties file loaded in it. I tried to go to the place where it actually loads the file and I came across this particular piece of code located in $FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/ParticleForces/SRF in OpenFOAM3.0.1


template<class CloudType>
void Foam::SRFForce<CloudType>::cacheFields(const bool store)
    if (store)
        const typename SRF::SRFModel& model = this->mesh().template
        srfPtr_ = &model;
        srfPtr_ = NULL;

Do you have any suggestions on how I can let the SRFForce file know that I already have a SRFProperties file in the constant/ directory.

I have attached a modified tutorial case (2DRotor), on which you can recreate the problem by first running "SRFPimpleFoam" which will output results of velocity and pressure flow fields. Then run "icoUncoupledKineticParcelFoam" which gives the error that

request for SRFModel SRFProperties from objectRegistry region0 failed
available objects of type SRFModel are 0 ( )

2) My second question is about what Sam posted above. He said he wanted to use the NonIntertialFrame forces as well. I do not get the reasoning behind using the NonInterialFram forces because the SRFForce makes a correction of exactly that, while also taking densities of the particle and fluid also into account with this line of code:

    // Coriolis and centrifugal acceleration terms
    value.Su() =
        mass*(1.0 - p.rhoc()/p.rho())
      *(2.0*(p.U() ^ omega) + (omega ^ (r ^ omega)));


vikramaditya91 July 29, 2016 05:15

Quick Update
This error doesnt seem to appear now after I made these changes. It seems that the SRFProperties file wasnt even read earlier. Adding these lines to the createFields.H seems to make the error go away. I have not tested this just yet, will edit this post soon


Info<< "Reading field Urel\n" << endl;
volVectorField Urel

Info<< "Creating SRF model\n" << endl;
autoPtr<SRF::SRFModel> SRF(SRF::SRFModel::New(Urel));

vikramaditya91 October 26, 2016 05:16

icoUncoupledKineticParcelFoam is not for rotating frames of reference
Hey, it is me again.

I posted a bug on the OpenFOAM Foundation's bug tracking facility. The issue is listed here .
The site manager Henry Weller, said that the icoUncoupledKineticParcelFoam is not really meant for single rotating frames of reference, so it was never meant to work with the SRFPimpleFoam fluid velocity. However, the new and edited (fully uncoupled) Lagrangian particle tracker is listed in
in case you are interested.

The only major change I made was to read Urel instead of U for particle tracking. Please let me know if there are still bugs or if it can be improved further.

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