|
[Sponsors] |
![]() |
![]() |
#1 |
Senior Member
|
Hello all,
I've sucessfully used GGI and AMI in the past to simulate a rotating part within a fixed domain. Now, I want to know if it is possible to have a rotating mesh embed within another rotating mesh. Has anyone achieved this? Thanks -Louis |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Member
Join Date: Apr 2009
Posts: 36
Rep Power: 17 ![]() |
Wow, I was actually getting ready to post the same question. I have looked through the mixer2d tutorials in pimpleDyMFoam and think I have a decent grasp of what's going on there. However, I am hoping to be able to "nest" a rotating zone within another.
|
|
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
|
For those wondering if it works, yes it does. I had to do a tiny C++ modification to ensure that the origin of the internal AMI zone rotates with the external one and voilà.
-Louis |
|
![]() |
![]() |
![]() |
![]() |
#4 |
Member
Join Date: Apr 2009
Posts: 36
Rep Power: 17 ![]() |
Would you mind attaching a case zipped up?
|
|
![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
|
The project is confidential so I can't put all the data online, but it should be fairly easy to replicate.
In my case I modified oscillatingRotatingMotion.C as such, Code:
Foam::solidBodyMotionFunctions::oscillatingRotatingMotion:: transformation() const { scalar t = time_.value(); vector eulerAngles = amplitude_*sin(omega_*t); // Convert the rotational motion from deg to rad eulerAngles *= pi/180.0; scalar omegaBlop_ = 73.304; // outter AMI zone info scalar originBlop_ = 3.048; scalar radBlop_ = 0.6096; scalar omgOffsetBlop = pi/2; // offset from the right hand axis when simulation starts vector blop_ = vector (originBlop_+radBlop_*cos(omegaBlop_*t + omgOffsetBlop), originBlop_+radBlop_*sin(omegaBlop_*t + omgOffsetBlop), 0); // Info<< "LOUIS: " << blop_ << endl; quaternion R(eulerAngles.x(), eulerAngles.y(), eulerAngles.z()); // septernion TR(septernion(origin_)*R*septernion(-origin_)); septernion TR(septernion(blop_)*R*septernion(-blop_)); Info<< "solidBodyMotionFunctions::oscillatingRotatingMotion::" << "transformation(): " << "Time = " << t << " transformation: " << TR << endl; |
|
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
|
here is the code for OpenFoam 2.3.x, copy in your user folder and
Code:
wmake libso |
|
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
|
Along with a test case from which I removed the confidential data... You will need to change the foil U boundary condition because it is a one I've coded myself...
http://ecbiz103.inmotionhosting.com/...leEmbedAMI.zip any feedback is welcome ! |
|
![]() |
![]() |
![]() |
![]() |
#8 |
Member
Diego Angeli
Join Date: Mar 2009
Posts: 31
Rep Power: 17 ![]() |
Hi Louis,
here Diego from UNIMORE. We don't know each other but I think we will soon I just downloaded your myOscillatingRotatingMotion and the test case, thanks for sharing and congratulations for the nice work. If it's ok for you I will try to use them on a similar case as yours, for CROP.. I'll let you know ASAP how are we faring on that. Regards |
|
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
|
Hello Diego,
It will be a pleasure to collaborate with you. Please use this thread to communicate with me so that everyone can follow. Obviously we'll have to avoid confidential project data. Regards, -Louis |
|
![]() |
![]() |
![]() |
![]() |
#10 |
Member
Diego Angeli
Join Date: Mar 2009
Posts: 31
Rep Power: 17 ![]() |
Hi Louis,
thanks for the support. So, Andrea and me managed to reproduce a moving mesh analogous to your case, starting from a mesh generated from us with another meshing tool. The workflow is ok on the mesh side. Now we should work on the boundary condition for U on the foils, then maybe we will come back to you to agree on the case setup. Best regards |
|
![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
|
The link for the test case I had posted above is broken. Please use the following instead: louisgagnon.com/temporaire/exampleEmbedAMI.zip
-Louis |
|
![]() |
![]() |
![]() |
![]() |
#12 |
Member
Gareth
Join Date: Jun 2010
Posts: 56
Rep Power: 16 ![]() |
Hi Louis
from what i read in this thread i think i am trying to achieve the same thing. I am trying to implement you test case and have compiled your libmyDynamicFvMesh.so However when i run the case it is trying to load "libmyFiniteVolume.so", to allow for the definition of your foils as patch type myMovingWallSlip. Can you explain your modification in the making of this patch type of supply files for the wmake of the latter .so ? Regards |
|
![]() |
![]() |
![]() |
![]() |
#13 |
Senior Member
|
Hi Gareth,
I choose to use a boundary condition that imposes a slip and respects the moving wall velocity for my simulation: http://www.cfd-online.com/Forums/ope...tml#post509989 You can use another boundary condition if you prefer... Regards, -Louis |
|
![]() |
![]() |
![]() |
![]() |
#14 |
Member
Gareth
Join Date: Jun 2010
Posts: 56
Rep Power: 16 ![]() |
Hi Louis
Thanks for the info and explanation. I was trying to run the code as is, with minimal alterations. But i get what you mean by a different BC. ![]() Thanks again for the code. Kinda what i needed, but definitely a step in the right direction. Regards |
|
![]() |
![]() |
![]() |
![]() |
#15 |
Senior Member
|
Dear Everyone,
I've created a GitHub repository with the updated version of the code and test case for OpenFOAM-4.x https://github.com/louisgag/OpenFOAM-embedded-AMI Enjoy, -Louis |
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Dynamic Mesh on Pintle type injector. | herntan | FLUENT | 16 | September 4, 2020 08:27 |
pls help. mesh collapsed with dynamic mesh. | wlt_1985 | FLUENT | 2 | May 7, 2020 10:42 |
Dynamic Mesh "Shadow Wall" | thezack | FLUENT | 0 | June 4, 2013 22:09 |
dynamic mesh for drop interface | IndrajitW | FLUENT | 0 | March 30, 2013 08:03 |
dynamic mesh on a hexa grid | Manoj Kumar | FLUENT | 0 | August 21, 2007 07:41 |