44 void Foam::LESModels::smoothDelta::setChangedFaces
48 DynamicList<labelPair>& changedFaces,
49 DynamicList<deltaData>& changedFacesInfo
58 if (ownDelta > maxDeltaRatio_*neiDelta)
60 changedFaces.append(
labelPair(-1, facei));
61 changedFacesInfo.append(deltaData(ownDelta));
63 else if (neiDelta > maxDeltaRatio_*ownDelta)
65 changedFaces.append(
labelPair(-1, facei));
66 changedFacesInfo.append(deltaData(neiDelta));
80 const scalar ownDelta =
delta[patch.faceCells()[patchFacei]];
83 changedFacesInfo.append(deltaData(ownDelta));
88 changedFaces.shrink();
89 changedFacesInfo.shrink();
93 void Foam::LESModels::smoothDelta::calcDelta()
95 const fvMesh&
mesh = momentumTransportModel_.mesh();
100 DynamicList<labelPair> changedFaces(
mesh.
nFaces()/100 + 100);
101 DynamicList<deltaData> changedFacesInfo(changedFaces.size());
102 setChangedFaces(
mesh, geometricDelta, changedFaces, changedFacesInfo);
106 forAll(geometricDelta, celli)
108 cellDeltaData[celli] = geometricDelta[celli];
115 FvFaceCellWave<deltaData>::template
118 FvFaceCellWave<deltaData>::template
125 FvFaceCellWave<deltaData, scalar> deltaCalc
130 internalFaceDeltaData,
139 delta_[celli] = cellDeltaData[celli].delta();
178 geometricDelta_().read(coeffDict);
179 coeffDict.
lookup(
"maxDeltaRatio") >> maxDeltaRatio_;
186 geometricDelta_().correct();
188 if (momentumTransportModel_.mesh().changing())
#define forAll(list, i)
Loop across all elements in list.
Macros for easy insertion into run-time selection tables.
Smoothed delta which takes a given simple geometric delta and applies smoothing to it such that the r...
smoothDelta(const word &name, const momentumTransportModel &turbulence, const dictionary &)
Construct from name, momentumTransportModel and dictionary.
virtual void read(const dictionary &)
Read the LESdelta dictionary.
Abstract base class for LES deltas.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
const labelUList & owner() const
Internal face owner.
const fvBoundaryMesh & boundary() const
Return reference to boundary mesh.
const labelUList & neighbour() const
Internal face neighbour.
label nTotalCells() const
Return total number of cells in decomposed mesh.
Abstract base class for momentum transport models (RAS, LES and laminar).
Motion of the mesh specified as a list of pointMeshMovers.
const globalMeshData & globalData() const
Return parallel info.
label nInternalFaces() const
A class for handling words, derived from string.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
defineTypeNameAndDebug(cubeRootVolDelta, 0)
addToRunTimeSelectionTable(LESdelta, cubeRootVolDelta, dictionary)
const unitSet & lookup(const word &unitName)
Lookup and return the named unit from the table.
Pair< label > labelPair
Label pair.
VolField< scalar > volScalarField
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
autoPtr< incompressible::momentumTransportModel > turbulence(incompressible::momentumTransportModel::New(U, phi, viscosity))