decomposePar pointfield
Dear All foamers:
I have met a problem when I use decomposePar to decompose the field which has a dynamic boundary. The boundary motion is described with a pointfield. The problem appears when the decompose plane crosses the dynamic boundary. Otherwise, it seems Ok. In additiion, I have found that the problem has been encountered by other users, but it seems that there are nobody to solve it. My error information as follows: [6] --> FOAM FATAL IO ERROR: [6] size 6977 is not equal to the given value of 933 [2] file: /gpfs/home/xgcui/OpenFOAM/xgcui-2.0.0/run/test1/flow3d-movingmesh-f-3/processor2/0/pointMotionU::boundaryField::WALL1 from line 26 to line 7013. [2] [2] From function Field<Type>::Field(const word& keyword, const dictionary&, const label) [2] in file /usr/local/OpenFOAM/OpenFOAM-2.0.0/src/OpenFOAM/lnInclude/Field.C at line 236. [2] FOAM parallel run exiting [2] [6] [6] file: /gpfs/home/xgcui/OpenFOAM/xgcui-2.0.0/run/test1/flow3d-movingmesh-f-3/processor6/0/pointMotionU::boundaryField::WALL1 from line 26 to line 7013. [6] [6] From function Field<Type>::Field(const word& keyword, const dictionary&, const label) [6] in file /usr/local/OpenFOAM/OpenFOAM-2.0.0/src/OpenFOAM/lnInclude/Field.C at line 236. [6] FOAM parallel run exiting [6] [0] [0] --> FOAM FATAL IO ERROR: [0] size 6977 is not equal to the given value of 944 [0] [0] file: /gpfs/home/xgcui/OpenFOAM/xgcui-2.0.0/run/test1/flow3d-movingmesh-f-3/processor0/0/pointMotionU::boundaryField::WALL1 from line 26 to line 7013. [0] [0] From function Field<Type>::Field(const word& keyword, const dictionary&, const label) [0] in file /usr/local/OpenFOAM/OpenFOAM-2.0.0/src/OpenFOAM/lnInclude/Field.C at line 236. [0] FOAM parallel run exiting [0] [4] [4] --> FOAM FATAL IO ERROR: [4] size 6977 is not equal to the given value of 866 [4] [4] file: /gpfs/home/xgcui/OpenFOAM/xgcui-2.0.0/run/test1/flow3d-movingmesh-f-3/processor4/0/pointMotionU::boundaryField::WALL1 from line 26 to line 7013. [4] [4] From function Field<Type>::Field(const word& keyword, const dictionary&, const label) [4] in file /usr/local/OpenFOAM/OpenFOAM-2.0.0/src/OpenFOAM/lnInclude/Field.C at line 236. [4] FOAM parallel run exiting [4] [7] [7] [3] [3] [3] --> FOAM FATAL IO ERROR: [3] size 6977 is not equal to the given value of 876 [3] [3] [7] --> FOAM FATAL IO ERROR: [7] size 6977 is not equal to the given value of 1025 [7] file: /gpfs/home/xgcui/OpenFOAM/xgcui-2.0.0/run/test1/flow3d-movingmesh-f-3/processor3/0/pointMotionU::boundaryField::WALL1 from line 26 to line 7013. [3] [3] From function Field<Type>::Field(const word& keyword, const dictionary&, const label) [3] in file /usr/local/OpenFOAM/OpenFOAM-2.0.0/src/OpenFOAM/lnInclude/Field.C at line 236[7] file: /gpfs/home/xgcui/OpenFOAM/xgcui-2.0.0/run/test1/flow3d-movingmesh-f-3/processor7/0/pointMotionU::boundaryField::WALL1 from line 26 to line 7013. [7] [7] From function Field<Type>::Field(const word& keyword, const dictionary&, const label) [7] in file /usr/local/OpenFOAM/OpenFOAM-2.0.0/src/OpenFOAM/lnInclude/Field.C. [3] FOAM parallel run exiting [3] at line 236. [7] FOAM parallel run exiting [7] [1] [1] [1] --> FOAM FATAL IO ERROR: [1] size 6977 is not equal to the given value of 840 [1] [1] file: /gpfs/home/xgcui/OpenFOAM/xgcui-2.0.0/run/test1/flow3d-movingmesh-f-3/processor1/0/pointMotionU::boundaryField::WALL1 from line 26 to line 7013. [1] [1] From function Field<Type>::Field(const word& keyword, const dictionary&, const label) [1] in file /usr/local/OpenFOAM/OpenFOAM-2.0.0/src/OpenFOAM/lnInclude/Field.C at line 236. [1] FOAM parallel run exiting [1] [5] [5] [5] --> FOAM FATAL IO ERROR: [5] size 6977 is not equal to the given value of 808 [5] [5] file: /gpfs/home/xgcui/OpenFOAM/xgcui-2.0.0/run/test1/flow3d-movingmesh-f-3/processor5/0/pointMotionU::boundaryField::WALL1 from line 26 to line 7013. [5] [5] From function Field<Type>::Field(const word& keyword, const dictionary&, const label) [5] in file /usr/local/OpenFOAM/OpenFOAM-2.0.0/src/OpenFOAM/lnInclude/Field.C at line 236. [5] FOAM parallel run exiting Does anybody have any ideas on it? Would you please give me some hints on it? Best wishes! |
Hi,
as you wrote in the PM you have an error while decomposing. Like I interprete the error you have the files in 0 always initialised with a other mesh. Maybe thats the reason! |
Hey Tobi:
Many thanks for your reply. In this case, how may I solve the problem? Please give me some hints on it. Quote:
|
1. use decomposePar -force
2. check in your folder 0 the files pointMotionU if there are any lists in it. If yes you have to create that folder new. I am not familiar with moving meshes |
Dear Tobi:
Thanks so much for your reply. It stil doesn't work. However, I found that the problem comes from the number of p0 is not equal to the mesh point number. If I change the data in the pointMotionU and make the value uniform and delete the number of value. It will work. Quote:
|
2 Attachment(s)
Hey Bruno and all fomers:
I upload a simple case, it is orginally downloaded from the link as follows: http://www.tfd.chalmers.se/~hani/kur...atchDeform.tgz It is orginally solved with icoFoam, but I have changed it to the pimpleDyMFoam. The lib file is for the moving boundary. As my case is very large and it is changed based this case, then I uploaded this case. My problem is the same as it. It will be great for any further suggestions. Quote:
|
Hi Xinguang Cui,
I've finally taken a look into this and I cannot find any problems. I've tested on OpenFOAM 2.2.x, 2.0.x and 2.0.1 and I had no problems in performing the following steps: Code:
wmake libso libMyPolynomVelocity Best regards, Bruno |
DEAR BRUNO:
Thanks for the information. Would you please put up the decomposePar file? I would like to see the way to decompose the mesh. bEST WISHES Quote:
|
Hi Xinguang Cui,
I didn't change anything on the "decomposeParDict". I used the one provided in your test case. All I did was clean up a bit the folder "0", by removing some strange files named ".goutputstream*" and one named "pointMotionU~". Best regards, Bruno |
Hey Bruno:
Thanks sor your reply. Have ever tried to run it? I also can decompose it, however it shows problem when it runs the case using pimpleDyMFoam. I also tried it in 2.2 0 and 2.1.1. Thanks and best wishes! Quote:
|
1 Attachment(s)
Hi Xinguang Cui,
:( The error was completely different from the one originally reported... and the case you prepared seems to be completely different from the initial report... and on top of that, the case was not fully prepared to run... Anyway, the attached case "movingCyl1_22x.tar.gz" runs fine on OpenFOAM 2.2.x. To run it: Code:
./Allrun Code:
./Allclean
Best regards, Bruno |
Hi Bruno
It seems that the problem still exists. when I run the attached case in parallel I still see the reported problem in this page. I have same problem with my case, when I run it with pimpleDyMFoam in parallel. has anybody found a solution for this problem? Best Regards, Marhamat |
Dear BRUNO:
Thanks so much for your reply, what your mention is right. I attached a different case, which is different with my orginal case because its size is small enough to attach. I will try the case you attached, and give you feedback ASAP. 3X Quote:
|
Greetings to all!
@Marhamat: Quote:
@Xinguang: Quote:
Best regards, Bruno |
Hey Bruno:
Many thanks for your reply and help. I have test in 2.2.0 and it works in this way. However, I found another bug in this case. When I reconstuctPar -lastestTime, and then I decomposePar it Code:
Decomposing mesh region0 Quote:
|
Dear Bruno
Now when I run the attached case "movingCyl1_22x.tar.gz" on OpenFOAM 2.1.1. by using the Code: ./Allrun I get the below error: Code:
*---------------------------------------------------------------------------*\ Marhamt |
By updating my OF version to OF-2.2.0, now I can run the attached case in parallel. but in my own case I get the below error:
Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // so what is the reason of this error? Thanks alot, Marhamat. |
By changing the dynamicMeshDic the problem solved.
Thanks, Marhamat |
1 Attachment(s)
Hi Marhamat and Xinguang,
Marhamat sent me a private message with pretty much the same problem that Xinguang has got right now. The problem is not an easy one to solve and attached is only the first part of the solution, namely a case that should work... but doesn't work because of the broken "libMyPolynomVelocity" library. I'm not sure when I'll be able to look into this library code... I'll try to look at it tomorrow. In the meantime, please study attached case file. And please also study the post from the second link in my signature... namely this one: How to post code using [CODE] Best regards, Bruno |
2 Attachment(s)
Hi Marhamat and Xinguang,
I've finally managed to look at this and make things work. A description of the necessary changes:
---- edit: I had a look at how it would be possible to avoid the need for "preservePatches". From what I can understand, the problem is that the "libMyPolynomVelocity" library does not implement all of the necessary methods and constructors. Compare with the class "sixDoFRigidBodyDisplacementPointPatchVectorFi eld" of the same kind of mesh manipulation: Code:
src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H Best regards, Bruno |
Great.
Thanks alot, Marhamt |
hi.marhamat
i have yhis error too... how you can solve this error::::: [1] --> FOAM FATAL IO ERROR: [1] keyword velocityLaplacianCoeffs is undefined in dictionary "/home/meisam/OpenFOAM/meisam-2.2.0/run/gearMain/gearMove/processor1/constant/dynamicMeshDict" [1] file: /home/meisam/OpenFOAM/meisam-2.2.0/run/gearMain/gearMove/processor1/constant/dynamicMeshDict from line 0 to line 0. [1] [1] From function dictionary::subDict(const word& keyword) const [1] in file db/dictionary/dictionary.C at line 608. please help me immediately... best regards |
Greetings Meisam,
I can't find any indication that "velocityLaplacianCoeffs" exists. But what I can tell you from the case "movingCone" that was discussed in this thread, uses the following "constant/dynamicMeshDict" content: Code:
FoamFile Best regards, Bruno |
Good evening guys.
I am currently working on the library developed by E.Helgason at Chalmers in 2009 (the one Xinguang Cui has uploaded in post #6) and I've encountered the exact same problem shown in this thread. The library itself works well until one wants to run it on parallel. In fact, the utility 'decomposePar' runs fine only the very first time, while it fails the following decomposition procedure for the same reason highlighted at the beginning of this thread. I have personally modified it like has been suggested by B.Santos but I've got no improvements. Later on, I've used the library fixed by Bruno himself and I have experienced the same problem. Here below the message which appears into the log.decomposePar file: --> FOAM FATAL IO ERROR: size 0 is not equal to the given value of 121 file: /home/gennaro/Desktop/DynMesh/Santos_PatchDeform/movingCyl1_22x_v3/0.08/pointMotionU::boundaryField::cubeY from line 47 to line 57. From function Field<Type>::Field(const word& keyword, const dictionary&, const label) in file /home/gennaro/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/Field.C at line 236. Since this thread stops here, I assume that the edits actually have worked for somebody. I'm using OF.2.1.1, is that an issue? I will appreciate any help or hint from people who has worked this thing out. Best regards |
Greetings desmoge,
My guess is that you did not restart the case from time "0". If I remember correctly, the problem for the parallel case was that the original boundary condition class was not able to do a proper parameter writing of the parameters it needs. Consequently, it goes bonkers when it doesn't see the parameters it didn't write in the first place :rolleyes:. You can confirm this hypothesis, by comparing the settings you defined for the patch+field in the time snapshot "0", with the one at "0.08". If I'm not mistaken, you will see in "0/pointMotionU" this: Code:
cubeY Code:
cubeY Best regards, Bruno |
First of all I thank you Bruno for replying to me.
Yes, the problem with the library is exactly the one you have described. In time folders different than 0, it does not write back the parameters it needs to restart the simulation. The way I have overcome this issue is to decompose the domain just once at the very beginning. Later on, I just reconstruct the domain (without deleting the processor folders) and restart the simulation from the latest time-step. Before encountering problems with this library, I used to delete the processor folders every time after the domain reconstruction and decompose it again at every simulation restart. Best regards |
Quote:
|
Yes, that happens to me when I use yours.
So what I did was just to make the edits you have suggested on the original one: 1) I added the "processor" block to the file "pointMotionU" 2) "preservePatches" into decomposeParDict, so that the patches that use "libMyPolynomVelocity" will not be broken between processors. and then run it in the way I've described above. |
That's very, very strange!
Are you certain that you ran: Code:
wmake libso In addition, are you certain that only 1 version of that library exists? To check this, run these commands: Code:
ls -l $FOAM_USER_LIBBIN/*Polynom* |
All times are GMT -4. The time now is 18:42. |