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_
|
// Transfer back cumulative fringe holes into the fringeHolesPtr_
|
||||||
fringeHolesPtr_->transfer(cumFringeHoles);
|
fringeHolesPtr_->transfer(cumFringeHoles);
|
||||||
|
|
||||||
|
|
|
@ -211,8 +211,23 @@ public:
|
||||||
const donorAcceptor& daPair
|
const donorAcceptor& daPair
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
// Note: do not check whether a donor is valid (has been found)
|
// Check whether the donor is valid for this pair
|
||||||
// for this acceptor.
|
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
|
// Get donor suitability function in acceptor/donor pair
|
||||||
const scalar& dsfAcceptor =
|
const scalar& dsfAcceptor =
|
||||||
|
|
|
@ -55,8 +55,8 @@ Foam::donorSuitability::noSuitability::noSuitability
|
||||||
const scalarField localDsf(oversetFringeAlgorithm.mesh().nCells(), 0);
|
const scalarField localDsf(oversetFringeAlgorithm.mesh().nCells(), 0);
|
||||||
this->combineDonorSuitabilityFunction(localDsf);
|
this->combineDonorSuitabilityFunction(localDsf);
|
||||||
|
|
||||||
// Set threshold to dummy large value
|
// Set threshold to SMALL such that all the pairs become suitable
|
||||||
this->threshold() = GREAT;
|
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_
|
// Transfer back cumulative fringe holes into the fringeHolesPtr_
|
||||||
fringeHolesPtr_->transfer(cumFringeHoles);
|
fringeHolesPtr_->transfer(cumFringeHoles);
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ regions
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.99;
|
threshold 0.2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ regions
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.99;
|
threshold 0.2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,10 +49,10 @@ regions
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 60% of the larger cell
|
// 40% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.6;
|
threshold 0.4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,10 +79,10 @@ regions
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 60% of the larger cell
|
// 50% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.6;
|
threshold 0.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,8 +109,8 @@ regions
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 40% of the larger cell
|
// 40% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.4;
|
threshold 0.4;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,25 +35,26 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames ();
|
initPatchNames ();
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 12; // 5 by default
|
||||||
suitablePairFraction 0.8;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// 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;
|
type cellVolumes;
|
||||||
threshold 0.6;
|
threshold 0.2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,23 +66,24 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames (OversetMiddle);
|
initPatchNames (OversetMiddle);
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 5; // 5 by default
|
||||||
suitablePairFraction 0.9;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 60% of the larger cell
|
// 60% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.6;
|
threshold 0.6;
|
||||||
}
|
}
|
||||||
|
@ -95,23 +97,24 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames (OversetFront);
|
initPatchNames (OversetFront);
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 5; // 5 by default
|
||||||
suitablePairFraction 0.8;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 40% of the larger cell
|
// 40% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.4;
|
threshold 0.4;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,25 +35,26 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames ();
|
initPatchNames ();
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 12; // 5 by default
|
||||||
suitablePairFraction 0.8;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// 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;
|
type cellVolumes;
|
||||||
threshold 0.6;
|
threshold 0.2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,23 +66,24 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames (OversetMiddle);
|
initPatchNames (OversetMiddle);
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 5; // 5 by default
|
||||||
suitablePairFraction 0.9;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 60% of the larger cell
|
// 60% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.6;
|
threshold 0.6;
|
||||||
}
|
}
|
||||||
|
@ -95,23 +97,24 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames (OversetFront);
|
initPatchNames (OversetFront);
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 5; // 5 by default
|
||||||
suitablePairFraction 0.8;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 40% of the larger cell
|
// 40% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.4;
|
threshold 0.4;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,25 +35,26 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames ();
|
initPatchNames ();
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 12; // 5 by default
|
||||||
suitablePairFraction 0.8;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// 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;
|
type cellVolumes;
|
||||||
threshold 0.6;
|
threshold 0.2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,23 +66,24 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames (OversetMiddle);
|
initPatchNames (OversetMiddle);
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 5; // 5 by default
|
||||||
suitablePairFraction 0.9;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 60% of the larger cell
|
// 60% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.6;
|
threshold 0.6;
|
||||||
}
|
}
|
||||||
|
@ -95,23 +97,24 @@ regions
|
||||||
|
|
||||||
fringe
|
fringe
|
||||||
{
|
{
|
||||||
type overlap;
|
type adaptiveOverlap;
|
||||||
|
|
||||||
// Optional list of patches to start the fringe minimisation from
|
// Optional list of patches to start the fringe minimisation from
|
||||||
initPatchNames (OversetFront);
|
initPatchNames (OversetFront);
|
||||||
|
|
||||||
// Fraction of minimum allowable suitable pairs respecting the
|
// Number of iterations for adaptive overlap search
|
||||||
// chosen donor suitability criteria
|
specifiedIterationsNumber 5; // 5 by default
|
||||||
suitablePairFraction 0.8;
|
|
||||||
|
|
||||||
// Whether to start fringe assembly from the previous set of
|
// Whether to try additional iterations
|
||||||
// acceptors (for moving mesh cases)
|
additionalIterations yes; // yes by default
|
||||||
cacheFringe no;
|
|
||||||
|
// Orphan suitability
|
||||||
|
orphanSuitability 0; // 1 by default
|
||||||
|
|
||||||
donorSuitability
|
donorSuitability
|
||||||
{
|
{
|
||||||
// Donor/acceptor pair must have cell volumes that differ not
|
// Donor/acceptor pair must have cell volumes that are at least
|
||||||
// more than 40% of the larger cell
|
// 40% within each other
|
||||||
type cellVolumes;
|
type cellVolumes;
|
||||||
threshold 0.4;
|
threshold 0.4;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue