Update to noSuitability DSF and tutorials. Author: Vuko Vukcevic. Merge: Hrvoje Jasak.
This commit is contained in:
commit
b813e11b75
10 changed files with 137 additions and 95 deletions
|
@ -864,6 +864,15 @@ bool Foam::adaptiveOverlapFringe::updateIteration
|
|||
}
|
||||
}
|
||||
|
||||
if (newAcceptors.empty())
|
||||
{
|
||||
FatalErrorIn("adaptiveOverlapFringe::updateIteration()")
|
||||
<< "Did not find any new candidate acceptors."
|
||||
<< nl
|
||||
<< "Please review your overlap fringe assembly settings."
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
// Transfer back cumulative fringe holes into the fringeHolesPtr_
|
||||
fringeHolesPtr_->transfer(cumFringeHoles);
|
||||
|
||||
|
|
|
@ -211,8 +211,23 @@ public:
|
|||
const donorAcceptor& daPair
|
||||
) const
|
||||
{
|
||||
// Note: do not check whether a donor is valid (has been found)
|
||||
// for this acceptor.
|
||||
// Check whether the donor is valid for this pair
|
||||
if (!daPair.donorFound())
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"scalar donorSuitability::suitabilityFraction"
|
||||
"\n("
|
||||
"\n const donorAcceptor& daPair"
|
||||
"\n) const"
|
||||
) << "Acceptor: " << daPair.acceptorCell()
|
||||
<< " on processor: " << daPair.acceptorProcNo()
|
||||
<< " did not find donor candidate."
|
||||
<< nl
|
||||
<< "Please review your fringe assembly settings"
|
||||
<< " (or try using adaptiveOverlap fringe algorithm)."
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
// Get donor suitability function in acceptor/donor pair
|
||||
const scalar& dsfAcceptor =
|
||||
|
|
|
@ -55,8 +55,8 @@ Foam::donorSuitability::noSuitability::noSuitability
|
|||
const scalarField localDsf(oversetFringeAlgorithm.mesh().nCells(), 0);
|
||||
this->combineDonorSuitabilityFunction(localDsf);
|
||||
|
||||
// Set threshold to dummy large value
|
||||
this->threshold() = GREAT;
|
||||
// Set threshold to SMALL such that all the pairs become suitable
|
||||
this->threshold() = SMALL;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -846,6 +846,15 @@ bool Foam::overlapFringe::updateIteration
|
|||
}
|
||||
}
|
||||
|
||||
if (newAcceptors.empty())
|
||||
{
|
||||
FatalErrorIn("overlapFringe::updateIteration()")
|
||||
<< "Did not find any new candidate acceptors."
|
||||
<< nl
|
||||
<< "Please review your overlap fringe assembly settings."
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
// Transfer back cumulative fringe holes into the fringeHolesPtr_
|
||||
fringeHolesPtr_->transfer(cumFringeHoles);
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ regions
|
|||
donorSuitability
|
||||
{
|
||||
type cellVolumes;
|
||||
threshold 0.99;
|
||||
threshold 0.2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ regions
|
|||
donorSuitability
|
||||
{
|
||||
type cellVolumes;
|
||||
threshold 0.99;
|
||||
threshold 0.2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,10 +49,10 @@ regions
|
|||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 60% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 40% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.6;
|
||||
threshold 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -79,10 +79,10 @@ regions
|
|||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 60% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 50% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.6;
|
||||
threshold 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -109,8 +109,8 @@ regions
|
|||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 40% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 40% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.4;
|
||||
}
|
||||
|
|
|
@ -35,25 +35,26 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames ();
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.8;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 12; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 60% of the larger cell
|
||||
// more than 20% of the larger cell
|
||||
type cellVolumes;
|
||||
threshold 0.6;
|
||||
threshold 0.2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -65,23 +66,24 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames (OversetMiddle);
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.9;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 5; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 60% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 60% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.6;
|
||||
}
|
||||
|
@ -95,23 +97,24 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames (OversetFront);
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.8;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 5; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 40% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 40% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.4;
|
||||
}
|
||||
|
|
|
@ -35,25 +35,26 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames ();
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.8;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 12; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 60% of the larger cell
|
||||
// more than 20% of the larger cell
|
||||
type cellVolumes;
|
||||
threshold 0.6;
|
||||
threshold 0.2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -65,23 +66,24 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames (OversetMiddle);
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.9;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 5; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 60% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 60% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.6;
|
||||
}
|
||||
|
@ -95,23 +97,24 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames (OversetFront);
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.8;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 5; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 40% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 40% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.4;
|
||||
}
|
||||
|
|
|
@ -35,25 +35,26 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames ();
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.8;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 12; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 60% of the larger cell
|
||||
// more than 20% of the larger cell
|
||||
type cellVolumes;
|
||||
threshold 0.6;
|
||||
threshold 0.2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -65,23 +66,24 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames (OversetMiddle);
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.9;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 5; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 60% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 60% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.6;
|
||||
}
|
||||
|
@ -95,23 +97,24 @@ regions
|
|||
|
||||
fringe
|
||||
{
|
||||
type overlap;
|
||||
type adaptiveOverlap;
|
||||
|
||||
// Optional list of patches to start the fringe minimisation from
|
||||
initPatchNames (OversetFront);
|
||||
|
||||
// Fraction of minimum allowable suitable pairs respecting the
|
||||
// chosen donor suitability criteria
|
||||
suitablePairFraction 0.8;
|
||||
// Number of iterations for adaptive overlap search
|
||||
specifiedIterationsNumber 5; // 5 by default
|
||||
|
||||
// Whether to start fringe assembly from the previous set of
|
||||
// acceptors (for moving mesh cases)
|
||||
cacheFringe no;
|
||||
// Whether to try additional iterations
|
||||
additionalIterations yes; // yes by default
|
||||
|
||||
// Orphan suitability
|
||||
orphanSuitability 0; // 1 by default
|
||||
|
||||
donorSuitability
|
||||
{
|
||||
// Donor/acceptor pair must have cell volumes that differ not
|
||||
// more than 40% of the larger cell
|
||||
// Donor/acceptor pair must have cell volumes that are at least
|
||||
// 40% within each other
|
||||
type cellVolumes;
|
||||
threshold 0.4;
|
||||
}
|
||||
|
|
Reference in a new issue