|
[Sponsors] |
How to call particle position in StochasticDispersionRAS model? |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 2, 2021, 20:04 |
How to call particle position in StochasticDispersionRAS model?
|
#1 |
New Member
Join Date: Oct 2020
Posts: 6
Rep Power: 5 |
Hi all,
Sorry I am pretty new to the programming things in OpenFOAM, especially for the Lagrangian part. Could anyone give me a hint that where I can modify to call the particle position value in "StochasticDispersionRAS.C" because I would like to add some position dependence to the disperse velocity calculation? To the best of my knowledge, there is no function that includes position() in this file, so we may need to call some function from other C files? The original "StochasticDispersionRAS.C" file shows as follows. Code:
\*---------------------------------------------------------------------------*/ #include "StochasticDispersionRAS.H" #include "constants.H" using namespace Foam::constant::mathematical; // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template<class CloudType> Foam::StochasticDispersionRAS<CloudType>::StochasticDispersionRAS ( const dictionary& dict, CloudType& owner ) : DispersionRASModel<CloudType>(dict, owner) {} template<class CloudType> Foam::StochasticDispersionRAS<CloudType>::StochasticDispersionRAS ( const StochasticDispersionRAS<CloudType>& dm ) : DispersionRASModel<CloudType>(dm) {} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template<class CloudType> Foam::StochasticDispersionRAS<CloudType>::~StochasticDispersionRAS() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> Foam::vector Foam::StochasticDispersionRAS<CloudType>::update ( const scalar dt, const label celli, const vector& U, const vector& Uc, vector& UTurb, scalar& tTurb ) { Random& rnd = this->owner().rndGen(); const scalar cps = 0.16432; const scalar k = this->kPtr_->primitiveField()[celli]; const scalar epsilon = this->epsilonPtr_->primitiveField()[celli] + ROOTVSMALL; const scalar UrelMag = mag(U - Uc - UTurb); const scalar tTurbLoc = min(k/epsilon, cps*pow(k, 1.5)/epsilon/(UrelMag + SMALL)); // Parcel is perturbed by the turbulence if (dt < tTurbLoc) { tTurb += dt; if (tTurb > tTurbLoc) { tTurb = 0; const scalar sigma = sqrt(2*k/3.0); // Calculate a random direction dir distributed uniformly // in spherical coordinates const scalar theta = rnd.sample01<scalar>()*twoPi; const scalar u = 2*rnd.sample01<scalar>() - 1; const scalar a = sqrt(1 - sqr(u)); const vector dir(a*cos(theta), a*sin(theta), u); UTurb = sigma*mag(rnd.GaussNormal<scalar>())*dir; } } else { tTurb = GREAT; UTurb = Zero; } return Uc + UTurb; } // ************************************************************************* // |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
simplifiedSiwek - error in calculating the position of a coal error | guitar_love_15 | OpenFOAM Running, Solving & CFD | 0 | November 4, 2018 04:06 |
Overflow Error in Multiphase Modelling with Two Continuous Fluids | ashtonJ | CFX | 6 | August 11, 2014 14:32 |
problem with solving lagrange reaction cloud | Polli | OpenFOAM Running, Solving & CFD | 0 | April 30, 2014 07:53 |
injection problem | Mark New | FLUENT | 0 | August 4, 2013 01:30 |
DPM UDF particle position using the macro P_POS(p)[i] | dm2747 | FLUENT | 0 | April 17, 2009 01:29 |