Update of overRhoPimpleDyMFoam and overInterDyMFoam solvers.
Adding corresponding tutorials with best possible settings
The main effort was put on reducing pressure spikes as the
stencil change with hole cells on the background mesh.
This commit is contained in:
sergio
2018-10-17 10:10:06 -07:00
parent d2b32fcc84
commit 5daa38d5b4
68 changed files with 2967 additions and 287 deletions

View File

@ -61,6 +61,7 @@ sixDoFRigidBodyMotionCoeffs
report on;
accelerationRelaxation 0.6;
accelerationDamping 0.9;
solver
{

View File

@ -30,6 +30,6 @@ air
rho rho [ 1 -3 0 0 0 0 0 ] 1;
}
sigma sigma [ 1 0 -2 0 0 0 0 ] 0;
sigma sigma [ 1 0 -2 0 0 0 0 ] 0.007;
// ************************************************************************* //

View File

@ -18,19 +18,19 @@ scale 1;
vertices
(
(0 0 0)
(1 0 0)
(1 1 0)
(0 1 0)
(0 0 1)
(1 0 1)
(1 1 1)
(0 1 1)
(-0.2 -0.2 -0.2)
(1.2 -0.2 -0.2)
(1.2 1.2 -0.2)
(-0.2 1.2 -0.2)
(-0.2 -0.2 1)
(1.2 -0.2 1)
(1.2 1.2 1)
(-0.2 1.2 1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (35 35 35) simpleGrading (1 1 1)
hex (0 1 2 3 4 5 6 7) (80 80 70) simpleGrading (1 1 1)
);
edges

View File

@ -14,24 +14,30 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Load the additional patches, patchFields etc.
libs ("liboverset.so");
DebugSwitches
{
overset 0;
dynamicOversetFvMesh 0;
cellVolumeWeight 1;
}
application overInterDyMFoam ;
startFrom latestTime;//startTime;
startFrom latestTime;
startTime 0.0;
stopAt endTime;
endTime 4;
endTime 15;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.1;
writeInterval 0.5;
purgeWrite 0;
@ -49,8 +55,55 @@ runTimeModifiable yes;
adjustTimeStep yes;
maxCo 2.0;
maxCo 1.5;
maxAlphaCo 2.0;
maxDeltaT 1;
functions
{
probes
{
type probes;
libs ("libsampling.so");
// Name of the directory for probe data
name probes;
// Write at same frequency as fields
writeControl timeStep;
writeInterval 1;
// Fields to be probed
fields (p U);
// Optional: interpolation scheme to use (default is cell)
interpolationScheme cell;
probeLocations
(
(0.00132 0.0009 0.005)
);
}
alphaVol
{
libs ("libutilityFunctionObjects.so");
type coded;
name alphaVolume;
writeControl timeStep;
writeInterval 10;
codeWrite
#{
const volScalarField& alpha =
mesh().lookupObject<volScalarField>("alpha.water");
Info<< "Alpha volume = " << alpha.weightedAverage(mesh().Vsc()) << endl;
#};
}
}
// ************************************************************************* //

View File

@ -26,7 +26,7 @@ gradSchemes
divSchemes
{
div(rhoPhi,U) Gauss limitedLinearV 1;
div(rhoPhi,U) Gauss upwind;
div(U) Gauss linear;
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
@ -54,12 +54,13 @@ snGradSchemes
oversetInterpolation
{
method inverseDistance;
method cellVolumeWeight;
}
oversetInterpolationRequired
oversetInterpolationSuppressed
{
alpha.water;
grad(p_rgh);
surfaceIntegrate(phiHbyA);
}
fluxRequired

View File

@ -82,9 +82,8 @@ PIMPLE
nCorrectors 2;
nNonOrthogonalCorrectors 0;
ddtCorr yes;
ddtCorr yes;
correctPhi no;
massFluxInterpolation no;
moveMeshOuterCorrectors no;
turbOnFinalIterOnly no;
@ -104,8 +103,6 @@ relaxationFactors
}
cache
{
grad(U);
}
{}
// ************************************************************************* //

View File

@ -30,9 +30,10 @@ regions
boxToCell
{
box ( 0.7 0.8 -100 ) ( 100 100 0.75 );
box ( 0.9 0.9 -100 ) ( 100 100 0.75 );
fieldValues ( volScalarFieldValue alpha.water 1 );
}
cellToCell
{
set c0;