|
[Sponsors] |
2DOF Planning hull resistance study with overset |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 9, 2020, 05:37 |
2DOF Planning hull resistance study with overset
|
#1 |
New Member
Jim
Join Date: Dec 2019
Posts: 2
Rep Power: 0 |
Hi all,
I'm simulating a planning hull (model length ~ 2.4 m, weight 44 kg (half hull)) with heave and pitch DOFs using overset and interdymfoam (OpenFOAM V1906). The flow speed at inlet is 12 m/s. The simulation time is set to around in total 10s. The setup of the boundary conditions and numerical setups were referred to the 'DTCHull' tutorial and the 'sphereSplashSend' tutorial on Wiki, respectively. The mesh can be seen in the attachment. A very coarse mesh (152205 cells for background, and 55972 cells for overset, all generated using snappyhexmesh) due to the simulation runs on a 6 cores i7 laptop. The boundary layers are NOT added, which is definitely wrong so far. I tried to generate 3 boundary layers and ran the simulation. It was too slow on laptop, especially for the mesh update (~ 40s per time step), so that it was abandoned. However, in the current simulation, the k-omega-SST turbulence model is still used. I'm expecting the hull will eventually stabilize itself with a constant pitch angle and sinkage with respect to the water. However, simulation results show that the hull keeps pitching and heaving periodically, so as the vertical and drag forces. The forces can be seen in the attachment. My questions are: 1. Are the boundary conditions and numerical setups correct? If not, what other boundary conditions should be used instead? 2. Do the lack of boundary layers and the low mesh resolution cause the hull's periodical pitch and heave motion? How many added boundary layers are recommended when wall function is used? 3. Can force ramp function be used in Openfoam V1906? Maybe the simulation can be improved by scaling down the very large initial forces? 4. What would be the values for accelerationRelaxation and accelerationDamping? Currently both are set to 1. Thank you guys! Boundary conditions: U: Umean 12; mUmean -12; dimensions [0 1 -1 0 0 0 0]; internalField uniform ($mUmean 0 0); boundaryField { #includeEtc "caseDicts/setConstraintTypes" overset { type overset; } hull { type movingWallVelocity; value uniform (0 0 0); } inlet { type fixedValue; value $internalField; } outlet { type zeroGradient; } atmosphere { type pressureInletOutletVelocity; value uniform (0 0 0); } bottom { type symmetryPlane; } side { type symmetryPlane; } midPlane { type symmetryPlane; } midPlaneSM { type symmetryPlane; } } p_rgh: dimensions [1 -1 -2 0 0 0 0]; internalField uniform 0; boundaryField { #includeEtc "caseDicts/setConstraintTypes" overset { type overset; } hull { type fixedFluxPressure; value $internalField; } inlet { type fixedFluxPressure; value $internalField; } outlet { type zeroGradient; } atmosphere { type totalPressure; p0 uniform 0; U U; phi phi; rho rho; psi none; gamma 1; value uniform 0; } bottom { type symmetryPlane; } side { type symmetryPlane; } midPlane { type symmetryPlane; } midPlaneSM { type symmetryPlane; } } alpha_water: dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { #includeEtc "caseDicts/setConstraintTypes" overset { type overset; } hull { type zeroGradient; } inlet { type fixedValue; value $internalField; } outlet { type variableHeightFlowRate; lowerBound 0; upperBound 1; value $internalField; } atmosphere { type inletOutlet; inletValue $internalField; value $internalField; } bottom { type symmetryPlane; } side { type symmetryPlane; } midPlane { type symmetryPlane; } midPlaneSM { type symmetryPlane; } } pointDisplacement: dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { overset { patchType overset; type zeroGradient; } hull { type calculated; value uniform (0 0 0); } ".*" { type fixedValue; value uniform (0 0 0); } } k: dimensions [0 2 -2 0 0 0 0]; internalField uniform 0.0081; boundaryField { #includeEtc "caseDicts/setConstraintTypes" overset { type overset; } hull { type kqRWallFunction; value $internalField; } inlet { type fixedValue; value $internalField; } outlet { type zeroGradient; } atmosphere { type inletOutlet; inletValue $internalField; value $internalField; } bottom { type symmetryPlane; } side { type symmetryPlane; } midPlane { type symmetryPlane; } midPlaneSM { type symmetryPlane; } } nut: dimensions [0 2 -1 0 0 0 0]; internalField uniform 5e-07; boundaryField { #includeEtc "caseDicts/setConstraintTypes" overset { type overset; } hull { type nutkWallFunction; value $internalField; } inlet { type fixedValue; value $internalField; } outlet { type zeroGradient; } atmosphere { type zeroGradient; } bottom { type symmetryPlane; } side { type symmetryPlane; } midPlane { type symmetryPlane; } midPlaneSM { type symmetryPlane; } } omega: dimensions [0 0 -1 0 0 0 0]; internalField uniform 1.8672; boundaryField { #includeEtc "caseDicts/setConstraintTypes" overset { type overset; } hull { type omegaWallFunction; value $internalField; } inlet { type fixedValue; value $internalField; } outlet { type zeroGradient; } atmosphere { type inletOutlet; inletValue $internalField; value $internalField; } bottom { type symmetryPlane; } side { type symmetryPlane; } midPlane { type symmetryPlane; } midPlaneSM { type symmetryPlane; } } The dynamicMeshDict, fvSchemes and fvSolution are: dynamicMeshDict: motionSolverLibs ( "libsixDoFRigidBodyMotion.so" ); dynamicFvMesh dynamicOversetFvMesh; dynamicOversetFvMeshCoeffs { } solver sixDoFRigidBodyMotion; sixDoFRigidBodyMotionCoeffs { patches (hull); innerDistance 200; outerDistance 201; velocity ( 0 0 0 ); accelerationRelaxation 1; accelerationDamping 1; mass 44; centreOfMass (0.8791 0 0.0522); momentOfInertia (7.5 40 40); report on; reportToFile on; solver { type Newmark; } constraints { zAxis { sixDoFRigidBodyMotionConstraint line; direction (0 0 1); } yPlane { sixDoFRigidBodyMotionConstraint axis; axis (0 1 0); } } fvSchemes: ddtSchemes { default Euler; } gradSchemes { default cellMDLimited Gauss linear 0; grad(U) cellMDLimited Gauss linear 0.333; } divSchemes { div(rhoPhi,U) Gauss linearUpwind grad(U); div(U) Gauss linear; div(phi,alpha) Gauss vanLeer; div(phirb,alpha) Gauss linear; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; div(phi,k) Gauss upwind; div(phi,omega) Gauss upwind; } laplacianSchemes { default Gauss linear limited 1.0; } interpolationSchemes { default linear; } snGradSchemes { default limited 1.0; } oversetInterpolation { method inverseDistance; } oversetInterpolationSuppressed { grad(p_rgh); surfaceIntegrate(phiHbyA); } fluxRequired { default no; p_rgh; pcorr; alpha.water; } wallDist { method meshWave; } fvSolution: solvers { "alpha.water.*" { nAlphaCorr 3; nAlphaSubCycles 2; cAlpha 1; icAlpha 0; MULESCorr yes; nLimiterIter 5; alphaApplyPrevCorr no; solver smoothSolver; smoother symGaussSeidel; tolerance 1e-8; relTol 0; } cellDisplacement { solver PCG; preconditioner DIC; tolerance 1e-06; relTol 0; } p_rgh { solver PBiCGStab; preconditioner DILU; tolerance 1e-5; relTol 0.01; } p_rghFinal { solver PBiCGStab; preconditioner DILU; tolerance 1e-7; relTol 0; } pcorr { $pFinal; solver PCG; preconditioner DIC; tolerance 1e-7; relTol 0.01; } pcorrFinal { $pcorr; tolerance 1e-7; relTol 0; } "(U|k|omega)" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-6; relTol 0.01; } "(U|k|omega)Final" { $U; tolerance 1e-6; relTol 0; } } PIMPLE { momentumPredictor true; correctPhi false; nOuterCorrectors 10; nCorrectors 3; nNonOrthogonalCorrectors 2; massFluxInterpolation false; ddtCorr true; turbOnFinalIterOnly false; moveMeshOuterCorrectors false; checkMeshCourantNo true; residualControl { p_rgh { tolerance 1e-5; relTol 0; } } } relaxationFactors { fields { p 1; } equations { "(U|k|omega)" 1; ".*Final" 1.0; } } Last edited by CFD_fan; March 9, 2020 at 07:02. Reason: Make the text nicer |
|
September 30, 2020, 16:02 |
|
#2 |
New Member
Serge
Join Date: Nov 2019
Posts: 22
Rep Power: 7 |
Hi, Jim!
Have your got any answers on your questions? It's very interesting to know for me... With best regards, Serge |
|
February 2, 2021, 08:29 |
Example Files
|
#3 |
New Member
Join Date: Oct 2014
Location: Lafayette, LA
Posts: 18
Rep Power: 12 |
Hi would you happen to be able to post the files associated with this? I've been trying to get overset meshing to work with ship hulls for a few months with no success. I think a working example would help me a ton if you can share.
|
|
February 9, 2021, 09:13 |
|
#4 |
New Member
|
Hi CFD FAN could you please help me in solving planning hull with this technique?
please send me an email to info@numitalia.com regards max |
|
February 13, 2021, 03:08 |
|
#5 |
New Member
Sasan Tavakoli
Join Date: Sep 2018
Posts: 12
Rep Power: 8 |
Hi CFD Fan.
When you're solving a planing problem you should be very careful about the longitudinal center of gravity. What I see over here is much more similar to porpoising problem, which is quite often in planing motion. Are you reproducing steady performance of a specific design? |
|
February 15, 2021, 11:14 |
|
#6 |
New Member
Kayhan
Join Date: Jun 2014
Posts: 8
Rep Power: 12 |
Hello,
I have been working on a similar case. Since you have been using the PIMPLE algorithm, you can add residual controls with good under-relaxation factors and a high Courant number. This will accelerate your solution, and you will avoid an oscillatory force graph. And be sure the mesh has a good quality. And avoid overestimating the turbulence kinetic energy by using a new feature of OpenFOAM. |
|
March 6, 2021, 15:29 |
half geometry
|
#7 |
Member
Deutschland
Join Date: Sep 2020
Posts: 69
Rep Power: 6 |
Hey,
I am simulating a ship. Due to symmetry I am only working with half of the geometry. for Dynamic mesh I have following doubts 1. centre of mass - the centre of half or full geometry 2. moment of inertia -moment of inertia of half geometry or (moment of inertia of full geometry)/2 Thanks in advance vava10 |
|
July 13, 2021, 06:03 |
|
#8 |
New Member
Shamjad
Join Date: Aug 2020
Location: India
Posts: 2
Rep Power: 0 |
Hii...vava10
you can refer the DTCHullMoving and can identify the center of mass and MOI are as follows: 1. Center of mass of full geometry 2. Moment of inertia of full geometry |
|
Tags |
interdymfoam, mesh, openfoam, overset, planning hull |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Multiphase Simulation of 26ft planning hull | lucasiervolino | FLUENT | 0 | September 27, 2015 18:54 |
How to output the water resistance on a Ship hull | Sachin m | OpenFOAM Post-Processing | 1 | January 26, 2015 13:24 |
Total Resistance of Hull in Calm Water | PeiSan | Fidelity CFD | 0 | July 17, 2014 05:52 |
Help needed to calculate the resistance of a ship's hull | vmak | CFX | 3 | May 12, 2013 20:15 |
hull resistance | Mirco | CFX | 0 | April 6, 2007 12:05 |