|
[Sponsors] |
January 14, 2015, 07:20 |
particles data transfer in parallel
|
#1 |
New Member
Félix Collin-Bastiani
Join Date: Dec 2014
Posts: 1
Rep Power: 0 |
Hi all,
I'm facing a problem while dealing with the transfer of particles from one processor to an other in parallel in OF2.3. The parallel transfer of particles is managed in the move() function in Cloud.C . For what I understand, each particle is moved ( bool keepParticle = p.move(td, trackTime); l.256 ) and if it touches a processorpatch, so it has to be transfered, the particle and its data are stored in a list ( particleTransferLists[n].append(this->remove(&p)); l.282 ) and sent to the corresponding processor via particleStream and newParticles. The final reception of the particles and its attributes is l.377 : addParticle(newParticles.remove(&newp)); . Looking in detail at which attributes of the particle are transfered, particleTransferLists= ... (0.00515625019531 0.00234375058594 0.00050000125) 0 1363 1 4 -1 0 0 240 (-0.000608108152204 -0.000621487668205 0) ... I can recognize the first vector which is the position of the particle, the last vector which is its velocity, and other attributes as ident=240, origProc=4 ... but no stepFraction! What I don't understand is that it looks that position and also stepFraction are well transfered but the velocity U of the particle is lost! To see this, I just print one particle's data before and after its motion that include a parallel transfer: if (p.ident_ == 240) { Sout << "[" << Pstream::myProcNo() << "] " << "[" << p.ident_ << "]" << "0stepFraction= " << p.stepFraction() << endl; Sout << "[" << Pstream::myProcNo() << "] " << "[" << p.ident_ << "]" << "0position= " << p.position() << endl; Sout << "[" << Pstream::myProcNo() << "] " << "[" << p.ident_ << "]" << "0U= " << p.U() << endl; } // Move the particle bool keepParticle = p.moveboth(td, trackTime); if (p.ident_ == 240) { Sout << "[" << Pstream::myProcNo() << "] " << "[" << p.ident_ << "]" << "1stepFraction= " << p.stepFraction() << endl; Sout << "[" << Pstream::myProcNo() << "] " << "[" << p.ident_ << "]" << "1position= " << p.position() << endl; Sout << "[" << Pstream::myProcNo() << "] " << "[" << p.ident_ << "]" << "1U= " << p.U() << endl; } And this is what I obtain: [5] [240]1stepFraction= 0.346330447805 [5] [240]1position= (0.00518478005541 0.00234374980469 0.000500002499988) [5] [240]1U= (0.000397471442878 0.00100014123841 0) [4] [240]0stepFraction= 0.346330447805 [4] [240]0position= (0.00518478005541 0.00234374980469 0.000500002499988) [4] [240]0U= (-0.000864510861128 -9.13459388866e-05 0) or after an other parallel transfer: [4] [240]1stepFraction= 0.531836307903 [4] [240]1position= (0.00515625 0.002418360579 0.000500003749963) [4] [240]1U= (-0.00069785742786 0.000518578803944 0) [3] [240]0stepFraction= 0.531836307903 [3] [240]0position= (0.00515625 0.002418360579 0.000500003749963) [3] [240]0U= (6.94526088624e-310 0 0) How can I transfer well this velocity as I want the particle to continue its way with this velocity (I don't want to re-interpolate the velocity field each time the particle cross a processorpatch) ? Any help would be appreciated, thanks in advance! Félix |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Getting data of injected particles | Lior | FLUENT | 10 | April 9, 2020 14:12 |
Question about heat transfer coefficient setting for CFX | Anna Tian | CFX | 1 | June 16, 2013 07:28 |
heat transfer coefficient and interfacial area density Data required | kmgraju | CFX | 3 | December 28, 2012 12:27 |
Writing profile data at transient heat transfer analysis | Ama | FLUENT | 0 | July 5, 2009 08:35 |
Transfer data in MPI | hall | Main CFD Forum | 0 | May 3, 2004 19:57 |