|
| Re: SIBS step size underflow 1 Year ago | Karma: 0 | Hi, I am trying to run dieselEngineFoam with layer addition and removal. But solver crashes when layer addition is triggered. Can anyone please help me on this? I think it goes in the "volPointInterpolation::makeWeights()" function and doesn't come out. Volume: new = 5.3537191182860203507e-06 old = 5.3527480559085656057e-06 change = 9.7106237745474499818e-10 Motion continuity errors : sum local = 1.3287303688937274302e-15, maximum = 4.2770896973614293862e-13 Courant Number mean: 0.0054465258107426663819 max: 0.2945650585287735157 velocity magnitude: 543.94917509485537721 deltaT = 2.9394473838919584199e-07 Crank angle = 14.890476190476187313 CA-deg deltaZ = -1.1313559734049682959e-06 Piston at:-0.0063710758126994532224 pistonLayerID: 0 Piston layering mode [1] bool layerAdditionRemoval::changeTopology() const for object pistonLayer : [1] Layer thickness: min: 0.00034197519323248356691 max: 0.0010000622853268386746 avg: 0.00087962898588504105993 old thickness: 0.0008786341809032546064 [1] Removal threshold: 0.00040000000000000001917 addition threshold: 0.0010000000000000000208 [1] bool layerAdditionRemoval::changeTopology() const for object pistonLayer : Triggering layer addition [0] bool layerAdditionRemoval::changeTopology() const for object pistonLayer : [0] Layer thickness: min: 0.00034197519323248356691 max: 0.0010000622853268386746 avg: 0.00087962898588504105993 old thickness: 0.0008786341809032546064 [0] Removal threshold: 0.00040000000000000001917 addition threshold: 0.0010000000000000000208 [3] bool layerAdditionRemoval::changeTopology() const for object pistonLayer : [0] bool layerAdditionRemoval::changeTopology() const for object pistonLayer : Triggering layer addition [2] bool layerAdditionRemoval::changeTopology() const for object pistonLayer : [3] Layer thickness: min: 0.00034197519323248356691 max: 0.0010000622853268386746 avg: 0.00087962898588504105993 old thickness: 0.0008786341809032546064 [2] Layer thickness: min: 0.00034197519323248356691 max: 0.0010000622853268386746 avg: 0.00087962898588504105993 old thickness: 0.0008786341809032546064 [3] Removal threshold: 0.00040000000000000001917 addition threshold: 0.0010000000000000000208 [2] Removal threshold: 0.00040000000000000001917 addition threshold: 0.0010000000000000000208 [3] bool layerAdditionRemoval::changeTopology() const for object pistonLayer : Triggering layer addition [2] bool layerAdditionRemoval::changeTopology() const for object pistonLayer : Triggering layer addition [3] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Adding cell layer [1] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Adding cell layer [2] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Adding cell layer [0] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Adding cell layer [1] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Using edges for point insertion [0] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Using edges for point insertion [2] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Using edges for point insertion [3] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Using edges for point insertion [3] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Finished adding cell layer [3] layerAdditionRemoval::setRefinement(polyTopoChange& ref) for object pistonLayer : Clearing addressing after layer addition. [0] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Finished adding cell layer [0] layerAdditionRemoval::setRefinement(polyTopoChange& ref) for object pistonLayer : Clearing addressing after layer addition. [1] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Finished adding cell layer [1] layerAdditionRemoval::setRefinement(polyTopoChange& ref) for object pistonLayer : Clearing addressing after layer addition. [2] void layerAdditionRemoval::addCellLayer(polyTopoChange& ref) const for object pistonLayer : Finished adding cell layer [2] layerAdditionRemoval::setRefinement(polyTopoChange& ref) for object pistonLayer : Clearing addressing after layer addition. [0] layerAdditionRemoval::updateMesh(const mapPolyMesh&) for object pistonLayer : Clearing addressing on external request. Pointers not set. [3] layerAdditionRemoval::updateMesh(const mapPolyMesh&) for object pistonLayer : Clearing addressing on external request. Pointers not set. [2] layerAdditionRemoval::updateMesh(const mapPolyMesh&) for object pistonLayer : Clearing addressing on external request. Pointers not set. [1] layerAdditionRemoval::updateMesh(const mapPolyMesh&) for object pistonLayer : Clearing addressing on external request. Pointers not set. volPointInterpolation::makeWeights() : constructing weighting factors [cfd010:16402] *** Process received signal *** [cfd010:16402] Signal: Floating point exception (8) [cfd010:16402] Signal code: (-6) [cfd010:16402] Failing at address: 0x1f700004012 [cfd010:16402] [ 0] /lib64/libc.so.6 [0x3f52230280] [cfd010:16402] [ 1] /lib64/libc.so.6(gsignal+0x35) [0x3f52230215] [cfd010:16402] [ 2] /lib64/libc.so.6 [0x3f52230280] |
| | | |
|
| Re: SIBS step size underflow 6 Months ago | Karma: 0 | Dear Abhishek Deshmukh; Did you solve the problem of chemistry solver with your modified dieselEngineFoam? Now I use modified dieselEngineFoam with layerAR. When I test only mesh-moving, It seems OK. Both of deletion and addition of cell-layer work anyway. But I got a trouble in solving chemistry. If I turn off chemistry, then It's OK. When I turn on chemistry, serious error comes out below; ---------------------------------- --> FOAM FATAL ERROR: step size underflow From function ODES::SIBS in file ODESolvers/SIBS/SIBS.C at line 155. FOAM exiting ---------------------------------- Blocking mesh.update() in code, then It works without the above message. Additionaly, when I run it with original dieselEngineFoam with "layered", there is no problem like above. I need anyone's comment about this. Thanks in advance. Scurry |
| | | |
|
| Re: SIBS step size underflow 6 Months ago | Karma: 1 | I ve noticed that,too. It has something to do with the mesh modifier. For LayerAR you have to call mesh.update(), where mesh is an object of the engineTopoChangerMesh class and than call the virtual function update() of its derived class layerAR. If you use engineFoam or dieselEngineFoam, there you call mesh.move(), where mesh is an object of engineMesh and layered its derived class. No topological changes are invoked, only point motion. I think you are looking in the right direction, but this kind of stuff is not easy to understand, in particular when topologicval changes are involved. cheers Peter |
| | | |
|
| Re: SIBS step size underflow 6 Months ago | Karma: 0 | Thanks very much, Peter. As I understand what you commented, you mean I need to do something to the mesh modifier, ex. layerAR. Then, One curious thing is the fact that flow-simulation(w/o chemistry-solving) seems to work anyway! Of course, I can't verify it is right or not --). Since flow-solving needs information about mesh and thermo-data(viscosity, enthalpy, temperature, density etc), your comment is confusing me. I've thought that if solving-flow has no problem, solving-chemistry may work without any special treatment. I'm very afraid to say the cold-flow simulation also may be problematic! For a couple of weeks, I'm stuck on this issue. Could you give me some clues? cheers, Scurry |
| | | |
|
| Re: SIBS step size underflow 6 Months ago | Karma: 1 | I think it has something to do with topological changes.For the moment it also not clear for me what is happening. Boundaries have to be updated properly, but how and why? I don t know. I was running compressible flow simulations with layering and attachDetach mesh modifier with 1.6-ext without any problems. I ve used sonicTurboDyMEngineFoam. I can also confirm that engineDyMFoam works with 1.6-ext. Now I ve switched to 2.1.x because I had problems with the fvMotionSolver, which didn t work well in parallel with 1.6-ext. Which version do you use? |
| | | |
|
| Re: SIBS step size underflow 5 Months, 4 Weeks ago | Karma: 0 | Hi, Peter The code is manual itself! I hope someone could interpret it in detail. For engine-mesh, I try OF1.6ext but for other cases, I use OpenCFD®-version(OF2.1.1). It is wonderful thing that you would develop engine-mesh or like-that in OF2.1.x. I need to test chemistry-solving with "sonicTurboDyMEngineFoam". If it failed, I'll have to dig into the code to know what is happening there? Have a nice week, everyone. Scurry |
| | | |
|