|
[Sponsors] |
Custom Lagrangian Lookup Table Injector Fails to Fully Initialise in Parallel |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
January 27, 2021, 09:44 |
Custom Lagrangian Lookup Table Injector Fails to Fully Initialise in Parallel
|
#1 |
Member
Conor Crickmore
Join Date: Jan 2020
Location: Leicestershire, United Kingdom
Posts: 36
Rep Power: 6 |
Hey all!
I hope you are keeping both safe and sane! I've encountered an issue with a custom Lagrangian injector I'm working on, based upon the standard KinematicLookupTableInjection model. I am recording the properties of parcels that cross a user-specified plane in Simulation A and then injecting parcels with those same properties into Simulation B. The model itself seems to largely be working as desired, however, if the injection points span multiple processors in a parallel case, the standard method for assigning the injector a cell fails. I can avoid this in smaller cases by only decomposing the domain in one direction, such that all the injection sites fall within a single sub-domain, but this obviously isn't feasible for the more complicated and highly decomposed cases I have planned. My 'C++ Fu' has definitely failed me here. I've followed the function trail as best I could to find an alternative, but I have very little experience with parallel coding and so I am here, asking for your help! ----------------------------- The active injection model calling the findCellAtPosition function (injectionModel.C) available to all injection models which attempts to assign each injector in the lookup table with a cell using findCellFacePt (polyMesh.C). This process fails to identify the parent cell of some, but not all, injectors. I can force the cells to be assigned by including a call to findNearestCell (meshSearch.C) for any injectors that aren't initialised during the initial pass but at runtime, this generates warnings that the specified cells are outside of the mesh. The positions are within the domain itself, but it seems they are outside the sub-domain assigned to processor handling injections. ----------------------------- I guess, in essence, I am looking for a way to enable the injections to be handled my multiple processors? I understand this isn't a lot to go on, but I didn't just want to spam the post with entire functions. If you need any further information I'm of course happy to oblige Thanks as always,
__________________
Conor Crickmore PhD Researcher in Automotive Aerodynamics Aeronautical and Automotive Engineering Loughborough University LE11 3TU |
|
February 5, 2021, 10:13 |
|
#2 |
Member
Conor Crickmore
Join Date: Jan 2020
Location: Leicestershire, United Kingdom
Posts: 36
Rep Power: 6 |
As is often the case, it looks like I was just being an idiot...
Still relatively new to this and I didn't realise that the Info function only reads from processor 0. Therefore, if an injector was being initialised elsewhere, it was deemed invalid. A quick check with Pout confirms this. Oops =P
__________________
Conor Crickmore PhD Researcher in Automotive Aerodynamics Aeronautical and Automotive Engineering Loughborough University LE11 3TU |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Lagrangian particle tracking cannot be run in parallel for the cases with AMI patches | Armin.Sh | OpenFOAM Running, Solving & CFD | 7 | March 28, 2021 23:33 |
Error running openfoam in parallel | fede32 | OpenFOAM Programming & Development | 5 | October 4, 2018 17:38 |
Explicitly filtered LES | saeedi | Main CFD Forum | 16 | October 14, 2015 12:58 |
simpleFoam parallel | AndrewMortimer | OpenFOAM Running, Solving & CFD | 12 | August 7, 2015 19:45 |
custom inlet problem with parallel runs | hansjoerg | OpenFOAM Running, Solving & CFD | 3 | November 15, 2013 11:05 |