|
[Sponsors] |
February 13, 2014, 22:24 |
Rigid Body Mesh Motion + 6DoF
|
#1 |
Member
Join Date: Apr 2009
Posts: 36
Rep Power: 17 |
I've been reading through tutorials and web pages for a couple weeks now and can't figure out how to get this working. It seems that all the tutorials with DoF (e.g. wingMotion [flutter]) are made for small displacements and use the laplacianDisplacement solvers.
Basically, I am looking to do something like: http://www.youtube.com/watch?v=jZwUA_xnces I have seen many many tutorials and examples where the domain motion is a specified rotational velocity, but I'd really like it solved for (with moment of inertia, etc). Preferably in 2.2.x, but at this point I'd be willing to install whatever necessary. If anyone can point me in the right direction (or hell, provide a gzipped case ) of that case I'd be super grateful. |
|
February 18, 2014, 23:12 |
|
#2 |
Member
Join Date: Apr 2009
Posts: 36
Rep Power: 17 |
I've been working off of the mixerVesselAMI2D and wingMotion case. Basically, I'm trying to mix the multi-domain AMI capability of the mixerVessel case with the 6DoF solver from the wingMotion (flutter) case. So, my goal is to change the mixerVessel change from a specified rotor motion to a 6DoF solver (I will find a way to test with initial conditions or through an initial condition)
So, I've changed the dynamicMeshDict Code:
dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ("libfvMotionSolvers.so"); solver displacementLaplacian; displacementLaplacianCoeffs { cellZone rotor; diffusivity inverseDistance (rotor); } So, I then copied over the pointDisplacement from the Airfoil case and basically just changed the "center point" and removed the restraints (springs). I'm currently struggling to rotate just the rotor cellZone. My current pointDisplacement file looks like: Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.2 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class pointVectorField; location "0.01"; object pointDisplacement; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { rotor { type sixDoFRigidBodyDisplacement; mass 22.9; centreOfMass (0 0 0); momentOfInertia (20 20 20); orientation ( 1 0 0 0 1 0 0 0 1 ); velocity (0 0 0); acceleration (0 0 0); angularMomentum (0 0 0.02); torque (0 0 0); rhoName rhoInf; rhoInf 1; g (0 0 0); report on; constraints { maxIterations 500; fixedLine1 { sixDoFRigidBodyMotionConstraint fixedLine; tolerance 1e-9; relaxationFactor 0.7; fixedLineCoeffs { refPoint (0 0 0); direction (0 1 0); } } fixedAxis1 { sixDoFRigidBodyMotionConstraint fixedAxis; tolerance 1e-06; relaxationFactor 0.7; fixedAxisCoeffs { axis ( 0 0 1 ); } } } value uniform (0 0 0); // think this is a dummy value } front { type empty; } back { type empty; } stator { type fixedValue; value uniform (0 0 0); } AMI2 { type zeroGradient; //type cyclicAMI; //value uniform (0 0 0); // think this is a dummy value } AMI1 { //type cyclicAMI; type fixedValue; value uniform (0 0 0); // think this is a dummy value } } // ************************************************************************* // Any suggestions? Last edited by minger; February 18, 2014 at 23:17. Reason: i have it ... semi-working |
|
February 20, 2014, 21:26 |
|
#3 |
Member
Join Date: Apr 2009
Posts: 36
Rep Power: 17 |
So I was able to fix my problem with the outside rotating. You need to create a pointZoneSet (I used the setSet utility to do it interactively rather than topoSet). Then you simply specify a "frozenPointZone"
However, the issue now is that the AMI is "breaking apart". The fvMeshSolver is still solving the displacement at each point as a function of the closest rotor point. I feel that I'm going about this the wrong way. Can I simply specify the entire rotor cellZoneSet in the pointDisplacement library? or something like that ... |
|
March 1, 2014, 17:55 |
|
#4 |
Member
Join Date: Apr 2009
Posts: 36
Rep Power: 17 |
Goodness, it appears 1 day after I posted my original message they released OF 2.3 which allows solid body motion. (face palm) See below from release notes:
Code:
dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ("libsixDoFRigidBodyMotion.so"); solver sixDoFRigidBodyMotion; sixDoFRigidBodyMotionCoeffs { patches (hull); innerDistance 0.3; // Extent of the solid-body motion region around body outerDistance 1; // Extent of mesh-morphing region around body centreOfMass (2.929541 0 0.2); mass 412.73; momentOfInertia (40 921 921); rhoInf 1; report on; accelerationRelaxation 0.3; value uniform (0 0 0); constraints { ... |
|
March 14, 2014, 04:33 |
|
#5 |
New Member
Cyril
Join Date: Mar 2014
Posts: 5
Rep Power: 12 |
Hello minger,
can you tell us if you finally managed to move your mixer with the solid body motion? I am also interesting in the rotating motion without the AMI method. Regards Cyril |
|
April 2, 2014, 00:22 |
|
#6 |
Member
Join Date: Apr 2009
Posts: 36
Rep Power: 17 |
OK, so I may have something working. Cyril, to address something you said, there is still AMI interfaces. We still need to communicate between the rotating and stationary zones, and the AMI handles that.
The main difference is that they rolled in a few dynamicFvMesh solver which allows the rigidbodymotion. Here is an image 0.3 s into my simulation which appears to be chugging along (mesh displacement shown first, and velocity shown second) mesh_displacement.jpg rigid_test_U.jpg rigid_test_U_2.jpg Here are the highlights for getting it working
https://drive.google.com/file/d/0B2c...it?usp=sharing |
|
April 9, 2014, 17:12 |
|
#7 | |
Senior Member
|
Quote:
Thank you very much for you detailed information about your case and your sharing. It was all wonderful. I want to ask you one more favor. If it is possible please tell me about the commands you have ran step by step to achieve this. Thank you, Mojtaba.
__________________
Learn OpenFOAM in Persian SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member Complex Heat & Flow Simulation Research Group If you can't explain it simply, you don't understand it well enough. "Richard Feynman" |
||
April 9, 2014, 22:30 |
|
#8 |
Member
Join Date: Apr 2009
Posts: 36
Rep Power: 17 |
I mean, there weren't any specific commands. I meshed the geometry in ICEM, so needed to run fluent3DMeshToFoam to convert the .msh file into an OpenFOAM polymesh. After that, I'm simply running pimplyDyMFoam. The case set up does all the work. If you download the case and simply run that solver, it should iterate!
|
|
April 10, 2014, 07:17 |
|
#9 | |
Senior Member
|
Quote:
Yea that's right. Can you please have a look at this thread: http://www.cfd-online.com/Forums/ope...free-body.html Beside the problem I have mentioned above, I have some serious problem in converging the solution.
__________________
Learn OpenFOAM in Persian SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member Complex Heat & Flow Simulation Research Group If you can't explain it simply, you don't understand it well enough. "Richard Feynman" |
||
June 5, 2014, 12:09 |
|
#10 |
Senior Member
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 14 |
Dear minger,
many thanks for all that valuable information. Could I apply what you posted for vortex induced vibration for circular cylinder? Is it helpful for my cylinder case? |
|
October 20, 2014, 22:48 |
|
#11 |
Member
Join Date: Mar 2009
Location: adelaide, SA, Australia
Posts: 32
Rep Power: 17 |
Dear Maimouna,
I think for VIV of a flow past a circular cylinder is more simple. First, define the moving patch (i.e., circular) at the dynamicMeshDict and at pointDisplacement defines the moving patch as 'calculated' type boundary condition. But Minger may have better suggestion. Cheers -mali-
__________________
mali |
|
October 21, 2014, 06:48 |
|
#12 | ||
Senior Member
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 14 |
Dear Mali'
many thanks for you post. I'm applying VIV in OF-2.2.2, so if you could please check dynamicMeshDict file and pointDisplacement file, it would be really grateful. In my case, dynamicMeshDict and pointDisplacement files are below respectively Quote:
Quote:
Maimouna |
|||
October 21, 2014, 07:12 |
|
#13 |
Member
Join Date: Mar 2009
Location: adelaide, SA, Australia
Posts: 32
Rep Power: 17 |
Dear Maimouna,
I don't have the chance to try the file that you posted yet. But, below is the file that I'm using to simulate the VIV problem. I'm also using OpenFOAM 2.2. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { square { type sixDoFRigidBodyDisplacement; mass 584.6; centreOfMass (0 0 0.5); momentOfInertia (97.7 97.7 97.7); orientation //22.5degree ( 1 0 0 0 1 0 0 0 1 ); velocity (0 0 0); acceleration (0 0 0); angularMomentum (0 0 0); torque (0 0 0); rhoName rhoInf; rhoInf 1; g (0 0 0); report on; constraints { maxIterations 500; fixedLine1 { sixDoFRigidBodyMotionConstraint fixedLine; tolerance 1e-9; relaxationFactor 0.1; fixedLineCoeffs { refPoint (0 0 0); direction (0 1 0); } } fixedAxis1 { sixDoFRigidBodyMotionConstraint fixedAxis; tolerance 1e-06; relaxationFactor 0.7; fixedAxisCoeffs { axis ( 0 0 1); } } } restraints { verticalSpring { sixDoFRigidBodyMotionRestraint linearSpring; linearSpringCoeffs { anchor (0 0 0.5); refAttachmentPt (0 0 0.5); stiffness 23079.1; damping 34.89; restLength 0; } } axialSpring { sixDoFRigidBodyMotionRestraint linearAxialAngularSpring; linearAxialAngularSpringCoeffs { axis (0 0 1); stiffness 100000; damping 100; referenceOrientation $orientation; } } } value uniform (0 0 0); } inlet { type fixedValue; value uniform (0 0 0); } outlet { type fixedValue; value uniform (0 0 0); } front { type empty; } back { type empty; } } // ************************************************** *********************** //
__________________
mali |
|
October 21, 2014, 09:48 |
|
#14 |
Senior Member
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 14 |
Dear Mali,
many thanks for your previous post. When I applied what you posted in my case, I couldn't figure out any motion on the cylinder. Why? Could you figure out any motion in your case? Many thanks in advanced. Maimouna |
|
February 18, 2015, 11:41 |
|
#15 |
New Member
Join Date: Feb 2015
Posts: 2
Rep Power: 0 |
Dear Minger,
I'm working with a system like your test case: a rotating device in water. I have a problem. If I try to define a torque at the shaft of the device, It seems that the value imposed is only an initial condition value. If I extract a report of moment applied to the device the torque imposed don't have effect. Do you have tested a similar case with a constant resistance to the motion? Many thanks in advanced. |
|
April 11, 2019, 04:59 |
|
#16 | |
Member
X Meng
Join Date: Jun 2012
Location: Scotland
Posts: 89
Rep Power: 14 |
Quote:
It seems not possible in 'dynamicMeshDict'?? I tried 'torque (x x x)' entry but it didn't work. I know it is possible to use a spring or a damper but they seem not ok to provide a constant value. Cheers |
||
March 13, 2021, 13:25 |
Mass property
|
#17 |
Member
Deutschland
Join Date: Sep 2020
Posts: 69
Rep Power: 6 |
Hey,
I am trying to simulate a ship flow. I have few questions regarding dynamic mesh. Hope someone can help. Its urgent 1: why is the rhoInf in the dynamic mesh 1. should it not be the density of the ship (mass/volume). I have the weight for my geometry (77 kg) and I got the volume using the Solidwork. 2. The moment of inerta. there are 3 moment of inertia a. Principal axes of inertia and principal moments of inertia: ( kilograms * square meters ) Taken at the center of mass. b.Moments of inertia: ( kilograms * square meters )Taken at the center of mass and aligned with the output coordinate system c. Moments of inertia: ( kilograms * square meters ) Taken at the output coordinate system. My guess for the moment of inertia was about the center of mass since that is what asked in the dynamic mesh. Bot I try to clarify it using Solidwork, I am not getting the same moment of inertia nor mass using the rhoInf as 1 so I tried to find the density using the mass in the dynamicMeah and the volume I got from the software. But I still don't have answers Please please help. I am lost and out of ideas Kind regards vava10 |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Update of the variables after dynamic mesh motion. | gtg258f | OpenFOAM Programming & Development | 9 | January 18, 2014 11:08 |
new workstation for running 5 Million size mesh on CFX with rigid body solver | aks | Hardware | 5 | August 20, 2013 08:12 |
Rigid body motion + Boundary Layer | Manoj Kumar | FLUENT | 4 | May 26, 2012 11:34 |
Fixed mesh method for rigid body motion | philippose | OpenFOAM | 1 | January 12, 2009 05:57 |
Dynamic Mesh : rigid body +deforming boundary | amcfd | FLUENT | 1 | September 4, 2007 08:01 |