Immersed Boundary Method in OpenFOAM-3.1-ext
I am experiencing with the implementation of IBM in OpenFOAM. I am working with simpleIbFoam. It would be great if this method could be implemented in the future version of OpenFOAM ext by default as it is a very powerful method. However, I did not find the currrent implementation robust enough yet. My case terminates after a couple of iterations without any warning or any error message so I dont rally know where the problem is!!! My only gauss is that it has something to do with the "k" equation!
this is a small part of my log file: Code:
Time = 6 I tried to use bounded schemes for k and omega in fvSchemes but it seems that it does not recognize bounded scheme ! I would really appreciate if somebody can help. Thank you ---------------- Moderator note: This specific topic was later discussed here in more detail: http://www.cfd-online.com/Forums/ope...m-1-6-ext.html The remaining thread is on the topic of porting to foam-extend 3.1 |
Immersed Boundary Method in OpenFOAM-3.1-ext
Has anyone ported the Immersed Boundary Method developed by ZeljkoTukovic and Professor Jasak in OpenFOAM-1.6-ext to foam-extend-3.1 yet?
I tried to compile the source codes but it gives me an error in the middle of the process. Is it possible at all to port that source code to the new Extend project? This is the message I received: Code:
./Allwmake |
Quote:
You have got to be more specific. These are not enough information to help :). What problem are you solving right now? Are all implemented tutorials running fine? Are you using OF1.6-ext? I just started working with this method, and tutorials are running just fine, not facing any problems yet. Best. |
Dear Mojtaba,
Yes all the tutorials that were provided are running smoothly. That was all the information I had! Well but to explain it more, I am trying to see if this method can be used to simulate the flow over complex geometry such as Vortex Generators. Therefore, I used simpleIbFoam to solve my problem. In addition I used upwind schemes for k and omega to ensure boundedness of the solution. After working a couple of days with the ext-1.6 version I would say that this problem has something to do with the desensitization schemes in ext-1.6. I found that convective schemes cannot be discretized in this version like openFoam 2.2.0 or later versions. More pacifically, "Bounded" schemes were not developed as they are today in that version. BTW, I manage to remove the bounding "k" and "omega" message by using "bounded" scheme for surface normal gradient. Now I am trying to to see if this method can be used in parallel. According to this presentation seems like parallelization has not been implemented in this method yet. (why exactly?) Also it would be great if anybody who has successfully ported those source file to new versions of OpenFOAM could share his/her experience here. |
IBM implementation in foam-extend
I also get similar messages during compilation of libraries, e.g.
Code:
SOURCE=immersedBoundaryForces.C ; g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-200 -I/opt/foam/foam-extend-3.1/src/finiteVolume/lnInclude -I/opt/foam/foam-extend-3.1/src/postProcessing/functionObjects/forces/lnInclude -I/opt/foam/foam-extend-3.1/src/surfMesh/lnInclude -I/opt/foam/foam-extend-3.1/src/triSurface/lnInclude -I/opt/foam/foam-extend-3.1/src/meshTools/lnInclude -I/opt/foam/foam-extend-3.1/src/sampling/lnInclude -I../immersedBoundary/lnInclude -IlnInclude -I. -I/opt/foam/foam-extend-3.1/src/foam/lnInclude -I/opt/foam/foam-extend-3.1/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/immersedBoundaryForces.o |
Dear Milad,
Compiling OpenFOAM 1.6-extended source code in foam-extended 3.1 is possible but it would need too much effort to do this. Why don't you use OF 1.6? Best. |
Greetings to all!
I've created a new branch "fe31" for building ImmersedBoundary with foam-extend 3.1. For more instructions: http://openfoamwiki.net/index.php/Ex...oam-extend_3.1 I only did some quick testing and file adjustments in the tutorials. Please let me know if is there a tutorial which is not working properly. Best regards, Bruno |
Immersed boundary in foam-extend 3.1
Thanks a lot for fe31 fork of IB toolkit. I have a small query based on icoIbFoam in fe31 and master forks. The following statements are missing from fe31 fork:
UEqn.boundaryManipulate(U.boundaryField());I am not sure how it will affect the velocity and pressure field solutions. Deletion of these lines is likely to affect IB modifications in the system matrix, and hence, the overall solution process. |
Hi singhfme,
I only removed those lines because I found the following commit in foam-extend 3.1's git history: http://sourceforge.net/p/openfoam-ex...2e8036b5248244 More specifically:
In addition, you can see online all of the changes I made in the branch "fe31": https://github.com/wyldckat/Immersed...y/commits/fe31 - there you'll see one comment referring to the commit I've mentioned above. But as I mentioned in the previous post, I only did the port and some basic testing, I did not go through all of the necessary validation steps. Best regards, Bruno |
For the record: we will release the latest version of immersed boundary in foam-extend-3.2
Hrv |
Quote:
Thanks a lot for your kind clarification. I would try some validation runs with foam-extend-3.1. Best regards, Krishna |
Quote:
Thanks a lot for the info. I am eagerly awaiting the new version of IBM. Any hint on possible date of release? With best regards, Krishna |
Quote:
|
I have a problem with the current implementation into 1.6-ext ( i suppose the same problem will be in 3.1-ext).
It seems like when the stl has several surfaces ( maybe perpendicular between them), sometimes IB does not know how to deal with it. http://www.cfd-online.com/Forums/ope...tml#post514322 Mi first approach, that does not work yet, is only a stl were I have the tower and the nacelle of a wind turbine. The solver does not run: Can`t find nearest triSurface point for cell 3644, (x y z) My second step will be to see if vortex generators can be modeled in this way ( counterrotating maybe), so please miladrakhsha keep us informed. |
Dear Bruno,
I also did some quick testing in the tutorials_HJ/sphereInChannel with OF3.1. Everything worked well but failed in parallel. Here is my log for decomposePar command. Code:
Build : 3.1 Code:
Build : 3.1 Sorry for a long text. Have you any idea about these problems? Thank you. |
The parallel implementation of the Immersed Boundary Method with FOAM-Extend-3.1 runs fine and we have tutorials to prove it.
My guess is that you are looking at user error. Are you sure you are doing everything right? If not, all I can offer you would be under a support contract. Alternatively, since you have access to the full source code so please have a look where you got out-of-order parallel comms. This would happen eg. if you have removed the ibm patch from one of the processors or generally messed with the decomposition. Hrv |
Dear Professor Jasak,
Thank you for your quick reply. I got the codes from https://github.com/wyldckat/ImmersedBoundary and compiled in my Ubuntu 14.04 FOAM-extend 3.1.Everything worked well but failed in parallel. So I think I am doing everything right. I do some test to find where the problem is. I use 2 processors to output messages about immersedBoundaryFvPatchField member function and (*this) field name. Below is the log file. Crash at the first time step. Is it possible to send me a copy tutorial that you have run it fine in parallel? Maybe the cases downloaded from https://github.com/wyldckat/ImmersedBoundary have some problem. Here is my email: panjunhua13@mails.ucas.ac.cn here is the icoIbFoam.log for tutorials_HJ/sphereInChannel case. Code:
Build : 3.1-f77b4801a214 |
Hi Hua,
this error rings a bell to me: Code:
[pjh-Veriton-D832:8321] *** An error occurred in MPI_Recv Edit $WM_PROJECT_DIR/etc/controlDict and change commsType to nonBlocking . You should try and see if this helps with your problem. Best, Pablo |
Dear Higuera,
Thank you for your help. Your method is work for me!!! But I still have some questions. 1. There 3 types about commsType : blocking; scheduled ; nonBlocking. What is the difference between them? 2. some codes like below are included in my codes // Parallel data exchange { IPstream fromProc ( Pstream::blocking, procI, sizeof(label) ); fromProc >> sizes[procI]; } we can see " Pstream::blocking". Is it conflicting when change commsType to nonBlocking? BTW, similar problem can be solved by changing commsType to nonBlocking(or blocking) for other parallel problems. (I did some search on cfdonline) |
foam-extend-3.2
Quote:
|
All times are GMT -4. The time now is 20:28. |