-
-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrong write time for functionObjectProperties in OpenFOAM.com #26
Comments
Some observations, while I am trying to fix this:
In case you cannot acccess their GitLab repositories, the key method is Commenting out this line didn't help: Line 419 in df2e48d
Edit: Here are the respective Release Notes of OpenFOAM v3.0+. See the section "Function objects updates". |
As Derek mentioned, the additional file is written at Apparently, this file is only written at the last coupling time step before writing (and at the times it is expected to be written). I was looking at the files during the simulation. Consider the heated plate tutorial, with implicit coupling, and the following time steps:
While the time directories I guess that at the coupling time step from Keeping in mind that the function object is technically triggered at the beginning of the next time step, instead of the end of the current one, I am pretty sure the problem is in this series of events. I will look at it again later. The answer lies somewhere in |
Additional thoughts and observations:
Line 419 in df2e48d
Line 702 in df2e48d
This is of course undesired and wrong, but it supports my aforementioned theory.
|
I think I found the speciality of this object, in the method Foam::functionObjectList::execute(): // Force writing of state dictionary after function object execution
if (time_.writeTime())
{
label oldPrecision = IOstream::precision_;
IOstream::precision_ = 16;
stateDictPtr_->writeObject
(
IOstream::ASCII,
IOstream::currentVersion,
time_.writeCompression(),
true
);
IOstream::precision_ = oldPrecision;
} So, the series of events is the following:
Two cross-related questions: A. Why, after we reset the time, |
I give up for now, as any solution for this would again be quite hacky. I think we are writing results correctly and we know the specific reason that only this object is written out of place. This only affects some versions of OpenFOAM and this file seems to be useless in most of the cases. I suggest the following workaround for our tutorial scripts: # Delete all [case]/[time]/[uniform]/functionObjects directories
rm -rfv */*/*/functionObjects
# Delete all empty directories
find . -type d -empty -delete @derekrisseeuw what do you think of this workaround? Apparently, paraFoam uses any directory with a numerical value as name to add time stamps. Or maybe the issue is that ParaView itself needs an option to only consider non-empty time sets when plotting a specific variable. I will open an issue/PR for this upstream. |
This could work, but only for runs which don't use any other function objects. I used a similar script |
Do you have any example in mind where this could break? Maybe deleting all the To be honest, I have not really understood what this dictionary is meant for, as I have not encountered it in practice. I think I will replace the |
I actually think your script is better for our use case. I extended it so that it also looks for I consider this closed, as soon as the respective commit gets merged into master. |
Related to #26 Already implemented separately for the FSI tutorials in the precice/tutorials repository.
Related to #26 Already implemented separately for the FSI tutorials in the precice/tutorials repository.
Related to #26 Already implemented separately for the FSI tutorials in the precice/tutorials repository.
commit 045d0d2 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Wed Jul 29 13:54:01 2020 +0200 Cleanup sonicLiquidFoam case files commit 91160d7 Author: uekerman <benjamin.uekermann@gmail.com> Date: Wed Jul 29 10:13:52 2020 +0200 Tune FF sonicLiquidFoam to converge commit c0e61f5 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Fri Jul 24 14:04:39 2020 +0200 Add todo for determining solverType of multiphase solvers commit 35cc2c2 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Wed Jul 22 21:57:15 2020 +0200 Add pressure-based solver type guessing commit c38f109 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Wed Jul 22 21:41:43 2020 +0200 Update FF/FF.C commit 03cee93 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Wed Jul 22 21:38:32 2020 +0200 Update preCICE logger for consistency commit fcb2c37 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Wed Jul 22 21:35:14 2020 +0200 Remove density from transportProperties commit a39035d Merge: 78fc865 46c1dcf Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Wed Jul 22 18:22:28 2020 +0200 Merge branch 'develop' into FF commit 46c1dcf Merge: 84a3178 0eb0742 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Tue Jun 30 10:47:18 2020 +0200 Merge pull request #131 from precice/refactor-assign-construct Refactor to reduce assigning fields at creation commit 0eb0742 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Mon Jun 29 21:21:45 2020 +0200 Refactor to reduce assigning fields at creation This replaces statements such as: scalarField one_field = another_field; by constructors: scalarField one_field(another_field); This can be safer and faster, as it avoids implicit conversions in between. commit 84a3178 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Tue Jun 23 21:19:26 2020 +0200 Tutorials: Add removeObsoleteFolders.sh script Related to #26 Already implemented separately for the FSI tutorials in the precice/tutorials repository. commit 55a1d57 Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Tue Jun 23 21:03:51 2020 +0200 Simplify precice-config.xml of tutorials Hides the timing:initial of mapping (not needed) and extrapolation-order (not important). Moves the max-iterations together with the relative-convergence-measure (more natural to explain). commit 671104a Author: David Schneider <dav.schneider@tum.de> Date: Mon Jun 8 10:27:37 2020 +0200 Support stress data (#125) Add support for stress data writing commit 42a3d6d Author: Gerasimos Chourdakis <makishourdakis@gmail.com> Date: Tue Mar 24 10:07:35 2020 +0100 Workaround for #109 (NP tutorial) commit b7c7a7c Author: David Schneider <dav.schneider@tum.de> Date: Fri Mar 20 20:39:04 2020 +0100 Determine solver type by pressure dimension (#124) Determine solver type by pressure dimensions and throw error if automatic process fails.
This issue has been mentioned on preCICE Forum on Discourse. There might be relevant details there: https://precice.discourse.group/t/openfoam-adapter-branch-for-version-8-and-solution-frequency/537/2 |
Issue reported by @derekrisseeuw, affecting at least OpenFOAM+ v1712 and v1806, but not affecting OpenFOAM 5.x or 6.
tl;dr: Empty entries in the results output are shown as "flickering" animation in ParaView.
Even if this seems to be version-specific, maybe there is something wrong in the adapter, as well.
The text was updated successfully, but these errors were encountered: