Added minimum protected level to protectedInitialRefinement
This commit is contained in:
parent
752fce1a02
commit
0f73d80cf0
2 changed files with 18 additions and 18 deletions
|
@ -105,8 +105,16 @@ Foam::protectedInitialRefinement::protectedInitialRefinement
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
cellLevelAsField()()
|
cellLevelAsField()()
|
||||||
|
),
|
||||||
|
// Note: conversion from label to scalar
|
||||||
|
minProtectedLevel_
|
||||||
|
(
|
||||||
|
coeffDict().lookupOrDefault<label>("minProtectedLevel", 0)
|
||||||
)
|
)
|
||||||
{}
|
{
|
||||||
|
Info<< "Will not allow initial refinement below level: "
|
||||||
|
<< minProtectedLevel_ << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Destructor* * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Destructor* * * * * * * * * * * * * * * * //
|
||||||
|
@ -163,9 +171,13 @@ Foam::protectedInitialRefinement::unrefinementPointCandidates() const
|
||||||
forAll (initialCellLevelIn, cellI)
|
forAll (initialCellLevelIn, cellI)
|
||||||
{
|
{
|
||||||
const scalar& cl = initialCellLevelIn[cellI];
|
const scalar& cl = initialCellLevelIn[cellI];
|
||||||
const scalar curcl = curCellLevel[cellI];
|
const scalar& curcl = curCellLevel[cellI];
|
||||||
|
|
||||||
if ((cl > SMALL) && equal(cl, curcl))
|
if
|
||||||
|
(
|
||||||
|
(cl > SMALL)
|
||||||
|
&& (curcl - minProtectedLevel_ < 0.5)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
// Cell has been refined during meshing and the original level is
|
// Cell has been refined during meshing and the original level is
|
||||||
// equal to the current level, mark all of its points
|
// equal to the current level, mark all of its points
|
||||||
|
@ -185,21 +197,6 @@ Foam::protectedInitialRefinement::unrefinementPointCandidates() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (cl > (curcl + SMALL))
|
|
||||||
{
|
|
||||||
FatalErrorIn
|
|
||||||
(
|
|
||||||
"Xfer<labelList>\n"
|
|
||||||
"protectedInitialRefinement::unrefinementPointCandidates()"
|
|
||||||
" const"
|
|
||||||
) << "Detected a cell with initial refinement level greater"
|
|
||||||
<< " than current refinement level." << nl
|
|
||||||
<< "cellI: " << cellI << nl
|
|
||||||
<< "current level: " << curcl << nl
|
|
||||||
<< "initial level: " << cl << nl
|
|
||||||
<< "This should not happen."
|
|
||||||
<< abort(FatalError);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the list for unrefinement candidates
|
// Create the list for unrefinement candidates
|
||||||
|
|
|
@ -70,6 +70,9 @@ class protectedInitialRefinement
|
||||||
// transfer for dynamic load balancing
|
// transfer for dynamic load balancing
|
||||||
volScalarField initialCellLevel_;
|
volScalarField initialCellLevel_;
|
||||||
|
|
||||||
|
//- Minimum refinement level to protect
|
||||||
|
scalar minProtectedLevel_;
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
|
|
Reference in a new issue