CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

floating point exception when moving plate comes close to stationary walls

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 4, 2017, 05:12
Default floating point exception when moving plate comes close to stationary walls
  #1
Member
 
Michael Frank
Join Date: Aug 2012
Posts: 55
Rep Power: 14
mike.franky is on a distinguished road
Hi,

I running a simulation using interDyMFoam, where a solid plate is free to move within an enclosure. The plate is moving as it should. However, when it comes very close to one of the stationary boundaries, the timestep becomes extremely small ( O(e-20) ) and the simulation eventually stops with a floating point exception.

From the stack trace I can see that the problem occurs during surfaceInterpolation::makeDeltaCoeffs() when the dynamic mesh updates ( i.e. dynamicMotionSolverFvMesh::update() ).

Does anyone know a way around this issue?

Thanks in advance for any help

Cheers
Mike
mike.franky is offline   Reply With Quote

Old   June 4, 2017, 06:18
Default
  #2
Senior Member
 
piu58's Avatar
 
Uwe Pilz
Join Date: Feb 2017
Location: Leipzig, Germany
Posts: 744
Rep Power: 15
piu58 is on a distinguished road
It would be valuable if you post your setup here.
__________________
Uwe Pilz
--
Die der Hauptbewegung überlagerte Schwankungsbewegung ist in ihren Einzelheiten so hoffnungslos kompliziert, daß ihre theoretische Berechnung aussichtslos erscheint. (Hermann Schlichting, 1950)
piu58 is offline   Reply With Quote

Old   June 4, 2017, 07:06
Default
  #3
Member
 
Michael Frank
Join Date: Aug 2012
Posts: 55
Rep Power: 14
mike.franky is on a distinguished road
Thanks for your reply.

So the case involves an enclosure with a moving plate. There is an inflow and outflow of water which causes the moving plate to move around the enclosure. If it reaches one of the walls of the enclosure it should stop moving.

As I mentioned, the system dynamics seem completely fine up to the point where the plate reaches the walls. I assume it has something to do with dynamic mesh dictionary which I now post below.


Quote:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dynamicFvMesh dynamicMotionSolverFvMesh;

motionSolverLibs ("librigidBodyMeshMotion.so");

solver rigidBodyMotion;

rigidBodyMotionCoeffs
{
report on;

solver
{
type Newmark;
}

accelerationRelaxation 0.9;

bodies
{
disk
{
type rigidBody;
parent root;

centreOfMass (0 0.0075 0);
mass 0.005;
inertia (0 0 0 0 0 0);
//transform (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);
transform (1 0 0 0 1 0 0 0 1) (0 0 0);

joint
{
type composite;
joints
(
{
type Py;
}
);
}

patches (disk);
innerDistance 0.3;
outerDistance 1.0;
}
}

/*restraints
{
translationDamper
{
type linearDamper;
body disk;
coeff 8596;
}

rotationDamper
{
type sphericalAngularDamper;
body disk;
coeff 11586;
}
}*/
}

The points displacement dictionary is

Quote:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class pointVectorField;
object pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 0 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0 0);
}
outlet
{
type fixedValue;
value uniform (0 0 0);
}
wall
{
type fixedValue;
value uniform (0 0 0);
}
disk
{
type calculated;
value uniform (0 0 0);
}
}
Thanks again and let me know if you need anything else.
mike.franky is offline   Reply With Quote

Old   June 15, 2017, 11:16
Default
  #4
Member
 
Michael Frank
Join Date: Aug 2012
Posts: 55
Rep Power: 14
mike.franky is on a distinguished road
So I think I figured out what the problem is. As the moving object approaches a wall, the cells between the two solids are becoming continuously smaller. The adjustable timestep decreases continuously to accommodate the fixed CFL, to the point where it results in an error.

Is there a way to stop this behaviour? For example, can I prevent the object from moving past a certain distance away from the wall?

Thanks again for any help
mike.franky is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
icoFoam floating point exception (8) leizhao512 OpenFOAM Running, Solving & CFD 7 November 1, 2018 11:43
A floating point exception - SEM Model yansheng STAR-CCM+ 1 April 4, 2016 04:57
Floating point exception from twoPhaseEulerFoam openfoammaofnepo OpenFOAM Running, Solving & CFD 1 March 19, 2016 13:56
Floating point exception (core dumped) for GAMG solver yuhou1989 OpenFOAM Running, Solving & CFD 2 March 24, 2015 19:28
Pipe flow in settlingFoam floating point exception jochemvandenbosch OpenFOAM Running, Solving & CFD 4 February 16, 2012 03:24


All times are GMT -4. The time now is 21:39.