|
[Sponsors] | |||||
6DoF with the Laplacian method to realize the deformation in overset |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
|
|
|
#1 |
|
New Member
houzhexing
Join Date: Apr 2022
Posts: 1
Rep Power: 0 ![]() |
When combining sixDoF with the Laplacian method to realize the deformation of a wing within an overset mesh according to a specified equation and moving out of water, only the first layer of mesh has deformation. And the wing in the overset does not move with overset. The deformation is set in the 0/pointDisplacement. The codes are following:
FoamFile { version 2.0; format ascii; class pointVectorField; object pointDisplacement; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { LEFT { type uniformFixedValue; uniformValue (0 0 0); } RIGHT { type uniformFixedValue; uniformValue (0 0 0); } TOP { type uniformFixedValue; uniformValue (0 0 0); } BOTTOM { type uniformFixedValue; uniformValue (0 0 0); } FRONT { type empty; } BACK { type empty; } WING { type codedFixedValue; value uniform (0 0 0); name wingFlexibleDisp; code #{ const scalar t = this->db().time().value(); const pointField& pts = this->patch().localPoints(); vectorField& disp = *this; scalar f = 1.0; // frequency(Hz) scalar a = 0.4; // flexibleA(m) scalar c = 1.0; // chord(m) scalar h = 0.4; // height(m) scalar phi = 1.570795; // rad scalar T = 1.0/f; scalar t_sw = 0.25*T; forAll(disp, i) { scalar y = pts[i].y(); scalar x0 = h/c; scalar x; if (t < t_sw) { x = (t / t_sw) * x0; } else { scalar tp = t-t_sw; x = h*c*cos(2.0*M_PI*f*tp)-(a/c)*y*y*cos(2.0*M_PI*f*tp+phi); } disp[i].x() = x; disp[i].y() = 0.0; disp[i].z() = 0.0; } #}; } FRONTANDBACKOVERSET { type empty; } OVERSET { patchType overset; type zeroGradient; } } // *********// FoamFile { version 2.0; format ascii; class dictionary; object dynamicMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // motionSolverLibs (sixDoFRigidBodyMotion); dynamicFvMesh dynamicOversetFvMesh; solver sixDoFRigidBodyMotion; sixDoFRigidBodyMotionCoeffs { patches (WING); innerDistance 0.0; outerDistance 10.0; centreOfMass (0 -0.3 0.05); velocity (0 3.0 0); rhoSolid 998.2; mass 9.562; g (0 -9.81 0); momentOfInertia (2.26 0.04 2.24); report on; reportToFile on; accelerationRelaxation 1.0; accelerationDamping 0.0; solver { type Newmark; } ) constraints { XOYPlane { type sixDoFRigidBodyMotionConstraint; sixDoFRigidBodyMotionConstraint plane; normal (0 0 1); point (0 0 0); } ZAxisRotation { type sixDoFRigidBodyMotionConstraint; sixDoFRigidBodyMotionConstraint axis; axis (0 0 1); point (0 0 0); } YTranslation { type sixDoFRigidBodyMotionConstraint; sixDoFRigidBodyMotionConstraint line; direction (0 1 0); point (0 0 0); } } forces { gravityCompensation { type constantForce; origin (0 -0.3 0.05); force (0 93.80322 0); } } displacementLaplacianCoeffs { diffusivity inverseDistance (WING); relaxationFactor 0.5; } } // ************************************************** ********************** // |
|
|
|
|
|
![]() |
| Tags |
| deformation, openfoam2406, overset mesh, pointdisplacement, sixdof |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| On the alpha Eqn of VOF method when using Immersed boundary method in OpenFOAM | keepfit | OpenFOAM | 4 | January 31, 2014 15:32 |
| [Gmsh] discretizer - gmshToFoam | Andyjoe | OpenFOAM Meshing & Mesh Conversion | 13 | March 14, 2012 05:35 |
| Code for most powerfull FDV Method | D.S.Nasan | Main CFD Forum | 6 | September 4, 2008 03:08 |
| Runge-Kutta 4rd Order method help for 6DoF in CFD | siw | Main CFD Forum | 0 | August 29, 2008 07:08 |
| Boundary Conditions for LU-SGS Method Based on Overset Grids | Aiming Yang | Main CFD Forum | 1 | April 25, 2000 05:35 |