|
[Sponsors] |
Possible to have both solidBodyMotionFunction rotatingMotion + displacementLaplacian? |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
Senior Member
TWB
Join Date: Mar 2009
Posts: 403
Rep Power: 19 ![]() |
Hi,
I need my body to deform using displacementLaplacian, so mesh will deform according to the body's boundary (no reordering). At the same time, I also want the whole body to pitch up. However, if I use displacementLaplacian for the body deformation and pitch up motion, the mesh quality will deteriorate rapidly due to the large pitching motion. hence, I'm thinking of rotating the entire mesh for the pitch up motion, and using displacementLaplacian for the body deformation. Is it possible to combine it this way? Also, in the relativeMotion tutorial, there is the "solidBodyDisplacementLaplacian". Can I use it to achieve what I want? Thanks. |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
TWB
Join Date: Mar 2009
Posts: 403
Rep Power: 19 ![]() |
After spending some trial and error, I finally managed to get it working.
The wing will be deformed (according to your own preference) using solidBodyDisplacementLaplacian In this example, I use angularOscillatingDisplacement For the full body pitching, the whole grid will pitch up. Hence, grid quality can be preserved much better than simply full mesh deformation. pointDisplacement file Code:
FoamFile { version 2.0; format ascii; class pointVectorField; object pointDisplacement; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { wing { type angularOscillatingDisplacement; axis (0 -1 0); origin (0.03 0 0.235); angle0 0; amplitude 0.7854; //units of rad omega 1.5708; //units of rad/s value uniform (0 0 0); } ".*" { type fixedValue; value uniform (0 0 0); } } Code:
FoamFile { version 2.0; format ascii; class dictionary; location "system"; object dynamicMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dynamicFvMesh dynamicMultiMotionSolverFvMesh; //dynamicMotionSolverFvMesh; // Specification of rotation around centre dynamicMultiMotionSolverFvMeshCoeffs { dualWing1 { cellZone AirfoilZone; // Solve displacement on top of solid-body rotation solver solidBodyDisplacementLaplacian; solidBodyDisplacementLaplacianCoeffs { solidBodyMotionFunction multiMotion; multiMotionCoeffs { rotation_2 { // Apply counter rotation to keep dualWing aligned solidBodyMotionFunction rotatingMotion; rotatingMotionCoeffs { origin (0.00896 -0.04056 0);//(0.4825 0. 0.); axis ( 0 0 1); omega -0.1745; //5.52 rad/s } } } diffusivity quadratic inverseDistance ("wing.*"); } } } Code:
FoamFile { version 2.0; format ascii; class dictionary; object topoSetDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // actions ( { name c0; type cellSet; action new; source regionToCell; insidePoints ((-0.5 1. 0.0)); } ); Code:
FoamFile { version 2.0; format ascii; class dictionary; object topoSetDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // actions ( { name AirfoilZone; type cellZoneSet; action new; source setToCellZone; sourceInfo { set c0; } } ); 1. topoSet 2. topoSet -dict system/topoSetDict_movingZone 3. renumberMesh, pimpleFoam or moveDynamicMesh etc. Hope it helps! |
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Multiple AMI rotations not working | mahtin360 | OpenFOAM Running, Solving & CFD | 4 | January 3, 2021 10:50 |
AMI speed performance | danny123 | OpenFOAM | 21 | October 24, 2020 04:13 |
rotatingMotion: omega too low | kandelabr | OpenFOAM Running, Solving & CFD | 0 | August 23, 2018 07:10 |
rotatingMotion not in foam-extend? | louvel | OpenFOAM | 0 | December 8, 2016 10:05 |
Problem with rotatingMotion OpenFOAM 2.2.2 | Naruto | OpenFOAM Running, Solving & CFD | 7 | November 28, 2013 10:03 |