CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

2DOF Planning hull resistance study with overset

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 9, 2020, 05:37
Exclamation 2DOF Planning hull resistance study with overset
  #1
New Member
 
Jim
Join Date: Dec 2019
Posts: 2
Rep Power: 0
CFD_fan is on a distinguished road
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;
}
}
Attached Images
File Type: jpg Mesh 45 deg 1.jpg (124.1 KB, 28 views)
File Type: jpg Mesh side zoom in 1.jpg (170.5 KB, 28 views)
File Type: jpg Forces first 300 iterations.jpg (41.4 KB, 22 views)
File Type: jpg Forces from the 100th iteration onwards.jpg (59.0 KB, 20 views)
File Type: jpg Residual p_rgh_0.jpg (43.5 KB, 16 views)

Last edited by CFD_fan; March 9, 2020 at 07:02. Reason: Make the text nicer
CFD_fan is offline   Reply With Quote

Old   September 30, 2020, 16:02
Default
  #2
Kil
New Member
 
Kil's Avatar
 
Serge
Join Date: Nov 2019
Posts: 14
Rep Power: 3
Kil is on a distinguished road
Hi, Jim!


Have your got any answers on your questions? It's very interesting to know for me...




With best regards,
Serge
Kil is offline   Reply With Quote

Reply

Tags
interdymfoam, mesh, openfoam, overset, planning hull

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


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 NUMECA 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


All times are GMT -4. The time now is 01:20.