CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Pre-Processing

kinematicCloudProperties details

Register Blogs Community New Posts Updated Threads Search

Like Tree53Likes
  • 5 Post By cfdopenfoam
  • 7 Post By vonboett
  • 12 Post By decah
  • 25 Post By amod_kumar
  • 3 Post By Zhang PJ
  • 1 Post By stamufa

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 14, 2016, 05:33
Default kinematicCloudProperties details
  #1
Member
 
Karelke Yu
Join Date: Dec 2014
Posts: 96
Rep Power: 11
cfdopenfoam is on a distinguished road
dear, all.

I am happy if u r interested in this question. i started with a very simple solver, icoUncoupledKinematicParcelFoam in OF-2.3.0, and i also coupled it with the pimpleFoam. so i get a euler-lagrangian solver. but i do not think i have a very deep understanding of the lagrangian solution control. i searched a lot in this forum but found little about the kinematicCloudProperties dictionary. so this thread is started to dig into it, and i hope this can be done with you OF experts and can finnally help more people struggling on it.

I would like to invite you who are seeing this thread to post your questions/knowledge about every sub-dictionary/keyword in the kinematicCloudProperties dictionary, just do as this thread.

it looks like

Code:
solution
{
    active          true;
    coupled         false;
    transient       yes;
    cellValueSourceCorrection off;

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

    integrationSchemes
    {
        U               Euler;
    }
}

constantProperties
{
    rho0            1.2;           // Air + particel load ?
    youngsModulus   6e8;   // not sure about
    poissonsRatio   0.35;    // not sure about
}

subModels
{
    particleForces
    {
        sphereDrag;
        gravity;
    }

    injectionModels
    {
        model1
        {
            type            patchFlowRateInjection;
        patchName        inlet;
        duration        2;
        concentration   0.6;              // parcel concentration in my fluid?      
            parcelsPerSecond 500;
        meanParticleDiameter 0.003;  // for what?
 
        nParticle        1000;            // max particle in domain ?

            massTotal       0.5;           // max mass in the domain ?

            parcelBasisType fixed;    // dont know
            SOI             0;                     // ?
            sizeDistribution
            {
                type        fixedValue;          // particle have fixed sizes
                 fixedValueDistribution        // the sizes the particels can have ? 
                {
                    value   0.006;             
            value   0.01;
                    value   0.001;
                    value   0.015;
            value   0.004;
            value   0.009;
                }
            }
        }
    }

    dispersionModel none;

    patchInteractionModel none;

    surfaceFilmModel none;

    collisionModel pairCollision;

    pairCollisionCoeffs
    {
        maxInteractionDistance  0.006;

        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;
            ".*Wall"
            {
                youngsModulus   1e10;
                poissonsRatio   0.23;
                alpha           0.12;
                b               1.5;
                mu              0.43;
                cohesionEnergyDensity 0;
            }
        };
    }
}
theoretical (mathematic/physical) background and solution control implementation at the programming level are welcome. the more details or reference, the better.

hope more people interested in the OF's lagrangian world could contribute this thread and make it clear. i will also keep this post updated if i make a progress.

best,
/karekle
missios, slr, sourav90 and 2 others like this.
cfdopenfoam is offline   Reply With Quote

Old   April 4, 2017, 09:06
Default
  #2
Senior Member
 
Albrecht vBoetticher
Join Date: Aug 2010
Location: Zürich, Swizerland
Posts: 240
Rep Power: 17
vonboett is on a distinguished road
Hi, I am not so familiar with this injection model, but SOI is the time where your particles will be injected into the simulation. IcoUncoupledKinematicParcel does not couple the CFD with the particles, the particles are yust passive tracers that take over the velocity field. However, one can use it to get an initial settled particle bed when using particleForces {gravity;}. Good coupling is implemented in DPMFOAM or pimpleLPTbubbleFoam. Good validation is in Franziska Greifzu, Christoph Kratzsch, Thomas Forgber, Friederike Lindner &
Rüdiger Schwarze (2016) Assessment of particle-tracking models for dispersed particle-laden flows
implemented in OpenFOAM and ANSYS FLUENT, Engineering Applications of Computational Fluid
Mechanics, 10:1, 30-43, DOI: 10.1080/19942060.2015.1104266
vonboett is offline   Reply With Quote

Old   April 7, 2017, 14:04
Default
  #3
Member
 
Declan
Join Date: Oct 2016
Location: Ireland
Posts: 40
Rep Power: 10
decah is on a distinguished road
Hi karelke

Here are some of the answers to your questions in red text.

Quote:
Originally Posted by cfdopenfoam View Post

Code:
solution
{
    active          true;
    coupled         false;
    transient       yes;
    cellValueSourceCorrection off;

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

    integrationSchemes
    {
        U               Euler;
    }
}

constantProperties
{
    rho0            1.2;           // particle density (kg/m3)
    youngsModulus   6e8;   // constant of proportionality relating the deformation to the applied stress for your particles (N/m2)
    poissonsRatio   0.35;    // ratio of traverse to axial strain for your particles (dimensionless)
}

subModels
{
    particleForces
    {
        sphereDrag;
        gravity;
    }

    injectionModels
    {
        model1
        {
            type            patchFlowRateInjection;
        patchName        inlet;
        duration        2;
        concentration   0.6;              // parcel concentration in my fluid?      
            parcelsPerSecond 500;
        meanParticleDiameter 0.003;  // for what?
 
        nParticle        1000;            // number of particles to be injected

            massTotal       0.5;           //total mass to be injected (kg)

            parcelBasisType fixed;    // options of how to represent your particles. besides 'fixed' they can be represented by 'number' or 'mass'
            SOI             0;                     // start of injection (time)
            sizeDistribution
            {
                type        fixedValue;          // particle have fixed sizes Yes
                 fixedValueDistribution        // the sizes the particels can have ? Yes. Instead of specifying each individual size you could use a size distribution profile i.e. type normal;
                {
                    value   0.006;             
            value   0.01;
                    value   0.001;
                    value   0.015;
            value   0.004;
            value   0.009;
                }
            }
        }
    }

    dispersionModel none;

    patchInteractionModel none;

    surfaceFilmModel none;

    collisionModel pairCollision;

    pairCollisionCoeffs
    {
        maxInteractionDistance  0.006;

        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;
            ".*Wall"
            {
                youngsModulus   1e10;
                poissonsRatio   0.23;
                alpha           0.12;
                b               1.5;
                mu              0.43;
                cohesionEnergyDensity 0;
            }
        };
    }
}
decah is offline   Reply With Quote

Old   November 24, 2017, 09:01
Default kinematicCloudProperties details
  #4
Member
 
Amod Kumar
Join Date: Jan 2010
Location: Delhi, India
Posts: 39
Rep Power: 16
amod_kumar is on a distinguished road
Hello,
I am also looking for detail description of dictionaries used in LPT simulations. I came across few articles and have tried to write comments in a sample kinematicCloudProperties file.

Hope this helps!
Amod
Attached Files
File Type: txt kinematicCloudProperties.txt (8.0 KB, 1056 views)
amod_kumar is offline   Reply With Quote

Old   December 20, 2018, 02:34
Default
  #5
New Member
 
Zhang PJ
Join Date: May 2018
Posts: 1
Rep Power: 0
Zhang PJ is on a distinguished road
Hello,
You can turn to the langragian submodel code in the src folder.
For OpenFOAM-5.0, I have the PatchFlowRateInjection.H in src/lagrangian/intermediate/submodels/Kineamtic/InjectionModel/PatchFlowRateInjection/, as presented below.

...

Description
Patch injection, by using patch flow rate to determine concentration and velocity.

User specifies:
- Total mass to inject
- Name of patch
- Injection duration
- Injection target concentration/carrier volume flow rate

Properties:
- Initial parcel velocity given by local flow velocity
- Parcel diameters obtained by distribution model
- Parcels injected randomly across the patch

SourceFiles
PatchFlowRateInjection.C

\*---------------------------------------------------------------------------*/

#ifndef PatchFlowRateInjection_H
#define PatchFlowRateInjection_H

#include "InjectionModel.H" //Please refer to this header file too
#include "patchInjectionBase.H" //Please refer to this header file too
#include "TimeFunction1.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * //

namespace Foam
{

class distributionModel;

/*---------------------------------------------------------------------------*\
Class PatchFlowRateInjection Declaration
\*---------------------------------------------------------------------------*/

template<class CloudType>
class PatchFlowRateInjection:
public InjectionModel<CloudType>,
public patchInjectionBase
{
// Private data

//- Name of carrier (mass or volume) flux field
const word phiName_;

//- Name of carrier density field
const word rhoName_;

//- Injection duration [s]
scalar duration_;

//- Concentration profile of particle volume to carrier volume [-]
const TimeFunction1<scalar> concentration_;

//- Parcels to introduce per unit volume flow rate m3 [n/m3]
const scalar parcelConcentration_;

//- Parcel size distribution model
const autoPtr<distributionModel> sizeDistribution_;
...

By refering to those header files, you can know the required properties of a specific submodel. Besides, if you don't now the available choice for a property, just type in "banana" and excute the foam case. Then you will find available choices listed in the terminal.
granzer, sourav90 and reverseila like this.
Zhang PJ is offline   Reply With Quote

Old   June 17, 2019, 04:52
Default
  #6
New Member
 
Mustafa
Join Date: Jun 2015
Location: Aachen
Posts: 26
Rep Power: 11
stamufa is on a distinguished road
Hey,

A quick clarification on what the "Transient" keyword in this case means. The transient nature of the solution is decided by the solver, so if we for instance do a pimpleFoam solution and then switch off the transient keyword in particle properties, what are we to expect?

Best,
Mustafa
granzer likes this.
stamufa is offline   Reply With Quote

Old   December 3, 2019, 07:49
Default
  #7
New Member
 
Ramkumar
Join Date: Nov 2014
Location: pondicherry, India
Posts: 16
Rep Power: 12
Ramkumar21194 is on a distinguished road
Hi guys, i am also solving the same particle tracking problem, i need massless particles which basically should go along the flow. I tried icoUncoupledKinematicParcelFoam but cant achieve the exact massless type.
i saw on a different old thread to increase the drag coefficient for the particle to stick to the flow field, i dont know where to specify that. could someone please help?
Ramkumar21194 is offline   Reply With Quote

Old   October 5, 2021, 09:57
Default
  #8
Senior Member
 
Mandeep Shetty
Join Date: Apr 2016
Posts: 188
Rep Power: 10
granzer is on a distinguished road
Quote:
Originally Posted by stamufa View Post
Hey,

A quick clarification on what the "Transient" keyword in this case means. The transient nature of the solution is decided by the solver, so if we for instance do a pimpleFoam solution and then switch off the transient keyword in particle properties, what are we to expect?

Best,
Mustafa
Hey Mustafa,
Did you find an answer to what happens when the "transient" switch is set to "no"?
granzer is offline   Reply With Quote

Old   October 5, 2021, 10:51
Default
  #9
Senior Member
 
Mandeep Shetty
Join Date: Apr 2016
Posts: 188
Rep Power: 10
granzer is on a distinguished road
Quote:
Originally Posted by stamufa View Post
Hey,

A quick clarification on what the "Transient" keyword in this case means. The transient nature of the solution is decided by the solver, so if we for instance do a pimpleFoam solution and then switch off the transient keyword in particle properties, what are we to expect?

Best,
Mustafa
Hey Mustafa,
Did you find an answer to what happens when the "transient" switch is set to "no"?

Ok found the answers here : LPT_for_erosionModelling_report
granzer is offline   Reply With Quote

Old   January 7, 2022, 07:20
Default
  #10
Member
 
Eren
Join Date: Aug 2018
Posts: 86
Rep Power: 9
ErenC is on a distinguished road
Lets say I specified:
constantProperties
{
rho0 3500;

}


InjectionModels
{
model1
{

ParcelerSecond 1e3;
SOI 0.01;
duration 10;
}
}

And my average particle diameter (D) is 1e-4. I can basically calculate:
rho*4/3*pi*(D/2)^3*(parcelPerSecond)*(duration-SOI)

This should gave me the total mass injected to the system. So why do we have massTotal? I don't really see the point of the entry. It is confusing.

Last edited by ErenC; January 7, 2022 at 08:30.
ErenC is offline   Reply With Quote

Old   February 11, 2022, 22:19
Default
  #11
Member
 
Shah Akib Sarwar
Join Date: Mar 2021
Posts: 41
Rep Power: 5
Shah Akib Sarwar is on a distinguished road
I am a beginner to this, but I believe massTotal is unused when parcelBasisType is set to "fixed".
Shah Akib Sarwar is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
cfx exited with return code 1 - more details... Luk_Fiz CFX 7 September 1, 2014 02:53
details prasad Main CFD Forum 0 March 27, 2007 00:25
user subroutine error CFDUSER CFX 2 December 9, 2006 07:31
user defined function cfduser CFX 0 April 29, 2006 11:58
Fluent 5.5. What the differences with fluent 5.3?? confused FLUENT 2 July 29, 2001 22:58


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