Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-2.3.x
This commit is contained in:
commit
81be735dad
5 changed files with 43 additions and 31 deletions
|
|
@ -59,7 +59,15 @@ Foam::label Foam::dynamicRefineFvMesh::count
|
|||
{
|
||||
n++;
|
||||
}
|
||||
|
||||
// debug also serves to get-around Clang compiler trying to optimsie
|
||||
// out this forAll loop under O3 optimisation
|
||||
if (debug)
|
||||
{
|
||||
Info<< "n=" << n << endl;
|
||||
}
|
||||
}
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
|
|
@ -659,11 +667,11 @@ Foam::dynamicRefineFvMesh::maxPointField(const scalarField& pFld) const
|
|||
}
|
||||
|
||||
|
||||
// Get min of connected cell
|
||||
// Get max of connected cell
|
||||
Foam::scalarField
|
||||
Foam::dynamicRefineFvMesh::minCellField(const volScalarField& vFld) const
|
||||
Foam::dynamicRefineFvMesh::maxCellField(const volScalarField& vFld) const
|
||||
{
|
||||
scalarField pFld(nPoints(), GREAT);
|
||||
scalarField pFld(nPoints(), -GREAT);
|
||||
|
||||
forAll(pointCells(), pointI)
|
||||
{
|
||||
|
|
@ -671,7 +679,7 @@ Foam::dynamicRefineFvMesh::minCellField(const volScalarField& vFld) const
|
|||
|
||||
forAll(pCells, i)
|
||||
{
|
||||
pFld[pointI] = min(pFld[pointI], vFld[pCells[i]]);
|
||||
pFld[pointI] = max(pFld[pointI], vFld[pCells[i]]);
|
||||
}
|
||||
}
|
||||
return pFld;
|
||||
|
|
@ -774,10 +782,11 @@ Foam::labelList Foam::dynamicRefineFvMesh::selectRefineCells
|
|||
calculateProtectedCells(unrefineableCell);
|
||||
|
||||
// Count current selection
|
||||
label nCandidates = returnReduce(count(candidateCell, 1), sumOp<label>());
|
||||
label nLocalCandidates = count(candidateCell, 1);
|
||||
label nCandidates = returnReduce(nLocalCandidates, sumOp<label>());
|
||||
|
||||
// Collect all cells
|
||||
DynamicList<label> candidates(nCells());
|
||||
DynamicList<label> candidates(nLocalCandidates);
|
||||
|
||||
if (nCandidates < nTotToRefine)
|
||||
{
|
||||
|
|
@ -1263,25 +1272,28 @@ bool Foam::dynamicRefineFvMesh::update()
|
|||
readScalar(refineDict.lookup("lowerRefineLevel"));
|
||||
const scalar upperRefineLevel =
|
||||
readScalar(refineDict.lookup("upperRefineLevel"));
|
||||
const scalar unrefineLevel =
|
||||
readScalar(refineDict.lookup("unrefineLevel"));
|
||||
const scalar unrefineLevel = refineDict.lookupOrDefault<scalar>
|
||||
(
|
||||
"unrefineLevel",
|
||||
GREAT
|
||||
);
|
||||
const label nBufferLayers =
|
||||
readLabel(refineDict.lookup("nBufferLayers"));
|
||||
|
||||
// Cells marked for refinement or otherwise protected from unrefinement.
|
||||
PackedBoolList refineCell(nCells());
|
||||
|
||||
// Determine candidates for refinement (looking at field only)
|
||||
selectRefineCandidates
|
||||
(
|
||||
lowerRefineLevel,
|
||||
upperRefineLevel,
|
||||
vFld,
|
||||
refineCell
|
||||
);
|
||||
|
||||
if (globalData().nTotalCells() < maxCells)
|
||||
{
|
||||
// Determine candidates for refinement (looking at field only)
|
||||
selectRefineCandidates
|
||||
(
|
||||
lowerRefineLevel,
|
||||
upperRefineLevel,
|
||||
vFld,
|
||||
refineCell
|
||||
);
|
||||
|
||||
// Select subset of candidates. Take into account max allowable
|
||||
// cells, refinement level, protected cells.
|
||||
labelList cellsToRefine
|
||||
|
|
@ -1352,7 +1364,7 @@ bool Foam::dynamicRefineFvMesh::update()
|
|||
(
|
||||
unrefineLevel,
|
||||
refineCell,
|
||||
minCellField(vFld)
|
||||
maxCellField(vFld)
|
||||
)
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ Description
|
|||
// Refine field inbetween lower..upper
|
||||
lowerRefineLevel 0.001;
|
||||
upperRefineLevel 0.999;
|
||||
// If value < unrefineLevel unrefine
|
||||
unrefineLevel 10;
|
||||
// If value < unrefineLevel (default=GREAT) unrefine
|
||||
//unrefineLevel 10;
|
||||
// Have slower than 2:1 refinement
|
||||
nBufferLayers 1;
|
||||
// Refine cells only up to maxRefinement levels
|
||||
|
|
@ -79,7 +79,7 @@ namespace Foam
|
|||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class dynamicRefineFvMesh Declaration
|
||||
Class dynamicRefineFvMesh Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class dynamicRefineFvMesh
|
||||
|
|
@ -139,8 +139,8 @@ protected:
|
|||
//- Get per cell max of connected point
|
||||
scalarField maxPointField(const scalarField&) const;
|
||||
|
||||
//- Get point min of connected cell
|
||||
scalarField minCellField(const volScalarField&) const;
|
||||
//- Get point max of connected cell
|
||||
scalarField maxCellField(const volScalarField&) const;
|
||||
|
||||
scalarField cellToPoint(const scalarField& vFld) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
|
|
@ -75,9 +75,9 @@ Foam::solidBodyMotionFunctions::rotatingMotion::transformation() const
|
|||
scalar t = time_.value();
|
||||
|
||||
// Rotation around axis
|
||||
vector eulerAngles = omega_->integrate(0, t)*axis_;
|
||||
scalar angle = omega_->integrate(0, t);
|
||||
|
||||
quaternion R(eulerAngles.x(), eulerAngles.y(), eulerAngles.z());
|
||||
quaternion R(axis_, angle);
|
||||
septernion TR(septernion(origin_)*R*septernion(-origin_));
|
||||
|
||||
Info<< "solidBodyMotionFunctions::rotatingMotion::transformation(): "
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
|
|
@ -107,7 +107,7 @@ void Foam::movingWallVelocityFvPatchVectorField::updateCoeffs()
|
|||
|
||||
const fvMesh& mesh = dimensionedInternalField().mesh();
|
||||
|
||||
if (mesh.changing())
|
||||
if (mesh.moving())
|
||||
{
|
||||
const fvPatch& p = patch();
|
||||
const polyPatch& pp = p.patch();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
|
|
@ -531,7 +531,7 @@ void Foam::radiation::viewFactor::calculate()
|
|||
if (i==j)
|
||||
{
|
||||
C[i][j] = invEj - (invEj - 1.0)*Fmatrix_()[i][j];
|
||||
q[i] += (Fmatrix_()[i][j] - 1.0)*sigmaT4 - QrExt[j];
|
||||
q[i] += (Fmatrix_()[i][j] - 1.0)*sigmaT4;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -580,7 +580,7 @@ void Foam::radiation::viewFactor::calculate()
|
|||
|
||||
if (i==j)
|
||||
{
|
||||
q[i] += (Fmatrix_()[i][j] - 1.0)*sigmaT4 - QrExt[j];
|
||||
q[i] += (Fmatrix_()[i][j] - 1.0)*sigmaT4;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue