|
[Sponsors] |
February 13, 2020, 17:35 |
Issues with particle class
|
#1 |
New Member
Anthony Gay
Join Date: Oct 2019
Posts: 17
Rep Power: 7 |
Currently getting the error
Code:
--> FOAM FATAL ERROR: The search for an edge-connected face and tet-point failed. From function void Foam::particle::changeFace(Foam::label) in file particle/particle.C at line 320. FOAM exiting Currently I'm running a modified DSMC Initialise function from the DSMCCloud class along with a modified dsmcInitialiseDict and blockMeshDict. All the other dictionaries are from the DSMC: freeSPacePeriodic tutorial. DSMC Initialise class:https://github.com/Anthony-Gay/HPC_w...DSMCCloudMod.C blockMeshDict: https://github.com/Anthony-Gay/HPC_w.../blockMeshDict DSMCInisialiseDict: https://github.com/Anthony-Gay/HPC_w...InitialiseDict My current hypothesis is that its how my tracking data (td) in the DSMCCloud::evolve function is being constructed since the error comes from line 1046 Code:
// Move the particles ballistically with their current velocities Cloud<ParcelType>::move(*this, td, mesh_.time().deltaTValue()); When I dig into the particle class i find that its this loop thats triggering the message Code:
tetPti_ = -1; forAll(mesh_.cells()[celli_], cellFaceI) { const label newFaceI = mesh_.cells()[celli_][cellFaceI]; const class face& newFace = mesh_.faces()[newFaceI]; const label newOwner = mesh_.faceOwner()[newFaceI]; // Exclude the current face if (tetFacei_ == newFaceI) { continue; } // Loop over the edges, looking for the shared one. Note that we have to // match the direction of the edge as well as the end points in order to // avoid false positives when dealing with coincident ACMI faces. const label edgeComp = newOwner == celli_ ? -1 : +1; label edgeI = 0; for ( ; edgeI < newFace.size() && edge::compare(sharedEdge, newFace.faceEdge(edgeI)) != edgeComp; ++ edgeI ); // If the face does not contain the edge, then move on to the next face if (edgeI >= newFace.size()) { continue; } // Make the edge index relative to the base point const label newBaseI = max(0, mesh_.tetBasePtIs()[newFaceI]); edgeI = (edgeI - newBaseI + newFace.size()) % newFace.size(); // If the edge is next the base point (i.e., the index is 0 or n - 1), // then we swap it for the adjacent edge. This new edge is opposite the // base point, and defines the tet with the original edge in it. edgeI = min(max(1, edgeI), newFace.size() - 2); // Set the new face and tet point tetFacei_ = newFaceI; tetPti_ = edgeI; // Exit the loop now that the tet point has been found break; } if (tetPti_ == -1) { FatalErrorInFunction << "The search for an edge-connected face and tet-point failed." << exit(FatalError); } Any insight is appreciated! Thank you! Last edited by anthonygay1812; February 13, 2020 at 20:56. Reason: Added more information |
|
February 13, 2020, 18:14 |
|
#2 |
Senior Member
Herpes Free Engineer
Join Date: Sep 2019
Location: The Home Under The Ground with the Lost Boys
Posts: 931
Rep Power: 13 |
More info is needed for forum dudes, so that people can replicate ur issue - and help u eventually.
__________________
The OpenFOAM community is the biggest contributor to OpenFOAM: User guide/Wiki-1/Wiki-2/Code guide/Code Wiki/Journal Nilsson/Guerrero/Holzinger/Holzmann/Nagy/Santos/Nozaki/Jasak/Primer Governance Bugs/Features: OpenFOAM (ESI-OpenCFD-Trademark) Bugs/Features: FOAM-Extend (Wikki-FSB) Bugs: OpenFOAM.org How to create a MWE New: Forkable OpenFOAM mirror |
|
February 13, 2020, 18:44 |
|
#3 |
New Member
Anthony Gay
Join Date: Oct 2019
Posts: 17
Rep Power: 7 |
Thank you HPE, I've added more information. I think my real issue is I'm not yet effective with debugging in C++ on WSL (I've spent several years working with just Matlab) and still need to work on my skill toolbox.
|
|
February 15, 2020, 05:05 |
Resolved
|
#4 |
New Member
Anthony Gay
Join Date: Oct 2019
Posts: 17
Rep Power: 7 |
I managed to find the issue. Once again being new to C++ in general and not knowing much about compilers, I was compiling everything as a super user. I accidentally ran a case as a super user, meaning that when I ran my all clean script as a regular user, files in my 0 directory weren't being deleted/overwritten.
|
|
Tags |
dsmc openfoam dsmcfoam, particle cloud |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[swak4Foam] Validation of swak4Foam for lagrangian particle tracking | nero235 | OpenFOAM Community Contributions | 13 | March 28, 2017 06:45 |
droplet separation off a particle in turbulent stream | anonymous_89 | Main CFD Forum | 0 | August 22, 2013 14:40 |
injection problem | Mark New | FLUENT | 0 | August 4, 2013 02:30 |
Particle Tracking for ion | Jun | CFX | 2 | August 31, 2010 09:19 |
the separated particle temperature in cyclone | mkuswadi | FLUENT | 0 | December 17, 2003 09:25 |