mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
STYLE: use forAll macro in more places, avoid LF-CR endings
This commit is contained in:
@ -14,7 +14,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||
label inertIndex = -1;
|
||||
volScalarField Yt = 0.0*Y[0];
|
||||
|
||||
for (label i=0; i<Y.size(); i++)
|
||||
forAll(Y, i)
|
||||
{
|
||||
if (Y[i].name() != inertSpecie)
|
||||
{
|
||||
|
||||
@ -43,7 +43,7 @@ volScalarField Sevap
|
||||
dimensionedScalar("zero", dimensionSet(1, -3, -1, 0, 0), 0.0)
|
||||
);
|
||||
|
||||
for (label i=0; i<Y.size(); i++)
|
||||
forAll(Y, i)
|
||||
{
|
||||
if (dieselSpray.isLiquidFuel()[i])
|
||||
{
|
||||
|
||||
@ -13,7 +13,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||
label inertIndex = -1;
|
||||
volScalarField Yt = 0.0*Y[0];
|
||||
|
||||
for (label i=0; i<Y.size(); i++)
|
||||
forAll(Y, i)
|
||||
{
|
||||
if (Y[i].name() != inertSpecie)
|
||||
{
|
||||
|
||||
@ -13,7 +13,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||
label inertIndex = -1;
|
||||
volScalarField Yt = 0.0*Y[0];
|
||||
|
||||
for (label i=0; i<Y.size(); i++)
|
||||
forAll(Y, i)
|
||||
{
|
||||
if (Y[i].name() != inertSpecie)
|
||||
{
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
for (label i=0; i<p.boundaryField().size(); i++)
|
||||
forAll(p.boundaryField(), i)
|
||||
{
|
||||
if (p.boundaryField()[i].fixesValue())
|
||||
{
|
||||
|
||||
@ -14,7 +14,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||
label inertIndex = -1;
|
||||
volScalarField Yt = 0.0*Y[0];
|
||||
|
||||
for (label i=0; i<Y.size(); i++)
|
||||
forAll(Y, i)
|
||||
{
|
||||
if (Y[i].name() != inertSpecie)
|
||||
{
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
calculatedFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
for (label i=0; i<Ua.boundaryField().size(); i++)
|
||||
forAll(Ua.boundaryField(), i)
|
||||
{
|
||||
if (isA<fixedValueFvPatchVectorField>(Ua.boundaryField()[i]))
|
||||
{
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
calculatedFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
for (label i=0; i<Ub.boundaryField().size(); i++)
|
||||
forAll(Ub.boundaryField(), i)
|
||||
{
|
||||
if (isA<fixedValueFvPatchVectorField>(Ub.boundaryField()[i]))
|
||||
{
|
||||
|
||||
@ -135,7 +135,7 @@
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
for (label i=0; i<p.boundaryField().size(); i++)
|
||||
forAll(p.boundaryField(), i)
|
||||
{
|
||||
if (p.boundaryField()[i].fixesValue())
|
||||
{
|
||||
|
||||
@ -98,7 +98,7 @@
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
for (label i=0; i<p.boundaryField().size(); i++)
|
||||
forAll(p.boundaryField(), i)
|
||||
{
|
||||
if (p.boundaryField()[i].fixesValue())
|
||||
{
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
for (label i=0; i<p.boundaryField().size(); i++)
|
||||
forAll(p.boundaryField(), i)
|
||||
{
|
||||
if (p.boundaryField()[i].fixesValue())
|
||||
{
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
for (label i=0; i<p.boundaryField().size(); i++)
|
||||
forAll(p.boundaryField(), i)
|
||||
{
|
||||
if (p.boundaryField()[i].fixesValue())
|
||||
{
|
||||
|
||||
@ -17,7 +17,7 @@ phi =
|
||||
surfaceScalarField phiU("phiU", phi);
|
||||
phi -= ghf*fvc::snGrad(rho)*rUAf*mesh.magSf();
|
||||
|
||||
for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
{
|
||||
fvScalarMatrix pmhEqn
|
||||
(
|
||||
|
||||
@ -106,7 +106,7 @@ Foam::phaseModel::phaseModel
|
||||
calculatedFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
for (label i=0; i<U_.boundaryField().size(); i++)
|
||||
forAll(U_.boundaryField(), i)
|
||||
{
|
||||
if (isA<fixedValueFvPatchVectorField>(U_.boundaryField()[i]))
|
||||
{
|
||||
|
||||
@ -341,9 +341,9 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
wordList fieldNames = objects.names(volFieldTypes[i]);
|
||||
|
||||
for (label j=0; j<fieldNames.size(); j++)
|
||||
forAll(fieldNames, j)
|
||||
{
|
||||
word fieldName = fieldNames[j];
|
||||
const word& fieldName = fieldNames[j];
|
||||
|
||||
# include "checkData.H"
|
||||
|
||||
|
||||
@ -6,10 +6,10 @@ for (label i=0; i < nTypes; i++)
|
||||
{
|
||||
gmvFile << "variable" << nl;
|
||||
}
|
||||
for (label j=0; j < fieldNames.size(); j++)
|
||||
{
|
||||
|
||||
word fieldName = fieldNames[j];
|
||||
forAll(fieldNames, j)
|
||||
{
|
||||
const word& fieldName = fieldNames[j];
|
||||
|
||||
IOobject fieldObject
|
||||
(
|
||||
|
||||
@ -20,7 +20,7 @@ for (label indx=0;indx<nPoints;indx++)
|
||||
}
|
||||
gmvFile << nl;
|
||||
gmvFile << "cells " << cells.size() << nl;
|
||||
for (label indx=0;indx<cells.size();indx++)
|
||||
forAll(cells, indx)
|
||||
{
|
||||
label nNodes = cells[indx].size();
|
||||
if (nNodes == 8)
|
||||
|
||||
@ -95,7 +95,7 @@ int USERD_get_gold_variable_info
|
||||
);
|
||||
}
|
||||
|
||||
for (label n=0; n<lagrangianVectorNames.size(); n++)
|
||||
forAll(lagrangianVectorNames, n)
|
||||
{
|
||||
var_type[offset + Ns + n] = Z_VECTOR;
|
||||
var_classify[offset + Ns + n] = Z_PER_ELEM;
|
||||
|
||||
@ -144,7 +144,7 @@ int USERD_get_part_element_ids_by_type
|
||||
}
|
||||
else if (part_number == nPatches+2)
|
||||
{
|
||||
for (label n=0; n<sprayPtr->size(); n++)
|
||||
forAll(*sprayPtr, n)
|
||||
{
|
||||
elemid_array[n] = n + 1;
|
||||
}
|
||||
|
||||
@ -234,7 +234,7 @@ int USERD_get_part_elements_by_type
|
||||
}
|
||||
else if (part_number == nPatches+2)
|
||||
{
|
||||
for (label n=0; n<sprayPtr->size(); n++)
|
||||
forAll(*sprayPtr, n)
|
||||
{
|
||||
conn_array[n][0] = n + 1;
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ int USERD_set_filenames
|
||||
label nVar = 0;
|
||||
wordList scalars = objects.names(scalarName);
|
||||
|
||||
for (label n=0; n<fieldNames.size(); n++)
|
||||
forAll(fieldNames, n)
|
||||
{
|
||||
bool isitScalar = false;
|
||||
forAll(scalars,i)
|
||||
@ -115,7 +115,7 @@ int USERD_set_filenames
|
||||
|
||||
wordList vectors = objects.names(vectorName);
|
||||
|
||||
for (label n=0; n<fieldNames.size(); n++)
|
||||
forAll(fieldNames, n)
|
||||
{
|
||||
bool isitVector = false;
|
||||
forAll(vectors,i)
|
||||
@ -131,7 +131,7 @@ int USERD_set_filenames
|
||||
|
||||
wordList tensors = objects.names(tensorName);
|
||||
|
||||
for (label n=0; n<fieldNames.size(); n++)
|
||||
forAll(fieldNames, n)
|
||||
{
|
||||
bool isitTensor = false;
|
||||
forAll(tensors,i)
|
||||
|
||||
@ -21,7 +21,7 @@ if (nVar >= 0)
|
||||
|
||||
if (s.size())
|
||||
{
|
||||
for (label n = 0; n < s.size(); n++)
|
||||
forAll(s, n)
|
||||
{
|
||||
var_array[n+1] = s[n];
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ if (nVar >= 0)
|
||||
|
||||
if (v.size())
|
||||
{
|
||||
for (label n = 0; n < v.size(); n++)
|
||||
forAll(v, n)
|
||||
{
|
||||
if (component == 0)
|
||||
{
|
||||
|
||||
@ -39,7 +39,7 @@ const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh();
|
||||
if (which_type == Z_TRI03)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label facei=0; facei<sfb.size(); facei++)
|
||||
forAll(sfb, facei)
|
||||
{
|
||||
label nPoints = bMesh[patchi][facei].size();
|
||||
if (nPoints == 3)
|
||||
@ -52,7 +52,7 @@ if (which_type == Z_TRI03)
|
||||
if (which_type == Z_QUA04)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label facei=0; facei<sfb.size(); facei++)
|
||||
forAll(sfb, facei)
|
||||
{
|
||||
label nPoints = bMesh[patchi][facei].size();
|
||||
if (nPoints == 4)
|
||||
@ -65,10 +65,10 @@ if (which_type == Z_QUA04)
|
||||
if (which_type == Z_NSIDED)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label facei=0; facei<sfb.size(); facei++)
|
||||
forAll(sfb, facei)
|
||||
{
|
||||
label nPoints = bMesh[patchi][facei].size();
|
||||
if ((nPoints != 3) && (nPoints != 4))
|
||||
if (nPoints != 3 && nPoints != 4)
|
||||
{
|
||||
var_array[counter++] = sfb[facei];
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh();
|
||||
if (which_type == Z_TRI03)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label n=0; n<tf.size(); n++)
|
||||
forAll(tf, n)
|
||||
{
|
||||
label nPoints = bMesh[patchi][n].size();
|
||||
if (nPoints == 3)
|
||||
@ -52,7 +52,7 @@ if (which_type == Z_TRI03)
|
||||
if (which_type == Z_QUA04)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label n=0; n<tf.size(); n++)
|
||||
forAll(tf, n)
|
||||
{
|
||||
label nPoints = bMesh[patchi][n].size();
|
||||
if (nPoints == 4)
|
||||
@ -65,7 +65,7 @@ if (which_type == Z_QUA04)
|
||||
if (which_type == Z_NSIDED)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label n=0; n<tf.size(); n++)
|
||||
forAll(tf, n)
|
||||
{
|
||||
label nPoints = bMesh[patchi][n].size();
|
||||
if ((nPoints != 3) && (nPoints != 4))
|
||||
|
||||
@ -39,7 +39,7 @@ const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh();
|
||||
if (which_type == Z_TRI03)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label facei=0; facei<sfb.size(); facei++)
|
||||
forAll(sfb, facei)
|
||||
{
|
||||
label nPoints = bMesh[patchi][facei].size();
|
||||
if (nPoints == 3)
|
||||
@ -52,7 +52,7 @@ if (which_type == Z_TRI03)
|
||||
if (which_type == Z_QUA04)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label facei=0; facei<sfb.size(); facei++)
|
||||
forAll(sfb, facei)
|
||||
{
|
||||
label nPoints = bMesh[patchi][facei].size();
|
||||
if (nPoints == 4)
|
||||
@ -65,7 +65,7 @@ if (which_type == Z_QUA04)
|
||||
if (which_type == Z_NSIDED)
|
||||
{
|
||||
label counter = 1;
|
||||
for (label facei=0; facei<sfb.size(); facei++)
|
||||
forAll(sfb, facei)
|
||||
{
|
||||
label nPoints = bMesh[patchi][facei].size();
|
||||
if ((nPoints != 3) && (nPoints != 4))
|
||||
|
||||
@ -57,7 +57,7 @@ void Foam::tabulatedWallFunctions::SpaldingsLaw::invertFunction()
|
||||
scalar uPlus = 1;
|
||||
|
||||
// Populate the table
|
||||
for (label i=0; i<invertedTable_.size(); i++)
|
||||
forAll(invertedTable_, i)
|
||||
{
|
||||
if (invertedTable_.log10())
|
||||
{
|
||||
|
||||
@ -213,7 +213,7 @@ void Foam::primitiveEntry::write(Ostream& os) const
|
||||
{
|
||||
os.writeKeyword(keyword());
|
||||
|
||||
for (label i=0; i<size(); i++)
|
||||
for (label i=0; i<size(); ++i)
|
||||
{
|
||||
os << operator[](i);
|
||||
|
||||
|
||||
@ -125,7 +125,7 @@ void PrimitivePatchInterpolation<Patch>::makeFaceToEdgeWeights() const
|
||||
faceToEdgeWeightsPtr_ = new scalarList(patch_.nInternalEdges());
|
||||
scalarList& weights = *faceToEdgeWeightsPtr_;
|
||||
|
||||
for (label edgei = 0; edgei < weights.size(); edgei++)
|
||||
forAll(weights, edgei)
|
||||
{
|
||||
vector P = faces[edgeFaces[edgei][0]].centre(points);
|
||||
vector N = faces[edgeFaces[edgei][1]].centre(points);
|
||||
|
||||
@ -363,7 +363,7 @@ Foam::SVD::SVD(const scalarRectangularMatrix& A, const scalar minCondition)
|
||||
|
||||
// zero singular values that are less than minCondition*maxS
|
||||
const scalar minS = minCondition*S_[findMax(S_)];
|
||||
for (label i = 0; i < S_.size(); i++)
|
||||
forAll(S_, i)
|
||||
{
|
||||
if (S_[i] <= minS)
|
||||
{
|
||||
|
||||
@ -153,7 +153,7 @@ void Foam::walkPatch::faceToFace
|
||||
indexInFace_.append(fp);
|
||||
|
||||
// Visit neighbouring faces in order, starting at fp.
|
||||
for (label i = 0; i < f.size(); i++)
|
||||
forAll(f, i)
|
||||
{
|
||||
label fp1 = reverse_ ? f.rcIndex(fp) : f.fcIndex(fp);
|
||||
label nbr = getNeighbour(faceI, fp, f[fp], f[fp1]);
|
||||
|
||||
@ -88,7 +88,7 @@ void Foam::attachDetach::attachInterface
|
||||
|
||||
// Pout << "Points to be mapped: " << removedPoints << endl;
|
||||
// Remove all faces from the slave patch
|
||||
for (label i = 0; i < slavePatch.size(); i++)
|
||||
forAll(slavePatch, i)
|
||||
{
|
||||
ref.setAction(polyRemoveFace(i + slavePatchStart));
|
||||
// Pout << "Removing face " << i + slavePatchStart << endl;
|
||||
|
||||
@ -265,7 +265,7 @@ Foam::List<Foam::polyPatch*> Foam::polyMeshAdder::combinePatches
|
||||
|
||||
// Copy patches0 with new sizes. First patches always come from
|
||||
// mesh0 and will always be present.
|
||||
for (label patchI = 0; patchI < patches0.size(); patchI++)
|
||||
forAll(patches0, patchI)
|
||||
{
|
||||
// Originates from mesh0. Clone with new size & filter out empty
|
||||
// patch.
|
||||
@ -363,7 +363,7 @@ Foam::labelList Foam::polyMeshAdder::getFaceOrder
|
||||
labelList oldToNew(owner.size(), -1);
|
||||
|
||||
// Leave boundary faces in order
|
||||
for (label faceI = nInternalFaces; faceI < owner.size(); faceI++)
|
||||
for (label faceI = nInternalFaces; faceI < owner.size(); ++faceI)
|
||||
{
|
||||
oldToNew[faceI] = faceI;
|
||||
}
|
||||
|
||||
@ -915,7 +915,7 @@ void Foam::addPatchCellLayer::setRefinement
|
||||
|
||||
vector disp = firstLayerDisp[patchPointI];
|
||||
|
||||
for (label i = 0; i < addedPoints_[patchPointI].size(); i++)
|
||||
forAll(addedPoints_[patchPointI], i)
|
||||
{
|
||||
pt += disp;
|
||||
|
||||
@ -1000,7 +1000,7 @@ void Foam::addPatchCellLayer::setRefinement
|
||||
|
||||
face newFace(f.size());
|
||||
|
||||
for (label i = 0; i < addedCells[patchFaceI].size(); i++)
|
||||
forAll(addedCells[patchFaceI], i)
|
||||
{
|
||||
forAll(f, fp)
|
||||
{
|
||||
|
||||
@ -262,7 +262,7 @@ void Foam::repatchPolyTopoChanger::changeAnchorPoint
|
||||
|
||||
label fVert = fp;
|
||||
|
||||
for (label i = 0; i < f.size(); i++)
|
||||
forAll(f, i)
|
||||
{
|
||||
newFace[i] = f[fVert++];
|
||||
|
||||
|
||||
@ -200,7 +200,7 @@ void Foam::enrichedPatch::calcEnrichedFaces
|
||||
// Go through the points and collect them based on
|
||||
// weights from lower to higher. This gives the
|
||||
// correct order of points along the edge.
|
||||
for (label passI = 0; passI < edgePointWeights.size(); passI++)
|
||||
forAll(edgePointWeights, passI)
|
||||
{
|
||||
// Max weight can only be one, so the sorting is
|
||||
// done by elimination.
|
||||
@ -351,7 +351,7 @@ void Foam::enrichedPatch::calcEnrichedFaces
|
||||
// Go through the points and collect them based on
|
||||
// weights from lower to higher. This gives the
|
||||
// correct order of points along the edge.
|
||||
for (label pass = 0; pass < edgePointWeights.size(); pass++)
|
||||
forAll(edgePointWeights, passI)
|
||||
{
|
||||
// Max weight can only be one, so the sorting is
|
||||
// done by elimination.
|
||||
|
||||
@ -31,10 +31,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(quadraticFitSnGradData, 0);
|
||||
}
|
||||
defineTypeNameAndDebug(Foam::quadraticFitSnGradData, 0);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
@ -205,7 +202,7 @@ Foam::label Foam::quadraticFitSnGradData::calcFit
|
||||
// calculate the matrix of the polynomial components
|
||||
scalarRectangularMatrix B(C.size(), minSize_, scalar(0));
|
||||
|
||||
for (label ip = 0; ip < C.size(); ip++)
|
||||
forAll(C, ip)
|
||||
{
|
||||
const point& p = C[ip];
|
||||
|
||||
|
||||
@ -164,7 +164,7 @@ void Foam::FitData<FitDataType, ExtendedStencil, Polynomial>::calcFit
|
||||
// Matrix of the polynomial components
|
||||
scalarRectangularMatrix B(C.size(), minSize_, scalar(0));
|
||||
|
||||
for (label ip = 0; ip < C.size(); ip++)
|
||||
forAll(C, ip)
|
||||
{
|
||||
const point& p = C[ip];
|
||||
|
||||
|
||||
@ -258,7 +258,7 @@ void parcel::setRelaxationTimes
|
||||
scalar vapourSurfaceEnthalpy = 0.0;
|
||||
scalar vapourFarEnthalpy = 0.0;
|
||||
|
||||
for (label k = 0; k < sDB.gasProperties().size(); k++)
|
||||
forAll(sDB.gasProperties(), k)
|
||||
{
|
||||
vapourSurfaceEnthalpy += sDB.composition().Y()[k][celli]*sDB.gasProperties()[k].H(tBoilingSurface);
|
||||
vapourFarEnthalpy += sDB.composition().Y()[k][celli]*sDB.gasProperties()[k].H(temperature);
|
||||
|
||||
@ -177,7 +177,7 @@ void Foam::shellSurfaces::orient()
|
||||
|
||||
boundBox shellBb(points[0], points[0]);
|
||||
// Assume surface is compact!
|
||||
for (label i = 0; i < points.size(); i++)
|
||||
forAll(points, i)
|
||||
{
|
||||
const point& pt = points[i];
|
||||
shellBb.min() = min(shellBb.min(), pt);
|
||||
|
||||
@ -453,7 +453,7 @@ Foam::Ostream& Foam::operator<< (Ostream& os, const treeLeaf<Type>& leaf)
|
||||
{
|
||||
// Storage not trimmed
|
||||
os << token::SPACE << leaf.size() << token::SPACE << token::BEGIN_LIST;
|
||||
for (label i = 0; i < leaf.size(); i++)
|
||||
forAll(leaf, i)
|
||||
{
|
||||
os << token::SPACE << leaf.indices()[i];
|
||||
}
|
||||
|
||||
@ -115,7 +115,7 @@ void fftRenumber
|
||||
List<complex> renumData(data);
|
||||
|
||||
label nnprod(1);
|
||||
for (label i=0; i<nn.size(); i++)
|
||||
forAll(nn, i)
|
||||
{
|
||||
nnprod *= nn[i];
|
||||
}
|
||||
|
||||
@ -229,7 +229,7 @@ void Foam::faceOnlySet::calcSamples
|
||||
);
|
||||
|
||||
// fill sampleSegments
|
||||
for(label i = samplingPts.size() - 1; i >= startSegmentI; --i)
|
||||
for (label i = samplingPts.size() - 1; i >= startSegmentI; --i)
|
||||
{
|
||||
samplingSegments.append(segmentI);
|
||||
}
|
||||
|
||||
@ -64,7 +64,7 @@ bool Foam::uniformSet::nextSample
|
||||
samplePt += offset;
|
||||
sampleI++;
|
||||
|
||||
for(; sampleI < nPoints_; sampleI++)
|
||||
for (; sampleI < nPoints_; sampleI++)
|
||||
{
|
||||
scalar s = (samplePt - currentPt) & normOffset;
|
||||
|
||||
@ -328,7 +328,7 @@ void Foam::uniformSet::calcSamples
|
||||
);
|
||||
|
||||
// fill sampleSegments
|
||||
for(label i = samplingPts.size() - 1; i >= startSegmentI; --i)
|
||||
for (label i = samplingPts.size() - 1; i >= startSegmentI; --i)
|
||||
{
|
||||
samplingSegments.append(segmentI);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,482 +1,482 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::kinematicSingleLayer
|
||||
|
||||
Description
|
||||
Kinematic form of single-cell layer surface film model
|
||||
|
||||
SourceFiles
|
||||
kinematicSingleLayer.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef kinematicSingleLayer_H
|
||||
#define kinematicSingleLayer_H
|
||||
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "fvMesh.H"
|
||||
#include "volFields.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "fvMatrices.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace surfaceFilmModels
|
||||
{
|
||||
|
||||
// Forward declaration of classes
|
||||
class injectionModel;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class kinematicSingleLayer Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class kinematicSingleLayer
|
||||
:
|
||||
public surfaceFilmModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private member functions
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
kinematicSingleLayer(const kinematicSingleLayer&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const kinematicSingleLayer&);
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
// Mesh databases
|
||||
|
||||
//- Film region mesh database
|
||||
fvMesh filmRegion_;
|
||||
|
||||
//- Patch normal vectors
|
||||
volVectorField nHat_;
|
||||
|
||||
//- Face area magnitudes / [m2]
|
||||
volScalarField magSf_;
|
||||
|
||||
//- List of patch IDs on the primary region coupled with the film
|
||||
// region
|
||||
labelList primaryPatchIDs_;
|
||||
|
||||
//- List of patch IDs on oppositte side of the film region
|
||||
labelList filmTopPatchIDs_;
|
||||
|
||||
//- List of patch IDs on the film region coupled with the primary
|
||||
// region
|
||||
labelList filmBottomPatchIDs_;
|
||||
|
||||
|
||||
// Solution parameters
|
||||
|
||||
//- Momentum predictor
|
||||
Switch momentumPredictor_;
|
||||
|
||||
//- Number of outer correctors
|
||||
label nOuterCorr_;
|
||||
|
||||
//- Number of PISO-like correctors
|
||||
label nCorr_;
|
||||
|
||||
//- Number of non-orthogonal correctors
|
||||
label nNonOrthCorr_;
|
||||
|
||||
//- Cumulative continuity error
|
||||
scalar cumulativeContErr_;
|
||||
|
||||
|
||||
// Model parameters
|
||||
|
||||
//- Skin frition coefficient for film/main region interface
|
||||
scalar Cf_;
|
||||
|
||||
//- Stable film thickness - film cannot detach until this is reached
|
||||
dimensionedScalar deltaStable_;
|
||||
|
||||
|
||||
// Thermo properties
|
||||
|
||||
//- Density / [kg/m3]
|
||||
volScalarField rho_;
|
||||
|
||||
//- Dynamic viscosity / [Pa.s]
|
||||
volScalarField mu_;
|
||||
|
||||
//- Surface tension / [m/s2]
|
||||
volScalarField sigma_;
|
||||
|
||||
|
||||
// Fields
|
||||
|
||||
//- Film thickness / [m]
|
||||
volScalarField delta_;
|
||||
|
||||
//- Velocity / [m/s]
|
||||
volVectorField U_;
|
||||
|
||||
//- Film thickness*density (helper field) / [kg/m2]
|
||||
volScalarField deltaRho_;
|
||||
|
||||
//- Mass flux (includes film thickness) / [kg.m/s]
|
||||
surfaceScalarField phi_;
|
||||
|
||||
|
||||
// Transfer fields - to the primary region
|
||||
|
||||
//- Return the film mass available for transfer
|
||||
volScalarField massForPrimary_;
|
||||
|
||||
//- Return the parcel diameters originating from film
|
||||
volScalarField diametersForPrimary_;
|
||||
|
||||
|
||||
// Source term fields
|
||||
|
||||
// Film region - registered to the film region mesh
|
||||
// Note: need boundary value mapped from primary region, and then
|
||||
// pushed into the patch internal field
|
||||
|
||||
//- Momementum / [kg/m/s2]
|
||||
volVectorField USp_;
|
||||
|
||||
//- Pressure / [Pa]
|
||||
volScalarField pSp_;
|
||||
|
||||
//- Mass / [kg/m2/s]
|
||||
volScalarField rhoSp_;
|
||||
|
||||
|
||||
// Primary region - registered to the primary region mesh
|
||||
// Internal use only - not read-in
|
||||
|
||||
//- Momementum / [kg/m/s2]
|
||||
volVectorField USpPrimary_;
|
||||
|
||||
//- Pressure / [Pa]
|
||||
volScalarField pSpPrimary_;
|
||||
|
||||
//- Mass / [kg/m2/s]
|
||||
volScalarField rhoSpPrimary_;
|
||||
|
||||
|
||||
// Fields mapped from primary region - registered to the film region
|
||||
// Note: need both boundary AND patch internal fields to be mapped
|
||||
|
||||
//- Velocity / [m/s]
|
||||
volVectorField UPrimary_;
|
||||
|
||||
//- Pressure / [Pa]
|
||||
volScalarField pPrimary_;
|
||||
|
||||
|
||||
// Sub-models
|
||||
|
||||
//- Injection
|
||||
autoPtr<injectionModel> injection_;
|
||||
|
||||
|
||||
// Checks
|
||||
|
||||
//- Cumulative mass added via sources [kg]
|
||||
scalar addedMass_;
|
||||
|
||||
|
||||
// Detached surface properties
|
||||
|
||||
//- Cumulative mass detached [kg]
|
||||
scalar detachedMass_;
|
||||
|
||||
|
||||
// Protected member functions
|
||||
|
||||
//- Initialise the film model - called on construction
|
||||
void initialise();
|
||||
|
||||
//- Read control parameters from dictionary
|
||||
virtual bool read();
|
||||
|
||||
//- Reset source term fields
|
||||
virtual void resetPrimaryRegionSourceTerms();
|
||||
|
||||
//- Transfer fields from the primary region to the film region
|
||||
virtual void transferPrimaryRegionFields();
|
||||
|
||||
//- Correct the source terms for film that detaches from film region
|
||||
virtual void correctDetachedFilm();
|
||||
|
||||
// Explicit pressure source contribution
|
||||
virtual tmp<volScalarField> pu();
|
||||
|
||||
// Implicit pressure source coefficient
|
||||
virtual tmp<volScalarField> pp();
|
||||
|
||||
//- Update the film sub-models
|
||||
virtual void updateSubmodels();
|
||||
|
||||
//- Courant number evaluation
|
||||
virtual scalar CourantNumber() const;
|
||||
|
||||
//- Continuity check
|
||||
virtual void continuityCheck();
|
||||
|
||||
//- Return the stress term for the momentum equation
|
||||
virtual tmp<fvVectorMatrix> tau(volVectorField& dU) const;
|
||||
|
||||
//- Constrain a film region master/slave boundaries of a field to a
|
||||
// given value
|
||||
template<class Type>
|
||||
void constrainFilmField
|
||||
(
|
||||
Type& field,
|
||||
const typename Type::cmptType& value
|
||||
);
|
||||
|
||||
|
||||
// Equations
|
||||
|
||||
//- Solve continuity equation
|
||||
virtual void solveContinuity();
|
||||
|
||||
//- Solve for film velocity
|
||||
virtual tmp<fvVectorMatrix> solveMomentum
|
||||
(
|
||||
const volScalarField& pu,
|
||||
const volScalarField& pp
|
||||
);
|
||||
|
||||
//- Solve coupled velocity-thickness equations
|
||||
virtual void solveThickness
|
||||
(
|
||||
const volScalarField& pu,
|
||||
const volScalarField& pp,
|
||||
const fvVectorMatrix& UEqn
|
||||
);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("kinematicSingleLayer");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
kinematicSingleLayer
|
||||
(
|
||||
const word& modelType,
|
||||
const fvMesh& mesh,
|
||||
const dimensionedVector& g
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~kinematicSingleLayer();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
// Access
|
||||
|
||||
//- Return the film mesh database
|
||||
virtual const fvMesh& film() const;
|
||||
|
||||
//- Return the patch normal vectors
|
||||
inline const volVectorField& nHat() const;
|
||||
|
||||
//- Return the face area magnitudes / [m2]
|
||||
inline const volScalarField& magSf() const;
|
||||
|
||||
//- Return the list of coupled patches on the film region
|
||||
virtual const labelList& filmBottomPatchIDs() const;
|
||||
|
||||
//- Return the list of patches oppositte coupled patches
|
||||
virtual const labelList& filmTopPatchIDs() const;
|
||||
|
||||
//- Return the list of coupled patches on the primary region
|
||||
virtual const labelList& primaryPatchIDs() const;
|
||||
|
||||
|
||||
// Solution parameters
|
||||
|
||||
//- Return the momentum predictor
|
||||
inline const Switch& momentumPredictor() const;
|
||||
|
||||
//- Return the number of outer correctors
|
||||
inline label nOuterCorr() const;
|
||||
|
||||
//- Return the number of PISO correctors
|
||||
inline label nCorr() const;
|
||||
|
||||
//- Return the number of non-orthogonal correctors
|
||||
inline label nNonOrthCorr() const;
|
||||
|
||||
|
||||
// Model parameters
|
||||
|
||||
//- Return the skin friction coefficient
|
||||
inline scalar Cf() const;
|
||||
|
||||
|
||||
// Thermo properties
|
||||
|
||||
//- Return const access to the dynamic viscosity / [Pa.s]
|
||||
inline const volScalarField& mu() const;
|
||||
|
||||
//- Return const access to the surface tension / [m/s2]
|
||||
inline const volScalarField& sigma() const;
|
||||
|
||||
|
||||
// Fields
|
||||
|
||||
//- Return const access to the film thickness / [m]
|
||||
inline const volScalarField& delta() const;
|
||||
|
||||
//- Return the film velocity [m/s]
|
||||
virtual const volVectorField& U() const;
|
||||
|
||||
//- Return the film density [kg/m3]
|
||||
virtual const volScalarField& rho() const;
|
||||
|
||||
//- Return the film temperature [K]
|
||||
virtual const volScalarField& T() const;
|
||||
|
||||
//- Return the film specific heat capacity [J/kg/K]
|
||||
virtual const volScalarField& cp() const;
|
||||
|
||||
|
||||
// Transfer fields - to the primary region
|
||||
|
||||
//- Return the film mass available for transfer
|
||||
virtual const volScalarField& massForPrimary() const;
|
||||
|
||||
//- Return the parcel diameters originating from film
|
||||
virtual const volScalarField& diametersForPrimary() const;
|
||||
|
||||
|
||||
// External helper functions
|
||||
|
||||
//- Return true if patchI on the primary region is a coupled patch
|
||||
// to the film region
|
||||
virtual bool isFilmPatch(const label patchI) const;
|
||||
|
||||
//- External hook to add sources to the film
|
||||
virtual void addSources
|
||||
(
|
||||
const label patchI, // patchI on primary region
|
||||
const label faceI, // faceI of patchI
|
||||
const scalar massSource, // [kg]
|
||||
const vector& momentumSource, // [kg.m/s] (tangential momentum)
|
||||
const scalar pressureSource, // [kg.m/s] (normal momentum)
|
||||
const scalar energySource = 0 // [J]
|
||||
);
|
||||
|
||||
|
||||
// Source fields (read/write access)
|
||||
|
||||
// Primary region
|
||||
|
||||
//- Momementum / [kg/m/s2]
|
||||
inline volVectorField& USpPrimary();
|
||||
|
||||
//- Pressure / [Pa]
|
||||
inline volScalarField& pSpPrimary();
|
||||
|
||||
//- Mass / [kg/m2/s]
|
||||
inline volScalarField& rhoSpPrimary();
|
||||
|
||||
|
||||
// Film region
|
||||
|
||||
//- Momementum / [kg/m/s2]
|
||||
inline volVectorField& USp();
|
||||
|
||||
//- Pressure / [Pa]
|
||||
inline volScalarField& pSp();
|
||||
|
||||
//- Mass / [kg/m2/s]
|
||||
inline volScalarField& rhoSp();
|
||||
|
||||
|
||||
// Sub-models
|
||||
|
||||
//- Injection
|
||||
inline injectionModel& injection();
|
||||
|
||||
|
||||
// Helper functions
|
||||
|
||||
//- Return the gravity tangential component contributions
|
||||
inline tmp<volVectorField> gTan() const;
|
||||
|
||||
//- Return the gravity normal-to-patch component contribution
|
||||
inline tmp<volScalarField> gNorm() const;
|
||||
|
||||
//- Return the gravity normal-to-patch component contribution
|
||||
// Clipped so that only non-zero if g & nHat_ < 0
|
||||
inline tmp<volScalarField> gNormClipped() const;
|
||||
|
||||
|
||||
// Evolution
|
||||
|
||||
//- Evolve the film equations
|
||||
virtual void evolveFilm();
|
||||
|
||||
|
||||
// I-O
|
||||
|
||||
//- Provide some feedback
|
||||
virtual void info() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace surfaceFilmModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#ifdef NoRepository
|
||||
# include "kinematicSingleLayerTemplates.C"
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "kinematicSingleLayerI.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::kinematicSingleLayer
|
||||
|
||||
Description
|
||||
Kinematic form of single-cell layer surface film model
|
||||
|
||||
SourceFiles
|
||||
kinematicSingleLayer.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef kinematicSingleLayer_H
|
||||
#define kinematicSingleLayer_H
|
||||
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "fvMesh.H"
|
||||
#include "volFields.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "fvMatrices.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace surfaceFilmModels
|
||||
{
|
||||
|
||||
// Forward declaration of classes
|
||||
class injectionModel;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class kinematicSingleLayer Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class kinematicSingleLayer
|
||||
:
|
||||
public surfaceFilmModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private member functions
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
kinematicSingleLayer(const kinematicSingleLayer&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const kinematicSingleLayer&);
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
// Mesh databases
|
||||
|
||||
//- Film region mesh database
|
||||
fvMesh filmRegion_;
|
||||
|
||||
//- Patch normal vectors
|
||||
volVectorField nHat_;
|
||||
|
||||
//- Face area magnitudes / [m2]
|
||||
volScalarField magSf_;
|
||||
|
||||
//- List of patch IDs on the primary region coupled with the film
|
||||
// region
|
||||
labelList primaryPatchIDs_;
|
||||
|
||||
//- List of patch IDs on oppositte side of the film region
|
||||
labelList filmTopPatchIDs_;
|
||||
|
||||
//- List of patch IDs on the film region coupled with the primary
|
||||
// region
|
||||
labelList filmBottomPatchIDs_;
|
||||
|
||||
|
||||
// Solution parameters
|
||||
|
||||
//- Momentum predictor
|
||||
Switch momentumPredictor_;
|
||||
|
||||
//- Number of outer correctors
|
||||
label nOuterCorr_;
|
||||
|
||||
//- Number of PISO-like correctors
|
||||
label nCorr_;
|
||||
|
||||
//- Number of non-orthogonal correctors
|
||||
label nNonOrthCorr_;
|
||||
|
||||
//- Cumulative continuity error
|
||||
scalar cumulativeContErr_;
|
||||
|
||||
|
||||
// Model parameters
|
||||
|
||||
//- Skin frition coefficient for film/main region interface
|
||||
scalar Cf_;
|
||||
|
||||
//- Stable film thickness - film cannot detach until this is reached
|
||||
dimensionedScalar deltaStable_;
|
||||
|
||||
|
||||
// Thermo properties
|
||||
|
||||
//- Density / [kg/m3]
|
||||
volScalarField rho_;
|
||||
|
||||
//- Dynamic viscosity / [Pa.s]
|
||||
volScalarField mu_;
|
||||
|
||||
//- Surface tension / [m/s2]
|
||||
volScalarField sigma_;
|
||||
|
||||
|
||||
// Fields
|
||||
|
||||
//- Film thickness / [m]
|
||||
volScalarField delta_;
|
||||
|
||||
//- Velocity / [m/s]
|
||||
volVectorField U_;
|
||||
|
||||
//- Film thickness*density (helper field) / [kg/m2]
|
||||
volScalarField deltaRho_;
|
||||
|
||||
//- Mass flux (includes film thickness) / [kg.m/s]
|
||||
surfaceScalarField phi_;
|
||||
|
||||
|
||||
// Transfer fields - to the primary region
|
||||
|
||||
//- Return the film mass available for transfer
|
||||
volScalarField massForPrimary_;
|
||||
|
||||
//- Return the parcel diameters originating from film
|
||||
volScalarField diametersForPrimary_;
|
||||
|
||||
|
||||
// Source term fields
|
||||
|
||||
// Film region - registered to the film region mesh
|
||||
// Note: need boundary value mapped from primary region, and then
|
||||
// pushed into the patch internal field
|
||||
|
||||
//- Momementum / [kg/m/s2]
|
||||
volVectorField USp_;
|
||||
|
||||
//- Pressure / [Pa]
|
||||
volScalarField pSp_;
|
||||
|
||||
//- Mass / [kg/m2/s]
|
||||
volScalarField rhoSp_;
|
||||
|
||||
|
||||
// Primary region - registered to the primary region mesh
|
||||
// Internal use only - not read-in
|
||||
|
||||
//- Momementum / [kg/m/s2]
|
||||
volVectorField USpPrimary_;
|
||||
|
||||
//- Pressure / [Pa]
|
||||
volScalarField pSpPrimary_;
|
||||
|
||||
//- Mass / [kg/m2/s]
|
||||
volScalarField rhoSpPrimary_;
|
||||
|
||||
|
||||
// Fields mapped from primary region - registered to the film region
|
||||
// Note: need both boundary AND patch internal fields to be mapped
|
||||
|
||||
//- Velocity / [m/s]
|
||||
volVectorField UPrimary_;
|
||||
|
||||
//- Pressure / [Pa]
|
||||
volScalarField pPrimary_;
|
||||
|
||||
|
||||
// Sub-models
|
||||
|
||||
//- Injection
|
||||
autoPtr<injectionModel> injection_;
|
||||
|
||||
|
||||
// Checks
|
||||
|
||||
//- Cumulative mass added via sources [kg]
|
||||
scalar addedMass_;
|
||||
|
||||
|
||||
// Detached surface properties
|
||||
|
||||
//- Cumulative mass detached [kg]
|
||||
scalar detachedMass_;
|
||||
|
||||
|
||||
// Protected member functions
|
||||
|
||||
//- Initialise the film model - called on construction
|
||||
void initialise();
|
||||
|
||||
//- Read control parameters from dictionary
|
||||
virtual bool read();
|
||||
|
||||
//- Reset source term fields
|
||||
virtual void resetPrimaryRegionSourceTerms();
|
||||
|
||||
//- Transfer fields from the primary region to the film region
|
||||
virtual void transferPrimaryRegionFields();
|
||||
|
||||
//- Correct the source terms for film that detaches from film region
|
||||
virtual void correctDetachedFilm();
|
||||
|
||||
// Explicit pressure source contribution
|
||||
virtual tmp<volScalarField> pu();
|
||||
|
||||
// Implicit pressure source coefficient
|
||||
virtual tmp<volScalarField> pp();
|
||||
|
||||
//- Update the film sub-models
|
||||
virtual void updateSubmodels();
|
||||
|
||||
//- Courant number evaluation
|
||||
virtual scalar CourantNumber() const;
|
||||
|
||||
//- Continuity check
|
||||
virtual void continuityCheck();
|
||||
|
||||
//- Return the stress term for the momentum equation
|
||||
virtual tmp<fvVectorMatrix> tau(volVectorField& dU) const;
|
||||
|
||||
//- Constrain a film region master/slave boundaries of a field to a
|
||||
// given value
|
||||
template<class Type>
|
||||
void constrainFilmField
|
||||
(
|
||||
Type& field,
|
||||
const typename Type::cmptType& value
|
||||
);
|
||||
|
||||
|
||||
// Equations
|
||||
|
||||
//- Solve continuity equation
|
||||
virtual void solveContinuity();
|
||||
|
||||
//- Solve for film velocity
|
||||
virtual tmp<fvVectorMatrix> solveMomentum
|
||||
(
|
||||
const volScalarField& pu,
|
||||
const volScalarField& pp
|
||||
);
|
||||
|
||||
//- Solve coupled velocity-thickness equations
|
||||
virtual void solveThickness
|
||||
(
|
||||
const volScalarField& pu,
|
||||
const volScalarField& pp,
|
||||
const fvVectorMatrix& UEqn
|
||||
);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("kinematicSingleLayer");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
kinematicSingleLayer
|
||||
(
|
||||
const word& modelType,
|
||||
const fvMesh& mesh,
|
||||
const dimensionedVector& g
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~kinematicSingleLayer();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
// Access
|
||||
|
||||
//- Return the film mesh database
|
||||
virtual const fvMesh& film() const;
|
||||
|
||||
//- Return the patch normal vectors
|
||||
inline const volVectorField& nHat() const;
|
||||
|
||||
//- Return the face area magnitudes / [m2]
|
||||
inline const volScalarField& magSf() const;
|
||||
|
||||
//- Return the list of coupled patches on the film region
|
||||
virtual const labelList& filmBottomPatchIDs() const;
|
||||
|
||||
//- Return the list of patches oppositte coupled patches
|
||||
virtual const labelList& filmTopPatchIDs() const;
|
||||
|
||||
//- Return the list of coupled patches on the primary region
|
||||
virtual const labelList& primaryPatchIDs() const;
|
||||
|
||||
|
||||
// Solution parameters
|
||||
|
||||
//- Return the momentum predictor
|
||||
inline const Switch& momentumPredictor() const;
|
||||
|
||||
//- Return the number of outer correctors
|
||||
inline label nOuterCorr() const;
|
||||
|
||||
//- Return the number of PISO correctors
|
||||
inline label nCorr() const;
|
||||
|
||||
//- Return the number of non-orthogonal correctors
|
||||
inline label nNonOrthCorr() const;
|
||||
|
||||
|
||||
// Model parameters
|
||||
|
||||
//- Return the skin friction coefficient
|
||||
inline scalar Cf() const;
|
||||
|
||||
|
||||
// Thermo properties
|
||||
|
||||
//- Return const access to the dynamic viscosity / [Pa.s]
|
||||
inline const volScalarField& mu() const;
|
||||
|
||||
//- Return const access to the surface tension / [m/s2]
|
||||
inline const volScalarField& sigma() const;
|
||||
|
||||
|
||||
// Fields
|
||||
|
||||
//- Return const access to the film thickness / [m]
|
||||
inline const volScalarField& delta() const;
|
||||
|
||||
//- Return the film velocity [m/s]
|
||||
virtual const volVectorField& U() const;
|
||||
|
||||
//- Return the film density [kg/m3]
|
||||
virtual const volScalarField& rho() const;
|
||||
|
||||
//- Return the film temperature [K]
|
||||
virtual const volScalarField& T() const;
|
||||
|
||||
//- Return the film specific heat capacity [J/kg/K]
|
||||
virtual const volScalarField& cp() const;
|
||||
|
||||
|
||||
// Transfer fields - to the primary region
|
||||
|
||||
//- Return the film mass available for transfer
|
||||
virtual const volScalarField& massForPrimary() const;
|
||||
|
||||
//- Return the parcel diameters originating from film
|
||||
virtual const volScalarField& diametersForPrimary() const;
|
||||
|
||||
|
||||
// External helper functions
|
||||
|
||||
//- Return true if patchI on the primary region is a coupled patch
|
||||
// to the film region
|
||||
virtual bool isFilmPatch(const label patchI) const;
|
||||
|
||||
//- External hook to add sources to the film
|
||||
virtual void addSources
|
||||
(
|
||||
const label patchI, // patchI on primary region
|
||||
const label faceI, // faceI of patchI
|
||||
const scalar massSource, // [kg]
|
||||
const vector& momentumSource, // [kg.m/s] (tangential momentum)
|
||||
const scalar pressureSource, // [kg.m/s] (normal momentum)
|
||||
const scalar energySource = 0 // [J]
|
||||
);
|
||||
|
||||
|
||||
// Source fields (read/write access)
|
||||
|
||||
// Primary region
|
||||
|
||||
//- Momementum / [kg/m/s2]
|
||||
inline volVectorField& USpPrimary();
|
||||
|
||||
//- Pressure / [Pa]
|
||||
inline volScalarField& pSpPrimary();
|
||||
|
||||
//- Mass / [kg/m2/s]
|
||||
inline volScalarField& rhoSpPrimary();
|
||||
|
||||
|
||||
// Film region
|
||||
|
||||
//- Momementum / [kg/m/s2]
|
||||
inline volVectorField& USp();
|
||||
|
||||
//- Pressure / [Pa]
|
||||
inline volScalarField& pSp();
|
||||
|
||||
//- Mass / [kg/m2/s]
|
||||
inline volScalarField& rhoSp();
|
||||
|
||||
|
||||
// Sub-models
|
||||
|
||||
//- Injection
|
||||
inline injectionModel& injection();
|
||||
|
||||
|
||||
// Helper functions
|
||||
|
||||
//- Return the gravity tangential component contributions
|
||||
inline tmp<volVectorField> gTan() const;
|
||||
|
||||
//- Return the gravity normal-to-patch component contribution
|
||||
inline tmp<volScalarField> gNorm() const;
|
||||
|
||||
//- Return the gravity normal-to-patch component contribution
|
||||
// Clipped so that only non-zero if g & nHat_ < 0
|
||||
inline tmp<volScalarField> gNormClipped() const;
|
||||
|
||||
|
||||
// Evolution
|
||||
|
||||
//- Evolve the film equations
|
||||
virtual void evolveFilm();
|
||||
|
||||
|
||||
// I-O
|
||||
|
||||
//- Provide some feedback
|
||||
virtual void info() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace surfaceFilmModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#ifdef NoRepository
|
||||
# include "kinematicSingleLayerTemplates.C"
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "kinematicSingleLayerI.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -1,62 +1,62 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "kinematicSingleLayer.H"
|
||||
|
||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
void Foam::surfaceFilmModels::kinematicSingleLayer::constrainFilmField
|
||||
(
|
||||
Type& field,
|
||||
const typename Type::cmptType& value
|
||||
)
|
||||
{
|
||||
forAll(filmBottomPatchIDs_, i)
|
||||
{
|
||||
label patchI = filmBottomPatchIDs_[i];
|
||||
field.boundaryField()[patchI] = value;
|
||||
if (debug)
|
||||
{
|
||||
Info<< "Constraining " << field.name()
|
||||
<< " boundary " << field.boundaryField()[patchI].patch().name()
|
||||
<< " to " << value << endl;
|
||||
}
|
||||
}
|
||||
forAll(filmTopPatchIDs_, i)
|
||||
{
|
||||
label patchI = filmTopPatchIDs_[i];
|
||||
field.boundaryField()[patchI] = value;
|
||||
if (debug)
|
||||
{
|
||||
Info<< "Constraining " << field.name()
|
||||
<< " boundary " << field.boundaryField()[patchI].patch().name()
|
||||
<< " to " << value << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "kinematicSingleLayer.H"
|
||||
|
||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
void Foam::surfaceFilmModels::kinematicSingleLayer::constrainFilmField
|
||||
(
|
||||
Type& field,
|
||||
const typename Type::cmptType& value
|
||||
)
|
||||
{
|
||||
forAll(filmBottomPatchIDs_, i)
|
||||
{
|
||||
label patchI = filmBottomPatchIDs_[i];
|
||||
field.boundaryField()[patchI] = value;
|
||||
if (debug)
|
||||
{
|
||||
Info<< "Constraining " << field.name()
|
||||
<< " boundary " << field.boundaryField()[patchI].patch().name()
|
||||
<< " to " << value << endl;
|
||||
}
|
||||
}
|
||||
forAll(filmTopPatchIDs_, i)
|
||||
{
|
||||
label patchI = filmTopPatchIDs_[i];
|
||||
field.boundaryField()[patchI] = value;
|
||||
if (debug)
|
||||
{
|
||||
Info<< "Constraining " << field.name()
|
||||
<< " boundary " << field.boundaryField()[patchI].patch().name()
|
||||
<< " to " << value << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -137,7 +137,7 @@ Foam::tmp<Foam::fvScalarMatrix> Foam::surfaceFilmModels::thermoSingleLayer::q
|
||||
dimensionedScalar("zero", dimTemperature, 0.0)
|
||||
);
|
||||
|
||||
for (label i=0; i<filmBottomPatchIDs_.size(); i++)
|
||||
forAll(filmBottomPatchIDs_, i)
|
||||
{
|
||||
label patchI = filmBottomPatchIDs_[i];
|
||||
const polyPatch& pp = filmRegion_.boundaryMesh()[patchI];
|
||||
|
||||
@ -160,8 +160,8 @@ Foam::scalar Foam::ODEChemistryModel<CompType, ThermoType>::omega
|
||||
pf = 1.0;
|
||||
pr = 1.0;
|
||||
|
||||
label Nl = R.lhs().size();
|
||||
label Nr = R.rhs().size();
|
||||
const label Nl = R.lhs().size();
|
||||
const label Nr = R.rhs().size();
|
||||
|
||||
label slRef = 0;
|
||||
lRef = R.lhs()[slRef].index;
|
||||
@ -331,7 +331,7 @@ void Foam::ODEChemistryModel<CompType, ThermoType>::jacobian
|
||||
// length of the first argument must be nSpecie()
|
||||
dcdt = omega(c2, T, p);
|
||||
|
||||
for (label ri=0; ri<reactions_.size(); ri++)
|
||||
forAll(reactions_, ri)
|
||||
{
|
||||
const Reaction<ThermoType>& R = reactions_[ri];
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ Foam::scalar Foam::EulerImplicit<CompType, ThermoType>::solve
|
||||
RR.source()[i] = c[i]/dt;
|
||||
}
|
||||
|
||||
for (label i=0; i<this->model_.reactions().size(); i++)
|
||||
forAll(this->model_.reactions(), i)
|
||||
{
|
||||
const Reaction<ThermoType>& R = this->model_.reactions()[i];
|
||||
|
||||
@ -100,7 +100,7 @@ Foam::scalar Foam::EulerImplicit<CompType, ThermoType>::solve
|
||||
}
|
||||
}
|
||||
|
||||
for (label s=0; s<R.lhs().size(); s++)
|
||||
forAll(R.lhs(), s)
|
||||
{
|
||||
label si = R.lhs()[s].index;
|
||||
scalar sl = R.lhs()[s].stoichCoeff;
|
||||
@ -108,7 +108,7 @@ Foam::scalar Foam::EulerImplicit<CompType, ThermoType>::solve
|
||||
RR[si][lRef] += sl*pf*corr;
|
||||
}
|
||||
|
||||
for (label s=0; s<R.rhs().size(); s++)
|
||||
forAll(R.rhs(), s)
|
||||
{
|
||||
label si = R.rhs()[s].index;
|
||||
scalar sr = R.rhs()[s].stoichCoeff;
|
||||
|
||||
@ -86,7 +86,7 @@ Foam::scalar Foam::ode<CompType, ThermoType>::solve
|
||||
dtEst
|
||||
);
|
||||
|
||||
for (label i=0; i<c.size(); i++)
|
||||
forAll(c, i)
|
||||
{
|
||||
c[i] = max(0.0, c1[i]);
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ Foam::scalar Foam::sequential<CompType, ThermoType>::solve
|
||||
scalar pf, cf, pb, cb;
|
||||
label lRef, rRef;
|
||||
|
||||
for (label i=0; i<this->model_.reactions().size(); i++)
|
||||
forAll(this->model_.reactions(), i)
|
||||
{
|
||||
const Reaction<ThermoType>& R = this->model_.reactions()[i];
|
||||
|
||||
@ -95,7 +95,7 @@ Foam::scalar Foam::sequential<CompType, ThermoType>::solve
|
||||
|
||||
|
||||
// update species
|
||||
for (label s=0; s<R.lhs().size(); s++)
|
||||
forAll(R.lhs(), s)
|
||||
{
|
||||
label si = R.lhs()[s].index;
|
||||
scalar sl = R.lhs()[s].stoichCoeff;
|
||||
@ -103,7 +103,7 @@ Foam::scalar Foam::sequential<CompType, ThermoType>::solve
|
||||
c[si] = max(0.0, c[si]);
|
||||
}
|
||||
|
||||
for (label s=0; s<R.rhs().size(); s++)
|
||||
forAll(R.rhs(), s)
|
||||
{
|
||||
label si = R.rhs()[s].index;
|
||||
scalar sr = R.rhs()[s].stoichCoeff;
|
||||
|
||||
@ -47,7 +47,7 @@ void Foam::Reaction<ReactionThermo>::setThermo
|
||||
);
|
||||
}
|
||||
|
||||
for (label i=0; i<lhs_.size(); i++)
|
||||
forAll(lhs_, i)
|
||||
{
|
||||
operator-=
|
||||
(
|
||||
|
||||
@ -450,7 +450,7 @@ bool Foam::faceTriangulation::split
|
||||
label index1 = -1;
|
||||
label index2 = -1;
|
||||
|
||||
for (label iter = 0; iter < f.size(); iter++)
|
||||
forAll(f, iter)
|
||||
{
|
||||
findDiagonal
|
||||
(
|
||||
|
||||
@ -33,10 +33,8 @@ License
|
||||
#include "PackedBoolList.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(Foam::triSurface, 0);
|
||||
}
|
||||
|
||||
defineTypeNameAndDebug(Foam::triSurface, 0);
|
||||
|
||||
|
||||
Foam::fileName Foam::triSurface::triSurfInstance(const Time& d)
|
||||
|
||||
@ -12,105 +12,105 @@ FoamFile
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
convertToMeters 0.1;
|
||||
|
||||
vertices
|
||||
(
|
||||
( 0.500 0.000 0.000)
|
||||
( 0.369 0.338 0.000)
|
||||
( 0.338 0.369 0.000)
|
||||
( 0.000 0.500 0.000)
|
||||
( 0.737 0.676 0.000)
|
||||
( 0.074 0.068 0.000)
|
||||
( 0.676 0.737 0.000)
|
||||
( 0.068 0.074 0.000)
|
||||
( 0.000 1.000 0.000)
|
||||
( 1.000 0.000 0.000)
|
||||
( 0.100 0.000 0.000)
|
||||
( 0.000 0.100 0.000)
|
||||
( 0.500 0.000 2.000)
|
||||
( 0.369 0.338 2.000)
|
||||
( 0.338 0.369 2.000)
|
||||
( 0.000 0.500 2.000)
|
||||
( 0.737 0.676 2.000)
|
||||
( 0.074 0.068 2.000)
|
||||
( 0.676 0.737 2.000)
|
||||
( 0.068 0.074 2.000)
|
||||
( 0.000 1.000 2.000)
|
||||
( 1.000 0.000 2.000)
|
||||
( 0.100 0.000 2.000)
|
||||
( 0.000 0.100 2.000)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (1 0 9 4 13 12 21 16) (10 20 40) simpleGrading (1 1 1)
|
||||
hex (2 1 4 6 14 13 16 18) (2 20 40) simpleGrading (1 1 1)
|
||||
hex (3 2 6 8 15 14 18 20) (10 20 40) simpleGrading (1 1 1)
|
||||
hex (5 10 0 1 17 22 12 13) (10 20 40) simpleGrading (1 1 1)
|
||||
hex (11 7 2 3 23 19 14 15) (10 20 40) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
arc 0 1 ( 0.470 0.171 0.000 )
|
||||
arc 12 13 ( 0.470 0.171 2.000 )
|
||||
arc 2 3 ( 0.171 0.470 0.000 )
|
||||
arc 14 15 ( 0.171 0.470 2.000 )
|
||||
arc 9 4 ( 0.940 0.342 0.000 )
|
||||
arc 21 16 ( 0.940 0.342 2.000 )
|
||||
arc 5 10 ( 0.094 0.034 0.000 )
|
||||
arc 17 22 ( 0.094 0.034 2.000 )
|
||||
arc 6 8 ( 0.342 0.940 0.000 )
|
||||
arc 18 20 ( 0.342 0.940 2.000 )
|
||||
arc 11 7 ( 0.034 0.094 0.000 )
|
||||
arc 23 19 ( 0.034 0.094 2.000 )
|
||||
);
|
||||
|
||||
patches
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(13 12 21 16)
|
||||
(14 13 16 18)
|
||||
(15 14 18 20)
|
||||
(17 22 12 13)
|
||||
(23 19 14 15)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(1 4 9 0)
|
||||
(2 6 4 1)
|
||||
(3 8 6 2)
|
||||
(5 1 0 10)
|
||||
(11 3 2 7)
|
||||
)
|
||||
wall innerWall
|
||||
(
|
||||
(2 1 13 14)
|
||||
(5 10 22 17)
|
||||
(5 17 13 1)
|
||||
(11 7 19 23)
|
||||
(7 2 14 19)
|
||||
)
|
||||
wall outerWall
|
||||
(
|
||||
(4 16 21 9)
|
||||
(6 18 16 4)
|
||||
(8 20 18 6)
|
||||
)
|
||||
cyclic cyclic
|
||||
(
|
||||
(0 9 21 12)
|
||||
(10 0 12 22)
|
||||
(3 15 20 8)
|
||||
(11 23 15 3)
|
||||
)
|
||||
);
|
||||
|
||||
mergeMatchPairs
|
||||
(
|
||||
);
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
convertToMeters 0.1;
|
||||
|
||||
vertices
|
||||
(
|
||||
( 0.500 0.000 0.000)
|
||||
( 0.369 0.338 0.000)
|
||||
( 0.338 0.369 0.000)
|
||||
( 0.000 0.500 0.000)
|
||||
( 0.737 0.676 0.000)
|
||||
( 0.074 0.068 0.000)
|
||||
( 0.676 0.737 0.000)
|
||||
( 0.068 0.074 0.000)
|
||||
( 0.000 1.000 0.000)
|
||||
( 1.000 0.000 0.000)
|
||||
( 0.100 0.000 0.000)
|
||||
( 0.000 0.100 0.000)
|
||||
( 0.500 0.000 2.000)
|
||||
( 0.369 0.338 2.000)
|
||||
( 0.338 0.369 2.000)
|
||||
( 0.000 0.500 2.000)
|
||||
( 0.737 0.676 2.000)
|
||||
( 0.074 0.068 2.000)
|
||||
( 0.676 0.737 2.000)
|
||||
( 0.068 0.074 2.000)
|
||||
( 0.000 1.000 2.000)
|
||||
( 1.000 0.000 2.000)
|
||||
( 0.100 0.000 2.000)
|
||||
( 0.000 0.100 2.000)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (1 0 9 4 13 12 21 16) (10 20 40) simpleGrading (1 1 1)
|
||||
hex (2 1 4 6 14 13 16 18) (2 20 40) simpleGrading (1 1 1)
|
||||
hex (3 2 6 8 15 14 18 20) (10 20 40) simpleGrading (1 1 1)
|
||||
hex (5 10 0 1 17 22 12 13) (10 20 40) simpleGrading (1 1 1)
|
||||
hex (11 7 2 3 23 19 14 15) (10 20 40) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
arc 0 1 ( 0.470 0.171 0.000 )
|
||||
arc 12 13 ( 0.470 0.171 2.000 )
|
||||
arc 2 3 ( 0.171 0.470 0.000 )
|
||||
arc 14 15 ( 0.171 0.470 2.000 )
|
||||
arc 9 4 ( 0.940 0.342 0.000 )
|
||||
arc 21 16 ( 0.940 0.342 2.000 )
|
||||
arc 5 10 ( 0.094 0.034 0.000 )
|
||||
arc 17 22 ( 0.094 0.034 2.000 )
|
||||
arc 6 8 ( 0.342 0.940 0.000 )
|
||||
arc 18 20 ( 0.342 0.940 2.000 )
|
||||
arc 11 7 ( 0.034 0.094 0.000 )
|
||||
arc 23 19 ( 0.034 0.094 2.000 )
|
||||
);
|
||||
|
||||
patches
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(13 12 21 16)
|
||||
(14 13 16 18)
|
||||
(15 14 18 20)
|
||||
(17 22 12 13)
|
||||
(23 19 14 15)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(1 4 9 0)
|
||||
(2 6 4 1)
|
||||
(3 8 6 2)
|
||||
(5 1 0 10)
|
||||
(11 3 2 7)
|
||||
)
|
||||
wall innerWall
|
||||
(
|
||||
(2 1 13 14)
|
||||
(5 10 22 17)
|
||||
(5 17 13 1)
|
||||
(11 7 19 23)
|
||||
(7 2 14 19)
|
||||
)
|
||||
wall outerWall
|
||||
(
|
||||
(4 16 21 9)
|
||||
(6 18 16 4)
|
||||
(8 20 18 6)
|
||||
)
|
||||
cyclic cyclic
|
||||
(
|
||||
(0 9 21 12)
|
||||
(10 0 12 22)
|
||||
(3 15 20 8)
|
||||
(11 23 15 3)
|
||||
)
|
||||
);
|
||||
|
||||
mergeMatchPairs
|
||||
(
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user