extrudeToRegionMesh: Rationalisation
An extruded region is now contiguous even when specified with multiple face zones. Edges that border faces in different zones now extrude into internal faces, rather than a pair of boundary faces. Different zones now result only in different mapped patches in the extruded and primary meshes. This means a mesh can be created for a single contiguous extruded region spanning multiple patches. This might be necessary if, for example, a film region is needed across multiple walls with differing thermal boundary conditions. Disconnected extruded regions can still be constructed by running the extrudeToRegionMesh utility muiliple times. The mapped patches created to couple the extruded regions now have symmetric names similar to those created by splitMeshRegions. For example, if the mapped patch in the primary region is called "region0_to_extrudedRegion_f0", then the corresponding patch in the extruded region is called "extrudedRegion_to_region0_f0" (f0, in this example is the face zone from which the region was extruded). Offsetting of the top patch is now handled automatically by a new mappedExtrudedWallPolyPatch. This refers to the bottom patch and automatically calculates the sampling offsets by doing a wave across the extruded mesh layers. This prevents the need to store the offsets in the patch itself, and makes it possible for the patch to undergo mesh changes without adding additional functions to the polyPatch (mapping constructors, autoMap and rmap methods, etc ...).
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -13,66 +13,36 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
// Name of region to create
|
// Name of the region to create
|
||||||
region liquidFilm;
|
region liquidFilm;
|
||||||
|
|
||||||
// Specification of faces to extrude. Either faceZones (either exclusively
|
// Specification of faces to extrude. Either faceZones (either exclusively
|
||||||
// internal faces or boundary faces) or faceSets (boundary faces only).
|
// internal faces or boundary faces) or faceSets (boundary faces only). These
|
||||||
|
// faces will be connected to the bottom patch of the extruded region. If
|
||||||
|
// shadow faces are also specified then these will be connected to the top
|
||||||
|
// patch of the extruded region.
|
||||||
|
|
||||||
// FaceZones to extrude
|
// The faceZones to extrude
|
||||||
faceZones (f0 f1);
|
faceZones (f0 f1);
|
||||||
// faceZonesShadow (f0Shadow f1Shadow);
|
// faceZonesShadow (f0Shadow f1Shadow);
|
||||||
|
|
||||||
// faceSets to extrude
|
// The faceSets to extrude
|
||||||
// faceSets (f0 f1);
|
// faceSets (f0 f1);
|
||||||
// faceSetsShadow (f0Shadow f1Shadow);
|
// faceSetsShadow (f0Shadow f1Shadow);
|
||||||
|
|
||||||
// Adapt the original mesh to have mapped patches at where the
|
// Adapt the original mesh to have mapped patches that connect to the extruded
|
||||||
// faceZones are?
|
// region? If so, then extruded internal faces become baffles with mapped
|
||||||
// If true:
|
// patches, and extruded boundary faces are repatched onto mapped patches.
|
||||||
// - extruding internal faces: become baffles on mapped patches
|
// Otherwise the original mesh is not modified. The extruded mesh will still
|
||||||
// - extruding boundary faces: repatched to be on mapped patches
|
// have mapped patches created which will need to be changed.
|
||||||
// If false: leave original mesh intact. Extruded mesh will still have
|
|
||||||
// mapped patch which might need to be adapted.
|
|
||||||
adaptMesh true;
|
adaptMesh true;
|
||||||
|
|
||||||
// Sample mode for inter-region communication
|
//- Extrusion settings
|
||||||
sampleMode nearestPatchFace;
|
|
||||||
|
|
||||||
|
|
||||||
// 1 D extrusion
|
|
||||||
// ~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
// Extrude 1D-columns of cells? This by default duplicates points so can
|
|
||||||
// have overlapping columns (i.e. non space filling)
|
|
||||||
oneD false;
|
|
||||||
|
|
||||||
//- If oneD: specify which boundary is wanted between the layers
|
|
||||||
// oneDPolyPatchType empty; // wedge
|
|
||||||
|
|
||||||
//- If oneD: specify whether to duplicate points (i.e. disconnect 1D
|
|
||||||
// columns) or only on non-manifold extrusion areas. Default is false.
|
|
||||||
// nonManifold true;
|
|
||||||
|
|
||||||
|
|
||||||
//- Extrusion model to use. The only logical choice is linearNormal?
|
|
||||||
|
|
||||||
//- Linear extrusion in normal direction
|
|
||||||
extrudeModel linearNormal;
|
extrudeModel linearNormal;
|
||||||
|
|
||||||
//- Linear extrusion in specified direction
|
|
||||||
// extrudeModel linearDirection;
|
// extrudeModel linearDirection;
|
||||||
|
|
||||||
//- Wedge extrusion. If nLayers is 1 assumes symmetry around plane.
|
|
||||||
// extrudeModel wedge;
|
// extrudeModel wedge;
|
||||||
|
|
||||||
//- Extrudes into sphere around (0 0 0)
|
|
||||||
// extrudeModel linearRadial;
|
// extrudeModel linearRadial;
|
||||||
|
|
||||||
//- Extrudes into sphere around (0 0 0) with specified radii
|
|
||||||
// extrudeModel radial;
|
// extrudeModel radial;
|
||||||
|
|
||||||
//- Extrudes into sphere with grading according to pressure (atmospherics)
|
|
||||||
// extrudeModel sigmaRadial;
|
// extrudeModel sigmaRadial;
|
||||||
|
|
||||||
nLayers 10;
|
nLayers 10;
|
||||||
@ -84,6 +54,12 @@ linearNormalCoeffs
|
|||||||
thickness 0.05;
|
thickness 0.05;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
linearDirectionCoeffs
|
||||||
|
{
|
||||||
|
direction (0 1 0);
|
||||||
|
thickness 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
wedgeCoeffs
|
wedgeCoeffs
|
||||||
{
|
{
|
||||||
axisPt (0 0.1 -0.05);
|
axisPt (0 0.1 -0.05);
|
||||||
@ -91,12 +67,6 @@ wedgeCoeffs
|
|||||||
angle 360; // For nLayers=1 assume symmetry so angle/2 on each side
|
angle 360; // For nLayers=1 assume symmetry so angle/2 on each side
|
||||||
}
|
}
|
||||||
|
|
||||||
linearDirectionCoeffs
|
|
||||||
{
|
|
||||||
direction (0 1 0);
|
|
||||||
thickness 0.05;
|
|
||||||
}
|
|
||||||
|
|
||||||
linearRadialCoeffs
|
linearRadialCoeffs
|
||||||
{
|
{
|
||||||
R 0.1;
|
R 0.1;
|
||||||
|
|||||||
@ -39,6 +39,7 @@ derivedFvPatches = $(fvPatches)/derived
|
|||||||
$(derivedFvPatches)/wall/wallFvPatch.C
|
$(derivedFvPatches)/wall/wallFvPatch.C
|
||||||
$(derivedFvPatches)/mapped/mappedFvPatch.C
|
$(derivedFvPatches)/mapped/mappedFvPatch.C
|
||||||
$(derivedFvPatches)/mapped/mappedWallFvPatch.C
|
$(derivedFvPatches)/mapped/mappedWallFvPatch.C
|
||||||
|
$(derivedFvPatches)/mapped/mappedExtrudedWallFvPatch.C
|
||||||
|
|
||||||
|
|
||||||
meshWave = algorithms/FvFaceCellWave
|
meshWave = algorithms/FvFaceCellWave
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||||
|
\\/ 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 "mappedExtrudedWallFvPatch.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
defineTypeNameAndDebug(mappedExtrudedWallFvPatch, 0);
|
||||||
|
addToRunTimeSelectionTable(fvPatch, mappedExtrudedWallFvPatch, polyPatch);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||||
|
\\/ 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::mappedExtrudedWallFvPatch
|
||||||
|
|
||||||
|
SourceFiles
|
||||||
|
mappedExtrudedWallFvPatch.C
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef mappedExtrudedWallFvPatch_H
|
||||||
|
#define mappedExtrudedWallFvPatch_H
|
||||||
|
|
||||||
|
#include "wallFvPatch.H"
|
||||||
|
#include "mappedExtrudedWallPolyPatch.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class mappedExtrudedWallFvPatch Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
class mappedExtrudedWallFvPatch
|
||||||
|
:
|
||||||
|
public wallFvPatch
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName(mappedExtrudedWallPolyPatch::typeName_());
|
||||||
|
|
||||||
|
|
||||||
|
// Constructors
|
||||||
|
|
||||||
|
//- Construct from components
|
||||||
|
mappedExtrudedWallFvPatch
|
||||||
|
(
|
||||||
|
const polyPatch& patch,
|
||||||
|
const fvBoundaryMesh& bm
|
||||||
|
)
|
||||||
|
:
|
||||||
|
wallFvPatch(patch, bm)
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -250,9 +250,11 @@ patchToPatch/rays/raysPatchToPatch.C
|
|||||||
mappedPatches/mappedPolyPatch/mappedPatchBase.C
|
mappedPatches/mappedPolyPatch/mappedPatchBase.C
|
||||||
mappedPatches/mappedPolyPatch/mappedPolyPatch.C
|
mappedPatches/mappedPolyPatch/mappedPolyPatch.C
|
||||||
mappedPatches/mappedPolyPatch/mappedWallPolyPatch.C
|
mappedPatches/mappedPolyPatch/mappedWallPolyPatch.C
|
||||||
|
mappedPatches/mappedPolyPatch/mappedExtrudedWallPolyPatch.C
|
||||||
|
|
||||||
mappedPatches/mappedPointPatch/mappedPointPatch.C
|
mappedPatches/mappedPointPatch/mappedPointPatch.C
|
||||||
mappedPatches/mappedPointPatch/mappedWallPointPatch.C
|
mappedPatches/mappedPointPatch/mappedWallPointPatch.C
|
||||||
|
mappedPatches/mappedPointPatch/mappedExtrudedWallPointPatch.C
|
||||||
|
|
||||||
meshStructure/meshStructure.C
|
meshStructure/meshStructure.C
|
||||||
meshStructure/topoDistanceData.C
|
meshStructure/topoDistanceData.C
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration | Website: https://openfoam.org
|
\\ / O peration | Website: https://openfoam.org
|
||||||
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -22,22 +22,21 @@ License
|
|||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Class
|
Class
|
||||||
Foam::DeltaInfoData
|
Foam::LayerInfoData
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Class to be used with FaceCellWave which calculates the delta (thickness)
|
Class to be used with FaceCellWave which enumerates layers of cells and
|
||||||
across a layered mesh
|
transports data through those layers
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
DeltaInfoDataI.H
|
LayerInfoDataI.H
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifndef DeltaInfoData_H
|
#ifndef LayerInfoData_H
|
||||||
#define DeltaInfoData_H
|
#define LayerInfoData_H
|
||||||
|
|
||||||
#include "pointField.H"
|
#include "layerInfo.H"
|
||||||
#include "face.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -51,29 +50,23 @@ class transformer;
|
|||||||
|
|
||||||
// Forward declaration of friend functions and operators
|
// Forward declaration of friend functions and operators
|
||||||
template<class Type>
|
template<class Type>
|
||||||
class DeltaInfoData;
|
class LayerInfoData;
|
||||||
template<class Type>
|
template<class Type>
|
||||||
Ostream& operator<<(Ostream&, const DeltaInfoData<Type>&);
|
Ostream& operator<<(Ostream&, const LayerInfoData<Type>&);
|
||||||
template<class Type>
|
template<class Type>
|
||||||
Istream& operator>>(Istream&, DeltaInfoData<Type>&);
|
Istream& operator>>(Istream&, LayerInfoData<Type>&);
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class DeltaInfoData Declaration
|
Class LayerInfoData Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
class DeltaInfoData
|
class LayerInfoData
|
||||||
|
:
|
||||||
|
public layerInfo
|
||||||
{
|
{
|
||||||
// Private Data
|
// Private Data
|
||||||
|
|
||||||
//- Direction of propagation (+1 or -1) relative to the face normal.
|
|
||||||
// Only valid when on a face. Takes a value of 0 when in a cell.
|
|
||||||
label direction_;
|
|
||||||
|
|
||||||
//- The previous face index. Only valid when in a cell. Takes a value
|
|
||||||
// of -1 if on a face.
|
|
||||||
label prevFace_;
|
|
||||||
|
|
||||||
//- Data
|
//- Data
|
||||||
Type data_;
|
Type data_;
|
||||||
|
|
||||||
@ -83,10 +76,15 @@ public:
|
|||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct null
|
//- Construct null
|
||||||
inline DeltaInfoData();
|
inline LayerInfoData();
|
||||||
|
|
||||||
//- Construct for a face given a direction and data
|
//- Construct given the face layer index and direction
|
||||||
inline DeltaInfoData(const label direction, const Type& data);
|
inline LayerInfoData
|
||||||
|
(
|
||||||
|
const label faceLayer,
|
||||||
|
const label direction,
|
||||||
|
const Type& data
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
@ -99,22 +97,6 @@ public:
|
|||||||
|
|
||||||
// Needed by FaceCellWave
|
// Needed by FaceCellWave
|
||||||
|
|
||||||
//- Check whether the DeltaInfoData has been changed at all or still
|
|
||||||
// contains original (invalid) value.
|
|
||||||
template<class TrackingData>
|
|
||||||
inline bool valid(TrackingData& td) const;
|
|
||||||
|
|
||||||
//- Check for identical geometrical data. Used for checking
|
|
||||||
// consistency across cyclics.
|
|
||||||
template<class TrackingData>
|
|
||||||
inline bool sameGeometry
|
|
||||||
(
|
|
||||||
const polyMesh&,
|
|
||||||
const DeltaInfoData<Type>&,
|
|
||||||
const scalar,
|
|
||||||
TrackingData& td
|
|
||||||
) const;
|
|
||||||
|
|
||||||
//- Transform across an interface
|
//- Transform across an interface
|
||||||
template<class TrackingData>
|
template<class TrackingData>
|
||||||
inline void transform
|
inline void transform
|
||||||
@ -131,8 +113,8 @@ public:
|
|||||||
(
|
(
|
||||||
const polyMesh&,
|
const polyMesh&,
|
||||||
const label thisCelli,
|
const label thisCelli,
|
||||||
const label neighbourFacei,
|
const label nbrFacei,
|
||||||
const DeltaInfoData<Type>& neighbourInfo,
|
const LayerInfoData<Type>& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
);
|
);
|
||||||
@ -143,8 +125,8 @@ public:
|
|||||||
(
|
(
|
||||||
const polyMesh&,
|
const polyMesh&,
|
||||||
const label thisFacei,
|
const label thisFacei,
|
||||||
const label neighbourCelli,
|
const label nbrCelli,
|
||||||
const DeltaInfoData<Type>& neighbourInfo,
|
const LayerInfoData<Type>& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
);
|
);
|
||||||
@ -155,7 +137,7 @@ public:
|
|||||||
(
|
(
|
||||||
const polyMesh&,
|
const polyMesh&,
|
||||||
const label thisFacei,
|
const label thisFacei,
|
||||||
const DeltaInfoData<Type>& neighbourInfo,
|
const LayerInfoData<Type>& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
);
|
);
|
||||||
@ -164,15 +146,15 @@ public:
|
|||||||
template<class TrackingData>
|
template<class TrackingData>
|
||||||
inline bool equal
|
inline bool equal
|
||||||
(
|
(
|
||||||
const DeltaInfoData<Type>&,
|
const LayerInfoData<Type>&,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
|
||||||
// Member Operators
|
// Member Operators
|
||||||
|
|
||||||
inline bool operator==(const DeltaInfoData<Type>&) const;
|
inline bool operator==(const LayerInfoData<Type>&) const;
|
||||||
inline bool operator!=(const DeltaInfoData<Type>&) const;
|
inline bool operator!=(const LayerInfoData<Type>&) const;
|
||||||
|
|
||||||
|
|
||||||
// IOstream Operators
|
// IOstream Operators
|
||||||
@ -180,12 +162,12 @@ public:
|
|||||||
friend Ostream& operator<< <Type>
|
friend Ostream& operator<< <Type>
|
||||||
(
|
(
|
||||||
Ostream&,
|
Ostream&,
|
||||||
const DeltaInfoData<Type>&
|
const LayerInfoData<Type>&
|
||||||
);
|
);
|
||||||
friend Istream& operator>> <Type>
|
friend Istream& operator>> <Type>
|
||||||
(
|
(
|
||||||
Istream&,
|
Istream&,
|
||||||
DeltaInfoData<Type>&
|
LayerInfoData<Type>&
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -195,7 +177,7 @@ public:
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
#include "DeltaInfoDataI.H"
|
#include "LayerInfoDataI.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration | Website: https://openfoam.org
|
\\ / O peration | Website: https://openfoam.org
|
||||||
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -23,29 +23,28 @@ License
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "DeltaInfoData.H"
|
#include "LayerInfoData.H"
|
||||||
#include "polyMesh.H"
|
#include "polyMesh.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
inline Foam::DeltaInfoData<Type>::DeltaInfoData()
|
inline Foam::LayerInfoData<Type>::LayerInfoData()
|
||||||
:
|
:
|
||||||
direction_(0),
|
layerInfo(),
|
||||||
prevFace_(-labelMax),
|
|
||||||
data_()
|
data_()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
inline Foam::DeltaInfoData<Type>::DeltaInfoData
|
inline Foam::LayerInfoData<Type>::LayerInfoData
|
||||||
(
|
(
|
||||||
|
const label faceLayer,
|
||||||
const label direction,
|
const label direction,
|
||||||
const Type& data
|
const Type& data
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
direction_(direction),
|
layerInfo(faceLayer, direction),
|
||||||
prevFace_(-labelMax),
|
|
||||||
data_(data)
|
data_(data)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -53,7 +52,7 @@ inline Foam::DeltaInfoData<Type>::DeltaInfoData
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
inline const Type& Foam::DeltaInfoData<Type>::data() const
|
inline const Type& Foam::LayerInfoData<Type>::data() const
|
||||||
{
|
{
|
||||||
return data_;
|
return data_;
|
||||||
}
|
}
|
||||||
@ -61,58 +60,33 @@ inline const Type& Foam::DeltaInfoData<Type>::data() const
|
|||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
template<class TrackingData>
|
template<class TrackingData>
|
||||||
inline bool Foam::DeltaInfoData<Type>::valid(TrackingData& td) const
|
inline void Foam::LayerInfoData<Type>::transform
|
||||||
{
|
|
||||||
return direction_ != 0 || prevFace_ != -labelMax;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
|
||||||
template<class TrackingData>
|
|
||||||
inline bool Foam::DeltaInfoData<Type>::sameGeometry
|
|
||||||
(
|
|
||||||
const polyMesh&,
|
|
||||||
const DeltaInfoData<Type>& l,
|
|
||||||
const scalar tol,
|
|
||||||
TrackingData& td
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
|
||||||
template<class TrackingData>
|
|
||||||
inline void Foam::DeltaInfoData<Type>::transform
|
|
||||||
(
|
(
|
||||||
const polyPatch& patch,
|
const polyPatch& patch,
|
||||||
const label patchFacei,
|
const label patchFacei,
|
||||||
const transformer& transform,
|
const transformer& transform,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
)
|
)
|
||||||
{}
|
{
|
||||||
|
data_ = transform.transform(data_);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
template<class TrackingData>
|
template<class TrackingData>
|
||||||
inline bool Foam::DeltaInfoData<Type>::updateCell
|
inline bool Foam::LayerInfoData<Type>::updateCell
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const label thisCelli,
|
const label thisCelli,
|
||||||
const label neighbourFacei,
|
const label nbrFacei,
|
||||||
const DeltaInfoData<Type>& neighbourDeltaInfo,
|
const LayerInfoData<Type>& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const bool o = thisCelli == mesh.faceOwner()[neighbourFacei];
|
if (layerInfo::updateCell(mesh, thisCelli, nbrFacei, nbrInfo, tol, td))
|
||||||
|
|
||||||
if (o == (neighbourDeltaInfo.direction_ < 0))
|
|
||||||
{
|
{
|
||||||
direction_ = 0;
|
data_ = nbrInfo.data_;
|
||||||
prevFace_ = neighbourFacei;
|
|
||||||
data_ = neighbourDeltaInfo.data_;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -124,29 +98,19 @@ inline bool Foam::DeltaInfoData<Type>::updateCell
|
|||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
template<class TrackingData>
|
template<class TrackingData>
|
||||||
inline bool Foam::DeltaInfoData<Type>::updateFace
|
inline bool Foam::LayerInfoData<Type>::updateFace
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const label thisFacei,
|
const label thisFacei,
|
||||||
const label neighbourCelli,
|
const label nbrCelli,
|
||||||
const DeltaInfoData<Type>& neighbourDeltaInfo,
|
const LayerInfoData<Type>& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const cell& c = mesh.cells()[neighbourCelli];
|
if (layerInfo::updateFace(mesh, thisFacei, nbrCelli, nbrInfo, tol, td))
|
||||||
const label prevFacei = neighbourDeltaInfo.prevFace_;
|
|
||||||
const label nextFacei = c.opposingFaceLabel(prevFacei, mesh.faces());
|
|
||||||
|
|
||||||
if (nextFacei == thisFacei)
|
|
||||||
{
|
{
|
||||||
const label direction =
|
data_ = nbrInfo.data_;
|
||||||
mesh.faceOwner()[thisFacei] == neighbourCelli ? +1 : -1;
|
|
||||||
|
|
||||||
direction_ = direction;
|
|
||||||
prevFace_ = -labelMax;
|
|
||||||
data_ = neighbourDeltaInfo.data_;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -158,30 +122,32 @@ inline bool Foam::DeltaInfoData<Type>::updateFace
|
|||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
template<class TrackingData>
|
template<class TrackingData>
|
||||||
inline bool Foam::DeltaInfoData<Type>::updateFace
|
inline bool Foam::LayerInfoData<Type>::updateFace
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const label thisFacei,
|
const label thisFacei,
|
||||||
const DeltaInfoData<Type>& neighbourDeltaInfo,
|
const LayerInfoData<Type>& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const label direction = -neighbourDeltaInfo.direction_;
|
if (layerInfo::updateFace(mesh, thisFacei, nbrInfo, tol, td))
|
||||||
|
{
|
||||||
direction_ = direction;
|
data_ = nbrInfo.data_;
|
||||||
prevFace_ = -labelMax;
|
|
||||||
data_ = neighbourDeltaInfo.data_;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
template<class TrackingData>
|
template<class TrackingData>
|
||||||
inline bool Foam::DeltaInfoData<Type>::equal
|
inline bool Foam::LayerInfoData<Type>::equal
|
||||||
(
|
(
|
||||||
const DeltaInfoData<Type>& rhs,
|
const LayerInfoData<Type>& rhs,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
@ -192,19 +158,19 @@ inline bool Foam::DeltaInfoData<Type>::equal
|
|||||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
inline bool Foam::DeltaInfoData<Type>::operator==
|
inline bool Foam::LayerInfoData<Type>::operator==
|
||||||
(
|
(
|
||||||
const Foam::DeltaInfoData<Type>& rhs
|
const Foam::LayerInfoData<Type>& rhs
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return direction_ == rhs.direction_ && prevFace_ == rhs.prevFace_;
|
return layerInfo::operator==(rhs) && data_ == rhs.data_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
inline bool Foam::DeltaInfoData<Type>::operator!=
|
inline bool Foam::LayerInfoData<Type>::operator!=
|
||||||
(
|
(
|
||||||
const Foam::DeltaInfoData<Type>& rhs
|
const Foam::LayerInfoData<Type>& rhs
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return !(*this == rhs);
|
return !(*this == rhs);
|
||||||
@ -214,19 +180,16 @@ inline bool Foam::DeltaInfoData<Type>::operator!=
|
|||||||
// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
Foam::Ostream& Foam::operator<<(Ostream& os, const DeltaInfoData<Type>& l)
|
Foam::Ostream& Foam::operator<<(Ostream& os, const LayerInfoData<Type>& l)
|
||||||
{
|
{
|
||||||
return os
|
return os << static_cast<const layerInfo&>(l) << token::SPACE << l.data_;
|
||||||
<< l.direction_ << token::SPACE
|
|
||||||
<< l.prevFace_ << token::SPACE
|
|
||||||
<< l.data_;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
Foam::Istream& Foam::operator>>(Istream& is, DeltaInfoData<Type>& l)
|
Foam::Istream& Foam::operator>>(Istream& is, LayerInfoData<Type>& l)
|
||||||
{
|
{
|
||||||
return is >> l.direction_ >> l.prevFace_ >> l.data_;
|
return is >> static_cast<layerInfo&>(l) >> l.data_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -135,8 +135,8 @@ public:
|
|||||||
(
|
(
|
||||||
const polyMesh&,
|
const polyMesh&,
|
||||||
const label thisCelli,
|
const label thisCelli,
|
||||||
const label neighbourFacei,
|
const label nbrFacei,
|
||||||
const layerInfo& neighbourInfo,
|
const layerInfo& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
);
|
);
|
||||||
@ -147,8 +147,8 @@ public:
|
|||||||
(
|
(
|
||||||
const polyMesh&,
|
const polyMesh&,
|
||||||
const label thisFacei,
|
const label thisFacei,
|
||||||
const label neighbourCelli,
|
const label nbrCelli,
|
||||||
const layerInfo& neighbourInfo,
|
const layerInfo& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
);
|
);
|
||||||
@ -159,7 +159,7 @@ public:
|
|||||||
(
|
(
|
||||||
const polyMesh&,
|
const polyMesh&,
|
||||||
const label thisFacei,
|
const label thisFacei,
|
||||||
const layerInfo& neighbourInfo,
|
const layerInfo& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
);
|
);
|
||||||
@ -100,7 +100,7 @@ inline bool Foam::layerInfo::sameGeometry
|
|||||||
TrackingData& td
|
TrackingData& td
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return layer_ == l.layer_;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -120,21 +120,21 @@ inline bool Foam::layerInfo::updateCell
|
|||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const label thisCelli,
|
const label thisCelli,
|
||||||
const label neighbourFacei,
|
const label nbrFacei,
|
||||||
const layerInfo& neighbourLayerInfo,
|
const layerInfo& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const bool o = thisCelli == mesh.faceOwner()[neighbourFacei];
|
const bool o = thisCelli == mesh.faceOwner()[nbrFacei];
|
||||||
|
|
||||||
if (o == (neighbourLayerInfo.direction_ < 0))
|
if (o == (nbrInfo.direction_ < 0))
|
||||||
{
|
{
|
||||||
if (valid(td) && prevFace_ != neighbourFacei) collide();
|
if (valid(td) && prevFace_ != nbrFacei) collide();
|
||||||
|
|
||||||
layer_ = valid(td) ? -labelMax : neighbourLayerInfo.layer_ + 1;
|
layer_ = valid(td) ? -labelMax : nbrInfo.layer_ + 1;
|
||||||
direction_ = 0;
|
direction_ = 0;
|
||||||
prevFace_ = neighbourFacei;
|
prevFace_ = nbrFacei;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -150,24 +150,24 @@ inline bool Foam::layerInfo::updateFace
|
|||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const label thisFacei,
|
const label thisFacei,
|
||||||
const label neighbourCelli,
|
const label nbrCelli,
|
||||||
const layerInfo& neighbourLayerInfo,
|
const layerInfo& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const cell& c = mesh.cells()[neighbourCelli];
|
const cell& c = mesh.cells()[nbrCelli];
|
||||||
const label prevFacei = neighbourLayerInfo.prevFace_;
|
const label prevFacei = nbrInfo.prevFace_;
|
||||||
const label nextFacei = c.opposingFaceLabel(prevFacei, mesh.faces());
|
const label nextFacei = c.opposingFaceLabel(prevFacei, mesh.faces());
|
||||||
|
|
||||||
if (nextFacei == thisFacei)
|
if (nextFacei == thisFacei)
|
||||||
{
|
{
|
||||||
const label direction =
|
const label direction =
|
||||||
mesh.faceOwner()[thisFacei] == neighbourCelli ? +1 : -1;
|
mesh.faceOwner()[thisFacei] == nbrCelli ? +1 : -1;
|
||||||
|
|
||||||
if (valid(td) && direction != direction_) collide();
|
if (valid(td) && direction != direction_) collide();
|
||||||
|
|
||||||
layer_ = valid(td) ? -labelMax : neighbourLayerInfo.layer_ + 1;
|
layer_ = valid(td) ? -labelMax : nbrInfo.layer_ + 1;
|
||||||
direction_ = direction;
|
direction_ = direction;
|
||||||
prevFace_ = -labelMax;
|
prevFace_ = -labelMax;
|
||||||
|
|
||||||
@ -185,16 +185,16 @@ inline bool Foam::layerInfo::updateFace
|
|||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const label thisFacei,
|
const label thisFacei,
|
||||||
const layerInfo& neighbourLayerInfo,
|
const layerInfo& nbrInfo,
|
||||||
const scalar tol,
|
const scalar tol,
|
||||||
TrackingData& td
|
TrackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const label direction = -neighbourLayerInfo.direction_;
|
const label direction = -nbrInfo.direction_;
|
||||||
|
|
||||||
if (valid(td) && direction != direction_) collide();
|
if (valid(td) && direction != direction_) collide();
|
||||||
|
|
||||||
layer_ = valid(td) ? -labelMax : neighbourLayerInfo.layer_;
|
layer_ = valid(td) ? -labelMax : nbrInfo.layer_;
|
||||||
direction_ = direction;
|
direction_ = direction;
|
||||||
prevFace_ = -labelMax;
|
prevFace_ = -labelMax;
|
||||||
|
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||||
|
\\/ 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 "mappedExtrudedWallPointPatch.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defineTypeNameAndDebug(mappedExtrudedWallPointPatch, 0);
|
||||||
|
|
||||||
|
// Add the patch constructor functions to the hash tables
|
||||||
|
addToRunTimeSelectionTable
|
||||||
|
(
|
||||||
|
facePointPatch,
|
||||||
|
mappedExtrudedWallPointPatch,
|
||||||
|
polyPatch
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||||
|
\\/ 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::mappedExtrudedWallPointPatch
|
||||||
|
|
||||||
|
SourceFiles
|
||||||
|
mappedExtrudedWallPointPatch.C
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef mappedExtrudedWallPointPatch_H
|
||||||
|
#define mappedExtrudedWallPointPatch_H
|
||||||
|
|
||||||
|
#include "wallPointPatch.H"
|
||||||
|
#include "mappedExtrudedWallPolyPatch.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class mappedExtrudedWallPointPatch Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
class mappedExtrudedWallPointPatch
|
||||||
|
:
|
||||||
|
public wallPointPatch
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName(mappedExtrudedWallPolyPatch::typeName_());
|
||||||
|
|
||||||
|
|
||||||
|
// Constructors
|
||||||
|
|
||||||
|
//- Construct from polyPatch
|
||||||
|
mappedExtrudedWallPointPatch
|
||||||
|
(
|
||||||
|
const polyPatch& patch,
|
||||||
|
const pointBoundaryMesh& bm
|
||||||
|
)
|
||||||
|
:
|
||||||
|
wallPointPatch(patch, bm)
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,277 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||||
|
\\/ 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 "mappedExtrudedWallPolyPatch.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
#include "LayerInfoData.H"
|
||||||
|
#include "FaceCellWave.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
defineTypeNameAndDebug(mappedExtrudedWallPolyPatch, 0);
|
||||||
|
|
||||||
|
addToRunTimeSelectionTable(polyPatch, mappedExtrudedWallPolyPatch, word);
|
||||||
|
addToRunTimeSelectionTable
|
||||||
|
(
|
||||||
|
polyPatch,
|
||||||
|
mappedExtrudedWallPolyPatch,
|
||||||
|
dictionary
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::mappedExtrudedWallPolyPatch::initCalcGeometry(PstreamBuffers& pBufs)
|
||||||
|
{
|
||||||
|
mappedWallPolyPatch::initCalcGeometry(pBufs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::mappedExtrudedWallPolyPatch::calcGeometry(PstreamBuffers& pBufs)
|
||||||
|
{
|
||||||
|
mappedWallPolyPatch::calcGeometry(pBufs);
|
||||||
|
samplePointsPtr_.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::mappedExtrudedWallPolyPatch::initMovePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
|
{
|
||||||
|
mappedWallPolyPatch::initMovePoints(pBufs, p);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::mappedExtrudedWallPolyPatch::movePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
|
{
|
||||||
|
mappedWallPolyPatch::movePoints(pBufs, p);
|
||||||
|
samplePointsPtr_.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::mappedExtrudedWallPolyPatch::initTopoChange(PstreamBuffers& pBufs)
|
||||||
|
{
|
||||||
|
mappedWallPolyPatch::initTopoChange(pBufs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::mappedExtrudedWallPolyPatch::topoChange(PstreamBuffers& pBufs)
|
||||||
|
{
|
||||||
|
mappedWallPolyPatch::topoChange(pBufs);
|
||||||
|
samplePointsPtr_.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::mappedExtrudedWallPolyPatch::mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const word& name,
|
||||||
|
const label size,
|
||||||
|
const label start,
|
||||||
|
const label index,
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const word& patchType
|
||||||
|
)
|
||||||
|
:
|
||||||
|
mappedWallPolyPatch(name, size, start, index, bm, patchType),
|
||||||
|
bottomPatch_(word::null)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::mappedExtrudedWallPolyPatch::mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const word& name,
|
||||||
|
const dictionary& dict,
|
||||||
|
const label index,
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const word& patchType
|
||||||
|
)
|
||||||
|
:
|
||||||
|
mappedWallPolyPatch(name, dict, index, bm, patchType),
|
||||||
|
bottomPatch_(dict.lookupOrDefault<word>("bottomPatch", word::null))
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::mappedExtrudedWallPolyPatch::mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const mappedExtrudedWallPolyPatch& pp,
|
||||||
|
const polyBoundaryMesh& bm
|
||||||
|
)
|
||||||
|
:
|
||||||
|
mappedWallPolyPatch(pp, bm),
|
||||||
|
bottomPatch_(pp.bottomPatch_)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::mappedExtrudedWallPolyPatch::mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const mappedExtrudedWallPolyPatch& pp,
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const label index,
|
||||||
|
const label newSize,
|
||||||
|
const label newStart
|
||||||
|
)
|
||||||
|
:
|
||||||
|
mappedWallPolyPatch(pp, bm, index, newSize, newStart),
|
||||||
|
bottomPatch_(pp.bottomPatch_)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::mappedExtrudedWallPolyPatch::mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const mappedExtrudedWallPolyPatch& pp,
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const label index,
|
||||||
|
const labelUList& mapAddressing,
|
||||||
|
const label newStart
|
||||||
|
)
|
||||||
|
:
|
||||||
|
mappedWallPolyPatch(pp, bm, index, mapAddressing, newStart),
|
||||||
|
bottomPatch_(pp.bottomPatch_)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::mappedExtrudedWallPolyPatch::~mappedExtrudedWallPolyPatch()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::tmp<Foam::pointField>
|
||||||
|
Foam::mappedExtrudedWallPolyPatch::samplePoints() const
|
||||||
|
{
|
||||||
|
if (!samplePointsPtr_.valid())
|
||||||
|
{
|
||||||
|
const bool isExtrudedRegion = bottomPatch_ != word::null;
|
||||||
|
|
||||||
|
if (isExtrudedRegion)
|
||||||
|
{
|
||||||
|
// If this is the extruded region we need to work out where the
|
||||||
|
// corresponding sampling points are on the bottom patch. We do
|
||||||
|
// this by waving the bottom patch points across the layers.
|
||||||
|
|
||||||
|
const polyMesh& mesh = boundaryMesh().mesh();
|
||||||
|
const polyPatch& pp = *this;
|
||||||
|
const polyPatch& bottomPp = boundaryMesh()[bottomPatch_];
|
||||||
|
|
||||||
|
// Get the sample points from the bottom patch
|
||||||
|
const pointField bottomSamplePoints
|
||||||
|
(
|
||||||
|
refCast<const mappedPatchBase>(bottomPp).samplePoints()
|
||||||
|
);
|
||||||
|
|
||||||
|
// Initialise faces on the bottom patch to wave from
|
||||||
|
labelList initialFaces(bottomPp.size());
|
||||||
|
List<LayerInfoData<point>> initialFaceInfo(bottomPp.size());
|
||||||
|
forAll(bottomPp, bottomPpFacei)
|
||||||
|
{
|
||||||
|
initialFaces[bottomPpFacei] =
|
||||||
|
bottomPp.start() + bottomPpFacei;
|
||||||
|
initialFaceInfo[bottomPpFacei] =
|
||||||
|
LayerInfoData<point>
|
||||||
|
(
|
||||||
|
0,
|
||||||
|
-1,
|
||||||
|
bottomSamplePoints[bottomPpFacei]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wave across the mesh layers
|
||||||
|
List<LayerInfoData<point>> faceInfo(mesh.nFaces());
|
||||||
|
List<LayerInfoData<point>> cellInfo(mesh.nCells());
|
||||||
|
FaceCellWave<LayerInfoData<point>>
|
||||||
|
(
|
||||||
|
mesh,
|
||||||
|
initialFaces,
|
||||||
|
initialFaceInfo,
|
||||||
|
faceInfo,
|
||||||
|
cellInfo,
|
||||||
|
mesh.globalData().nTotalCells() + 1
|
||||||
|
);
|
||||||
|
|
||||||
|
// Unpack into this patch's sample points
|
||||||
|
samplePointsPtr_.set(new pointField(pp.size()));
|
||||||
|
forAll(pp, ppFacei)
|
||||||
|
{
|
||||||
|
const LayerInfoData<point>& info =
|
||||||
|
faceInfo[pp.start() + ppFacei];
|
||||||
|
|
||||||
|
static nil td;
|
||||||
|
|
||||||
|
if (!info.valid(td))
|
||||||
|
{
|
||||||
|
FatalErrorInFunction
|
||||||
|
<< "Mesh \"" << mesh.name()
|
||||||
|
<< "\" is not layered between the extruded wall patch "
|
||||||
|
<< "\"" << pp.name() << "\" and the bottom patch \""
|
||||||
|
<< bottomPp.name() << "\"" << exit(FatalError);
|
||||||
|
}
|
||||||
|
|
||||||
|
samplePointsPtr_()[ppFacei] = info.data();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If this is not the extruded region then we trigger construction
|
||||||
|
// of mapping on the extruded region and then reverse map the
|
||||||
|
// extruded region's sampling locations so they are available here
|
||||||
|
|
||||||
|
const mappedExtrudedWallPolyPatch& samplePp =
|
||||||
|
refCast<const mappedExtrudedWallPolyPatch>(samplePolyPatch());
|
||||||
|
|
||||||
|
samplePointsPtr_.set
|
||||||
|
(
|
||||||
|
samplePp.reverseDistribute
|
||||||
|
(
|
||||||
|
samplePp.mappedPatchBase::samplePoints()
|
||||||
|
).ptr()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return samplePointsPtr_();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::mappedExtrudedWallPolyPatch::write(Ostream& os) const
|
||||||
|
{
|
||||||
|
mappedWallPolyPatch::write(os);
|
||||||
|
writeEntryIfDifferent(os, "bottomPatch", word::null, bottomPatch_);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,226 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||||
|
\\/ 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::mappedExtrudedWallPolyPatch
|
||||||
|
|
||||||
|
Description
|
||||||
|
Mapped wall patch which offsets the sampling points to account for the
|
||||||
|
extrusion thickness
|
||||||
|
|
||||||
|
SourceFiles
|
||||||
|
mappedExtrudedWallPolyPatch.C
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef mappedExtrudedWallPolyPatch_H
|
||||||
|
#define mappedExtrudedWallPolyPatch_H
|
||||||
|
|
||||||
|
#include "mappedWallPolyPatch.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
|
||||||
|
class polyMesh;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class mappedExtrudedWallPolyPatch Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
class mappedExtrudedWallPolyPatch
|
||||||
|
:
|
||||||
|
public mappedWallPolyPatch
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
|
||||||
|
// Private Member Data
|
||||||
|
|
||||||
|
//- The bottom patch on the other side of the extruded region. Empty if
|
||||||
|
// this is not the extruded region.
|
||||||
|
word bottomPatch_;
|
||||||
|
|
||||||
|
//- The sample points
|
||||||
|
mutable autoPtr<vectorField> samplePointsPtr_;
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
// Protected Member Functions
|
||||||
|
|
||||||
|
//- Initialise the calculation of the patch geometry
|
||||||
|
virtual void initCalcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
|
//- Calculate the patch geometry
|
||||||
|
virtual void calcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
|
//- Initialise the patches for moving points
|
||||||
|
virtual void initMovePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
|
//- Correct patches after moving points
|
||||||
|
virtual void movePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
|
//- Initialise the update of the patch topology
|
||||||
|
virtual void initTopoChange(PstreamBuffers&);
|
||||||
|
|
||||||
|
//- Update of the patch topology
|
||||||
|
virtual void topoChange(PstreamBuffers&);
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("mappedExtrudedWall");
|
||||||
|
|
||||||
|
|
||||||
|
// Constructors
|
||||||
|
|
||||||
|
//- Construct from components
|
||||||
|
mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const word& name,
|
||||||
|
const label size,
|
||||||
|
const label start,
|
||||||
|
const label index,
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const word& patchType
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Construct from dictionary
|
||||||
|
mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const word& name,
|
||||||
|
const dictionary& dict,
|
||||||
|
const label index,
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const word& patchType
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Construct as copy, resetting the boundary mesh
|
||||||
|
mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const mappedExtrudedWallPolyPatch&,
|
||||||
|
const polyBoundaryMesh&
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Construct given the original patch and resetting the
|
||||||
|
// face list and boundary mesh information
|
||||||
|
mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const mappedExtrudedWallPolyPatch& pp,
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const label index,
|
||||||
|
const label newSize,
|
||||||
|
const label newStart
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Construct given the original patch and a map
|
||||||
|
mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
const mappedExtrudedWallPolyPatch& pp,
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const label index,
|
||||||
|
const labelUList& mapAddressing,
|
||||||
|
const label newStart
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Construct and return a clone, resetting the boundary mesh
|
||||||
|
virtual autoPtr<polyPatch> clone(const polyBoundaryMesh& bm) const
|
||||||
|
{
|
||||||
|
return autoPtr<polyPatch>
|
||||||
|
(
|
||||||
|
new mappedExtrudedWallPolyPatch(*this, bm)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Construct and return a clone, resetting the face list
|
||||||
|
// and boundary mesh
|
||||||
|
virtual autoPtr<polyPatch> clone
|
||||||
|
(
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const label index,
|
||||||
|
const label newSize,
|
||||||
|
const label newStart
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return autoPtr<polyPatch>
|
||||||
|
(
|
||||||
|
new mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
*this,
|
||||||
|
bm,
|
||||||
|
index,
|
||||||
|
newSize,
|
||||||
|
newStart
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Construct and return a clone, resetting the face list
|
||||||
|
// and boundary mesh
|
||||||
|
virtual autoPtr<polyPatch> clone
|
||||||
|
(
|
||||||
|
const polyBoundaryMesh& bm,
|
||||||
|
const label index,
|
||||||
|
const labelUList& mapAddressing,
|
||||||
|
const label newStart
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return autoPtr<polyPatch>
|
||||||
|
(
|
||||||
|
new mappedExtrudedWallPolyPatch
|
||||||
|
(
|
||||||
|
*this,
|
||||||
|
bm,
|
||||||
|
index,
|
||||||
|
mapAddressing,
|
||||||
|
newStart
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//- Destructor
|
||||||
|
virtual ~mappedExtrudedWallPolyPatch();
|
||||||
|
|
||||||
|
|
||||||
|
// Member Functions
|
||||||
|
|
||||||
|
//- Return the sampling points
|
||||||
|
virtual tmp<pointField> samplePoints() const;
|
||||||
|
|
||||||
|
//- Write the polyPatch data as a dictionary
|
||||||
|
virtual void write(Ostream&) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -296,7 +296,7 @@ public:
|
|||||||
const polyPatch& samplePolyPatch() const;
|
const polyPatch& samplePolyPatch() const;
|
||||||
|
|
||||||
//- Get the sample points
|
//- Get the sample points
|
||||||
tmp<pointField> samplePoints() const;
|
virtual tmp<pointField> samplePoints() const;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,7 @@ License
|
|||||||
#include "wedgePolyPatch.H"
|
#include "wedgePolyPatch.H"
|
||||||
#include "emptyPolyPatch.H"
|
#include "emptyPolyPatch.H"
|
||||||
#include "FaceCellWave.H"
|
#include "FaceCellWave.H"
|
||||||
#include "DeltaInfoData.H"
|
#include "LayerInfoData.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ tmp<volScalarField::Internal> thermalBaffle::calcDelta() const
|
|||||||
|
|
||||||
// Initialise faces on the first coupled patch with their centres as data
|
// Initialise faces on the first coupled patch with their centres as data
|
||||||
initialFaces.clear();
|
initialFaces.clear();
|
||||||
DynamicList<DeltaInfoData<point>> initialFaceInfoPoints;
|
DynamicList<LayerInfoData<point>> initialFaceInfoPoints;
|
||||||
{
|
{
|
||||||
const polyPatch& pp =
|
const polyPatch& pp =
|
||||||
regionMesh().boundaryMesh()[intCoupledPatchIDs_[0]];
|
regionMesh().boundaryMesh()[intCoupledPatchIDs_[0]];
|
||||||
@ -75,14 +75,14 @@ tmp<volScalarField::Internal> thermalBaffle::calcDelta() const
|
|||||||
const point& c = pp.faceCentres()[ppFacei];
|
const point& c = pp.faceCentres()[ppFacei];
|
||||||
|
|
||||||
initialFaces.append(pp.start() + ppFacei);
|
initialFaces.append(pp.start() + ppFacei);
|
||||||
initialFaceInfoPoints.append(DeltaInfoData<point>(-1, c));
|
initialFaceInfoPoints.append(LayerInfoData<point>(0, -1, c));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wave across the mesh layers
|
// Wave across the mesh layers
|
||||||
List<DeltaInfoData<point>> faceInfoPoints(regionMesh().nFaces());
|
List<LayerInfoData<point>> faceInfoPoints(regionMesh().nFaces());
|
||||||
List<DeltaInfoData<point>> cellInfoPoints(regionMesh().nCells());
|
List<LayerInfoData<point>> cellInfoPoints(regionMesh().nCells());
|
||||||
FaceCellWave<DeltaInfoData<point>>
|
FaceCellWave<LayerInfoData<point>>
|
||||||
(
|
(
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
initialFaces,
|
initialFaces,
|
||||||
@ -95,7 +95,7 @@ tmp<volScalarField::Internal> thermalBaffle::calcDelta() const
|
|||||||
// Calculate the distances between the opposite patch and load into data to
|
// Calculate the distances between the opposite patch and load into data to
|
||||||
// wave back in the opposite direction
|
// wave back in the opposite direction
|
||||||
initialFaces.clear();
|
initialFaces.clear();
|
||||||
DynamicList<DeltaInfoData<scalar>> initialFaceInfoDeltas;
|
DynamicList<LayerInfoData<scalar>> initialFaceInfoDeltas;
|
||||||
{
|
{
|
||||||
const polyPatch& pp =
|
const polyPatch& pp =
|
||||||
regionMesh().boundaryMesh()[intCoupledPatchIDs_[1]];
|
regionMesh().boundaryMesh()[intCoupledPatchIDs_[1]];
|
||||||
@ -112,15 +112,15 @@ tmp<volScalarField::Internal> thermalBaffle::calcDelta() const
|
|||||||
mag(c - faceInfoPoints[pp.start() + ppFacei].data());
|
mag(c - faceInfoPoints[pp.start() + ppFacei].data());
|
||||||
|
|
||||||
initialFaces.append(pp.start() + ppFacei);
|
initialFaces.append(pp.start() + ppFacei);
|
||||||
initialFaceInfoDeltas.append(DeltaInfoData<scalar>(-1, d));
|
initialFaceInfoDeltas.append(LayerInfoData<scalar>(0, -1, d));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wave back across the layers
|
// Wave back across the layers
|
||||||
List<DeltaInfoData<scalar>> faceInfoDeltas(regionMesh().nFaces());
|
List<LayerInfoData<scalar>> faceInfoDeltas(regionMesh().nFaces());
|
||||||
List<DeltaInfoData<scalar>> cellInfoDeltas(regionMesh().nCells());
|
List<LayerInfoData<scalar>> cellInfoDeltas(regionMesh().nCells());
|
||||||
FaceCellWave<DeltaInfoData<scalar>>
|
FaceCellWave<LayerInfoData<scalar>>
|
||||||
(
|
(
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
initialFaces,
|
initialFaces,
|
||||||
|
|||||||
@ -14,18 +14,27 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
dimensions [0 0 0 0 0 0 0];
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform 0.0;
|
internalField uniform 0;
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
"(sides|frontAndBack)"
|
"(sides|frontAndBack)"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,18 +14,27 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
dimensions [0 0 0 0 0 0 0];
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform 0.77;
|
internalField uniform 0.77;
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
"(sides|frontAndBack)"
|
"(sides|frontAndBack)"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,6 @@ FoamFile
|
|||||||
location "0";
|
location "0";
|
||||||
object O2;
|
object O2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
dimensions [0 0 0 0 0 0 0];
|
dimensions [0 0 0 0 0 0 0];
|
||||||
@ -21,11 +20,21 @@ internalField uniform 0.23;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
"(sides|frontAndBack)"
|
"(sides|frontAndBack)"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,8 +8,8 @@
|
|||||||
FoamFile
|
FoamFile
|
||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
location "0";
|
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
object T;
|
object T;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,15 +20,25 @@ internalField uniform 300;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
"(sides|frontAndBack)"
|
"(sides|frontAndBack)"
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 300;
|
value $internalField;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 300;
|
value $internalField;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,11 +20,20 @@ internalField uniform (0 0 0);
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
"(sides|frontAndBack)"
|
"(sides|frontAndBack)"
|
||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,16 +16,25 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [1 -1 -2 0 0 0 0];
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform 100000;
|
internalField uniform 1e5;
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
"(sides|frontAndBack)"
|
"(sides|frontAndBack)"
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
|
|||||||
@ -16,15 +16,24 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [1 -1 -2 0 0 0 0];
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform 100000;
|
internalField uniform 1e5;
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
"(sides|frontAndBack)"
|
"(sides|frontAndBack)"
|
||||||
{
|
{
|
||||||
type fixedFluxPressure;
|
type fixedFluxPressure;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type prghTotalPressure;
|
||||||
|
p0 $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type fixedFluxPressure;
|
type fixedFluxPressure;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object T;
|
object T;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,22 +20,14 @@ internalField uniform 300;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
wallFilmFaces_top
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
|
"(sides|frontAndBack|wallFilmFaces_top|cylinderFilmFaces_top)"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
"wallFilm_to_region0_.*"
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
sides
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volVectorField;
|
class volVectorField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object U;
|
object U;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,16 +20,13 @@ internalField uniform (0 0 0);
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
wallFilmFaces_top
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
|
"(wallFilmFaces_top|cylinderFilmFaces_top)"
|
||||||
{
|
{
|
||||||
type slip;
|
type slip;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
{
|
|
||||||
type noSlip;
|
|
||||||
}
|
|
||||||
|
|
||||||
sides
|
sides
|
||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
@ -39,6 +36,11 @@ boundaryField
|
|||||||
{
|
{
|
||||||
type slip;
|
type slip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"wallFilm_to_region0_.*"
|
||||||
|
{
|
||||||
|
type noSlip;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object delta;
|
object delta;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,22 +20,14 @@ internalField uniform 0;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
wallFilmFaces_top
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
|
"(sides|frontAndBack|wallFilmFaces_top|cylinderFilmFaces_top)"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
"wallFilm_to_region0_.*"
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
sides
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
@ -6,6 +6,6 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
cleanCase
|
cleanCase
|
||||||
|
|
||||||
rm -rf constant/wallFilmRegion/polyMesh
|
rm -rf constant/wallFilm/polyMesh
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
|
||||||
|
|
||||||
runApplication blockMesh
|
|
||||||
runApplication topoSet
|
|
||||||
runApplication extrudeToRegionMesh -overwrite
|
|
||||||
|
|
||||||
paraFoam -touch
|
|
||||||
paraFoam -touch -region wallFilmRegion
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
@ -3,10 +3,13 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
./Allmesh
|
runApplication blockMesh
|
||||||
|
runApplication topoSet
|
||||||
|
runApplication extrudeToRegionMesh -overwrite
|
||||||
|
|
||||||
application=$(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
runApplication $application
|
paraFoam -touch
|
||||||
|
paraFoam -touch -region wallFilm
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
21
tutorials/modules/multicomponentFluid/cylinder/Allrun-parallel
Executable file
21
tutorials/modules/multicomponentFluid/cylinder/Allrun-parallel
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
|
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
runApplication blockMesh
|
||||||
|
runApplication decomposePar -noFields
|
||||||
|
runParallel topoSet
|
||||||
|
runParallel extrudeToRegionMesh -overwrite
|
||||||
|
|
||||||
|
runApplication -s fields decomposePar -fields -copyZero
|
||||||
|
|
||||||
|
runParallel $(getApplication)
|
||||||
|
|
||||||
|
runApplication reconstructPar
|
||||||
|
runApplication -s wallFilm reconstructPar -region wallFilm
|
||||||
|
|
||||||
|
paraFoam -touch
|
||||||
|
paraFoam -touch -region wallFilm
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
@ -14,7 +14,7 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
regionName wallFilmRegion;
|
regionName wallFilm;
|
||||||
|
|
||||||
viscosity
|
viscosity
|
||||||
{
|
{
|
||||||
|
|||||||
@ -99,7 +99,7 @@ defaultPatch
|
|||||||
|
|
||||||
boundary
|
boundary
|
||||||
(
|
(
|
||||||
filmWalls
|
walls
|
||||||
{
|
{
|
||||||
type wall;
|
type wall;
|
||||||
faces
|
faces
|
||||||
@ -108,8 +108,15 @@ boundary
|
|||||||
(1 2 21 20)
|
(1 2 21 20)
|
||||||
(12 11 30 31)
|
(12 11 30 31)
|
||||||
(13 12 31 32)
|
(13 12 31 32)
|
||||||
(10 5 24 29)
|
);
|
||||||
|
}
|
||||||
|
cylinder
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
(5 0 19 24)
|
(5 0 19 24)
|
||||||
|
(10 5 24 29)
|
||||||
(16 10 29 35)
|
(16 10 29 35)
|
||||||
(11 16 35 30)
|
(11 16 35 30)
|
||||||
);
|
);
|
||||||
@ -121,14 +128,21 @@ boundary
|
|||||||
(
|
(
|
||||||
(2 3 22 21)
|
(2 3 22 21)
|
||||||
(3 6 25 22)
|
(3 6 25 22)
|
||||||
(7 8 27 26)
|
|
||||||
(6 7 26 25)
|
|
||||||
(8 18 37 27)
|
|
||||||
(18 17 36 37)
|
|
||||||
(14 13 32 33)
|
(14 13 32 33)
|
||||||
(17 14 33 36)
|
(17 14 33 36)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(6 7 26 25)
|
||||||
|
(7 8 27 26)
|
||||||
|
(8 18 37 27)
|
||||||
|
(18 17 36 37)
|
||||||
|
);
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -16,32 +16,7 @@ FoamFile
|
|||||||
|
|
||||||
numberOfSubdomains 4;
|
numberOfSubdomains 4;
|
||||||
|
|
||||||
method metis;
|
method scotch;
|
||||||
|
|
||||||
simpleCoeffs
|
|
||||||
{
|
|
||||||
n (2 2 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
hierarchicalCoeffs
|
|
||||||
{
|
|
||||||
n (1 1 1);
|
|
||||||
order xyz;
|
|
||||||
}
|
|
||||||
|
|
||||||
metisCoeffs
|
|
||||||
{
|
|
||||||
processorWeights ( 1 1 1 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
manualCoeffs
|
|
||||||
{
|
|
||||||
dataFile "";
|
|
||||||
}
|
|
||||||
|
|
||||||
distributed no;
|
|
||||||
|
|
||||||
roots ( );
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -13,13 +13,9 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
region wallFilmRegion;
|
region wallFilm;
|
||||||
|
|
||||||
faceZones (wallFilmFaces);
|
faceZones (wallFilmFaces cylinderFilmFaces);
|
||||||
|
|
||||||
sampleMode nearestPatchFace;
|
|
||||||
|
|
||||||
oneD false;
|
|
||||||
|
|
||||||
extrudeModel linearNormal;
|
extrudeModel linearNormal;
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ actions
|
|||||||
type faceSet;
|
type faceSet;
|
||||||
action new;
|
action new;
|
||||||
source patchToFace;
|
source patchToFace;
|
||||||
patch filmWalls;
|
patch walls;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name wallFilmFaces;
|
name wallFilmFaces;
|
||||||
@ -30,6 +30,20 @@ actions
|
|||||||
source setToFaceZone;
|
source setToFaceZone;
|
||||||
faceSet wallFilmFaceSet;
|
faceSet wallFilmFaceSet;
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name cylinderFilmFaceSet;
|
||||||
|
type faceSet;
|
||||||
|
action new;
|
||||||
|
source patchToFace;
|
||||||
|
patch cylinder;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name cylinderFilmFaces;
|
||||||
|
type faceZoneSet;
|
||||||
|
action new;
|
||||||
|
source setToFaceZone;
|
||||||
|
faceSet cylinderFilmFaceSet;
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "system/wallFilmRegion";
|
location "system/wallFilm";
|
||||||
object fvSchemes;
|
object fvSchemes;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "system/wallFilmRegion";
|
location "system/wallFilm";
|
||||||
object fvSolution;
|
object fvSolution;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,12 +20,14 @@ internalField uniform 0;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,12 +20,14 @@ internalField uniform 0.77;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,12 +20,14 @@ internalField uniform 0.23;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,19 +20,21 @@ internalField uniform 300;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 300;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type mapped;
|
type mapped;
|
||||||
field T;
|
field T;
|
||||||
average 300;
|
|
||||||
setAverage no;
|
setAverage no;
|
||||||
value uniform 300;
|
average 300;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,20 +20,21 @@ internalField uniform (0 0 0);
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type uniformFixedValue;
|
type uniformFixedValue;
|
||||||
uniformValue (0 0 0);
|
uniformValue (0 0 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type mapped;
|
type mapped;
|
||||||
uniformValue constant (0 0 0);
|
|
||||||
value uniform (0 0 0);
|
|
||||||
field U;
|
field U;
|
||||||
average (0 0 0);
|
|
||||||
setAverage no;
|
setAverage no;
|
||||||
|
average (0 0 0);
|
||||||
|
value uniform (0 0 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,8 @@ internalField uniform 1e-7;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type compressible::alphatWallFunction;
|
type compressible::alphatWallFunction;
|
||||||
@ -27,7 +29,7 @@ boundaryField
|
|||||||
value uniform 0;
|
value uniform 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type alphatFilmWallFunction;
|
type alphatFilmWallFunction;
|
||||||
B 5.5;
|
B 5.5;
|
||||||
|
|||||||
@ -20,16 +20,18 @@ internalField uniform 1e-7;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type epsilonWallFunction;
|
type epsilonWallFunction;
|
||||||
value uniform 1e-7;
|
value uniform 1e-7;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type epsilonWallFunction;
|
type epsilonWallFunction;
|
||||||
value uniform 1e-07;
|
value uniform 1e-7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,13 +20,15 @@ internalField uniform 0;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value uniform 0;
|
value uniform 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type convectiveHeatTransfer;
|
type convectiveHeatTransfer;
|
||||||
L 1;
|
L 1;
|
||||||
|
|||||||
@ -20,16 +20,18 @@ internalField uniform 1e-5;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type kqRWallFunction;
|
type kqRWallFunction;
|
||||||
value uniform 1e-5;
|
value uniform 1e-5;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type kqRWallFunction;
|
type kqRWallFunction;
|
||||||
value uniform 1e-05;
|
value uniform 1e-5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,13 +20,15 @@ internalField uniform 1e-7;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type nutkWallFunction;
|
type nutkWallFunction;
|
||||||
value uniform 0;
|
value uniform 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type nutkFilmWallFunction;
|
type nutkFilmWallFunction;
|
||||||
B 5.5;
|
B 5.5;
|
||||||
|
|||||||
@ -20,16 +20,18 @@ internalField uniform 100000;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value uniform 100000;
|
value $internalField;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,17 +20,18 @@ internalField uniform 100000;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type fixedFluxPressure;
|
type fixedFluxPressure;
|
||||||
value uniform 100000;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(region0_to.*)"
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type fixedFluxPressure;
|
type fixedFluxPressure;
|
||||||
gradient uniform 0;
|
value $internalField;
|
||||||
value uniform 100000;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object T;
|
object T;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,22 +20,20 @@ internalField uniform 300;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
// top film surface
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
"(.*top)"
|
|
||||||
|
walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
// mapped boundaries
|
"wallFilm_to_region0_.*"
|
||||||
"(region0_to.*)"
|
|
||||||
{
|
{
|
||||||
// type zeroGradient;
|
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 350.0;
|
value uniform 350.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// floor sides
|
".*_top"
|
||||||
walls
|
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volVectorField;
|
class volVectorField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object U;
|
object U;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,23 +20,22 @@ internalField uniform (0 0 0);
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
// top film surface
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
"(.*top)"
|
|
||||||
{
|
|
||||||
type slip;
|
|
||||||
}
|
|
||||||
|
|
||||||
// mapped boundaries
|
|
||||||
"(region0_to.*)"
|
|
||||||
{
|
|
||||||
type slip;
|
|
||||||
}
|
|
||||||
|
|
||||||
// floor sides
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"wallFilm_to_region0_.*"
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
".*_top"
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object delta;
|
object delta;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,23 +20,22 @@ internalField uniform 0.0;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
// top film surface
|
#includeEtc "caseDicts/setConstraintTypes"
|
||||||
"(.*top)"
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
// mapped boundaries
|
|
||||||
"(region0_to.*)"
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
// floor sides
|
|
||||||
walls
|
walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"wallFilm_to_region0_.*"
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
".*_top"
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
@ -4,8 +4,6 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source tutorial clean functions
|
# Source tutorial clean functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||||
|
|
||||||
cleanCase
|
cleanCase && rm -rf constant/wallFilm/polyMesh
|
||||||
|
|
||||||
rm -rf constant/wallFilmRegion/polyMesh
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,25 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
cd ${0%/*} || exit 1 # Run from this directory
|
|
||||||
|
|
||||||
# Source tutorial run functions
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
|
||||||
|
|
||||||
# Create the underlying block mesh
|
|
||||||
runApplication blockMesh
|
|
||||||
|
|
||||||
# Create the set for the obstacles
|
|
||||||
runApplication topoSet
|
|
||||||
|
|
||||||
# Create the obstacles - add obstacle patches to wallFilm patch
|
|
||||||
runApplication subsetMesh c0 -patch wallFilm -overwrite -noFields
|
|
||||||
|
|
||||||
# Create a wallFilmRegion faceZone from the obstacles and floor
|
|
||||||
runApplication -s wallFilmRegion topoSet -dict topoSetDict.wallFilmRegion
|
|
||||||
|
|
||||||
# Create the wall film region from the wallFilmRegion faceZone via extrusion
|
|
||||||
runApplication extrudeToRegionMesh -overwrite
|
|
||||||
|
|
||||||
paraFoam -touch
|
|
||||||
paraFoam -touch -region wallFilmRegion
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
@ -4,9 +4,30 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source tutorial run functions
|
# Source tutorial run functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
application=$(getApplication)
|
runApplication blockMesh
|
||||||
|
|
||||||
./Allmesh
|
runApplication decomposePar -noFields
|
||||||
runApplication $application
|
|
||||||
|
# Create a set for the bits of the mesh that are not boxes
|
||||||
|
runParallel topoSet
|
||||||
|
|
||||||
|
# Create the boxes and add their surfaces to the boxes patch
|
||||||
|
runParallel subsetMesh notBoxes -patch boxes -overwrite -noFields
|
||||||
|
|
||||||
|
# Create zones from the floor and the boxes
|
||||||
|
runParallel -s wallFilm topoSet -dict topoSetDict.wallFilm
|
||||||
|
|
||||||
|
# Create the film mesh
|
||||||
|
runParallel extrudeToRegionMesh -overwrite
|
||||||
|
|
||||||
|
runApplication -s fields decomposePar -fields -copyZero
|
||||||
|
|
||||||
|
runParallel $(getApplication);
|
||||||
|
|
||||||
|
runApplication reconstructPar
|
||||||
|
runApplication -s wallFilm reconstructPar -region wallFilm
|
||||||
|
|
||||||
|
paraFoam -touch
|
||||||
|
paraFoam -touch -region wallFilm
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,21 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
cd ${0%/*} || exit 1 # Run from this directory
|
|
||||||
|
|
||||||
# Source tutorial run functions
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
|
||||||
|
|
||||||
./Allmesh
|
|
||||||
|
|
||||||
cp -Rf 0.orig 0
|
|
||||||
|
|
||||||
application=$(getApplication)
|
|
||||||
|
|
||||||
runApplication -s primaryRegion decomposePar
|
|
||||||
runApplication -s wallFilmRegion decomposePar -region wallFilmRegion
|
|
||||||
|
|
||||||
runParallel $application
|
|
||||||
|
|
||||||
runApplication -s primaryRegion reconstructPar
|
|
||||||
runApplication -s wallFilmRegion reconstructPar -region wallFilmRegion
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
@ -14,7 +14,7 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
regionName wallFilmRegion;
|
regionName wallFilm;
|
||||||
|
|
||||||
viscosity
|
viscosity
|
||||||
{
|
{
|
||||||
|
|||||||
@ -46,7 +46,7 @@ boundary
|
|||||||
(1 5 4 0)
|
(1 5 4 0)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
wallFilm
|
floor
|
||||||
{
|
{
|
||||||
type wall;
|
type wall;
|
||||||
faces
|
faces
|
||||||
@ -54,6 +54,12 @@ boundary
|
|||||||
(0 3 2 1)
|
(0 3 2 1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
boxes
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
();
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -14,13 +14,15 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
numberOfSubdomains 4;
|
numberOfSubdomains 12;
|
||||||
|
|
||||||
method scotch;
|
method hierarchical;
|
||||||
|
|
||||||
distributed no;
|
hierarchicalCoeffs
|
||||||
|
{
|
||||||
roots ( );
|
n (2 2 3);
|
||||||
|
order xyz;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -13,13 +13,9 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
region wallFilmRegion;
|
region wallFilm;
|
||||||
|
|
||||||
faceZones (wallFilmFaces);
|
faceZones (floorFilmFaces boxesFilmFaces);
|
||||||
|
|
||||||
oneD false;
|
|
||||||
|
|
||||||
sampleMode nearestPatchFace;
|
|
||||||
|
|
||||||
extrudeModel linearNormal;
|
extrudeModel linearNormal;
|
||||||
|
|
||||||
|
|||||||
@ -17,38 +17,38 @@ FoamFile
|
|||||||
actions
|
actions
|
||||||
(
|
(
|
||||||
{
|
{
|
||||||
name c0;
|
name notBoxes;
|
||||||
type cellSet;
|
type cellSet;
|
||||||
action clear;
|
action clear;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name c0;
|
name notBoxes;
|
||||||
type cellSet;
|
type cellSet;
|
||||||
action invert;
|
action invert;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name c0;
|
name notBoxes;
|
||||||
type cellSet;
|
type cellSet;
|
||||||
action delete;
|
action delete;
|
||||||
source boxToCell;
|
source boxToCell;
|
||||||
box (0.4 0.1 0.1) (0.6 0.3 0.3);
|
box (0.4 0.1 0.1) (0.6 0.3 0.3);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name c0;
|
name notBoxes;
|
||||||
type cellSet;
|
type cellSet;
|
||||||
action delete;
|
action delete;
|
||||||
source boxToCell;
|
source boxToCell;
|
||||||
box (0.4 0.1 0.4) (0.6 0.3 0.6);
|
box (0.4 0.1 0.4) (0.6 0.3 0.6);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name c0;
|
name notBoxes;
|
||||||
type cellSet;
|
type cellSet;
|
||||||
action delete;
|
action delete;
|
||||||
source boxToCell;
|
source boxToCell;
|
||||||
box (0.4 0.4 0.1) (0.6 0.6 0.3);
|
box (0.4 0.4 0.1) (0.6 0.6 0.3);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name c0;
|
name notBoxes;
|
||||||
type cellSet;
|
type cellSet;
|
||||||
action delete;
|
action delete;
|
||||||
source boxToCell;
|
source boxToCell;
|
||||||
|
|||||||
@ -17,18 +17,32 @@ FoamFile
|
|||||||
actions
|
actions
|
||||||
(
|
(
|
||||||
{
|
{
|
||||||
name wallFilmFaceSet;
|
name floorFilmFaceSet;
|
||||||
type faceSet;
|
type faceSet;
|
||||||
action new;
|
action new;
|
||||||
source patchToFace;
|
source patchToFace;
|
||||||
patch wallFilm;
|
patch floor;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name wallFilmFaces;
|
name floorFilmFaces;
|
||||||
type faceZoneSet;
|
type faceZoneSet;
|
||||||
action new;
|
action new;
|
||||||
source setToFaceZone;
|
source setToFaceZone;
|
||||||
faceSet wallFilmFaceSet;
|
faceSet floorFilmFaceSet;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name boxesFilmFaceSet;
|
||||||
|
type faceSet;
|
||||||
|
action new;
|
||||||
|
source patchToFace;
|
||||||
|
patch boxes;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name boxesFilmFaces;
|
||||||
|
type faceZoneSet;
|
||||||
|
action new;
|
||||||
|
source setToFaceZone;
|
||||||
|
faceSet boxesFilmFaceSet;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "system/wallFilmRegion";
|
location "system/wallFilm";
|
||||||
object fvSchemes;
|
object fvSchemes;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "system/wallFilmRegion";
|
location "system/wallFilm";
|
||||||
object fvSolution;
|
object fvSolution;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -14,7 +14,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
dimensions [0 0 0 0 0 0 0];
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform 0.0;
|
internalField uniform 0.0;
|
||||||
@ -23,17 +22,24 @@ boundaryField
|
|||||||
{
|
{
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
sides
|
sides
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
region0_to_wallFilm_wallFilmFaces
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
dimensions [0 0 0 0 0 0 0];
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform 0.77;
|
internalField uniform 0.77;
|
||||||
@ -23,17 +22,24 @@ boundaryField
|
|||||||
{
|
{
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
sides
|
sides
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
region0_to_wallFilm_wallFilmFaces
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,6 @@ FoamFile
|
|||||||
location "0";
|
location "0";
|
||||||
object O2;
|
object O2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
dimensions [0 0 0 0 0 0 0];
|
dimensions [0 0 0 0 0 0 0];
|
||||||
@ -23,17 +22,24 @@ boundaryField
|
|||||||
{
|
{
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type inletOutlet;
|
||||||
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
sides
|
sides
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
region0_to_wallFilm_wallFilmFaces
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,8 +8,8 @@
|
|||||||
FoamFile
|
FoamFile
|
||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
location "0";
|
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
object T;
|
object T;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -22,23 +22,28 @@ boundaryField
|
|||||||
{
|
{
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type inletOutlet;
|
||||||
value uniform 300;
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type inletOutlet;
|
||||||
value uniform 300;
|
inletValue $internalField;
|
||||||
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
sides
|
sides
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 300;
|
value $internalField;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
region0_to_wallFilm_wallFilmFaces
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 300;
|
value $internalField;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,19 +23,21 @@ boundaryField
|
|||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type pressureInletOutletVelocity;
|
type pressureInletOutletVelocity;
|
||||||
value uniform (0 0 0);
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type pressureInletOutletVelocity;
|
type pressureInletOutletVelocity;
|
||||||
value uniform (0 0 0);
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
sides
|
sides
|
||||||
{
|
{
|
||||||
type pressureInletOutletVelocity;
|
type noSlip;
|
||||||
value uniform (0 0 0);
|
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
region0_to_wallFilm_wallFilmFaces
|
||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,17 +25,20 @@ boundaryField
|
|||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
sides
|
sides
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
region0_to_wallFilm_wallFilmFaces
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
|
|||||||
@ -22,17 +22,22 @@ boundaryField
|
|||||||
{
|
{
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type fixedFluxPressure;
|
type prghTotalPressure;
|
||||||
|
p0 $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type fixedFluxPressure;
|
type prghTotalPressure;
|
||||||
|
p0 $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
sides
|
sides
|
||||||
{
|
{
|
||||||
type fixedFluxPressure;
|
type fixedFluxPressure;
|
||||||
}
|
}
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
|
region0_to_wallFilm_wallFilmFaces
|
||||||
{
|
{
|
||||||
type fixedFluxPressure;
|
type fixedFluxPressure;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object T;
|
object T;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,16 +20,6 @@ internalField uniform 300;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
wallFilmFaces_top
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
@ -45,6 +35,16 @@ boundaryField
|
|||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
wallFilm_to_region0_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volVectorField;
|
class volVectorField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object U;
|
object U;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,16 +20,6 @@ internalField uniform (0 0 0);
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
wallFilmFaces_top
|
|
||||||
{
|
|
||||||
type slip;
|
|
||||||
}
|
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
{
|
|
||||||
type noSlip;
|
|
||||||
}
|
|
||||||
|
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
@ -45,6 +35,16 @@ boundaryField
|
|||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
wallFilm_to_region0_wallFilmFaces
|
||||||
|
{
|
||||||
|
type noSlip;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
location "0/wallFilmRegion";
|
location "0/wallFilm";
|
||||||
object delta;
|
object delta;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -20,16 +20,6 @@ internalField uniform 0;
|
|||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
wallFilmFaces_top
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
@ -45,6 +35,16 @@ boundaryField
|
|||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
wallFilm_to_region0_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -6,6 +6,6 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
cleanCase
|
cleanCase
|
||||||
|
|
||||||
rm -rf constant/wallFilmRegion/polyMesh
|
rm -rf constant/wallFilm/polyMesh
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
|
||||||
|
|
||||||
runApplication blockMesh
|
|
||||||
runApplication topoSet -dict wallFilmRegion.topoSet
|
|
||||||
runApplication extrudeToRegionMesh -overwrite
|
|
||||||
|
|
||||||
paraFoam -touch
|
|
||||||
paraFoam -touch -region wallFilmRegion
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
@ -3,10 +3,12 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
./Allmesh
|
runApplication blockMesh
|
||||||
|
runApplication topoSet
|
||||||
|
runApplication extrudeToRegionMesh -overwrite
|
||||||
|
|
||||||
application=$(getApplication)
|
paraFoam -touchAll
|
||||||
|
|
||||||
runApplication $application
|
runApplication $(getApplication)
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -14,7 +14,7 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
regionName wallFilmRegion;
|
regionName wallFilm;
|
||||||
|
|
||||||
viscosity
|
viscosity
|
||||||
{
|
{
|
||||||
|
|||||||
@ -13,14 +13,10 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
region wallFilmRegion;
|
region wallFilm;
|
||||||
|
|
||||||
faceZones (wallFilmFaces);
|
faceZones (wallFilmFaces);
|
||||||
|
|
||||||
oneD false;
|
|
||||||
|
|
||||||
sampleMode nearestPatchFace;
|
|
||||||
|
|
||||||
extrudeModel linearNormal;
|
extrudeModel linearNormal;
|
||||||
|
|
||||||
nLayers 1;
|
nLayers 1;
|
||||||
|
|||||||
@ -33,8 +33,8 @@ solvers
|
|||||||
|
|
||||||
"(U|h)"
|
"(U|h)"
|
||||||
{
|
{
|
||||||
solver smoothSolver;
|
solver PBiCGStab;
|
||||||
smoother symGaussSeidel;
|
preconditioner DILU;
|
||||||
tolerance 0;
|
tolerance 0;
|
||||||
relTol 0.1;
|
relTol 0.1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,6 @@ FoamFile
|
|||||||
class dictionary;
|
class dictionary;
|
||||||
object topoSetDict;
|
object topoSetDict;
|
||||||
}
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
actions
|
actions
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "system/wallFilmRegion";
|
location "system/wallFilm";
|
||||||
object fvSchemes;
|
object fvSchemes;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -9,7 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "system/wallFilmRegion";
|
location "system/wallFilm";
|
||||||
object fvSolution;
|
object fvSolution;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -18,16 +18,16 @@ solvers
|
|||||||
{
|
{
|
||||||
"alpha.*"
|
"alpha.*"
|
||||||
{
|
{
|
||||||
solver smoothSolver;
|
solver PBiCGStab;
|
||||||
smoother symGaussSeidel;
|
preconditioner DILU;
|
||||||
tolerance 1e-10;
|
tolerance 1e-10;
|
||||||
relTol 0;
|
relTol 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
"(U|e).*"
|
"(U|e).*"
|
||||||
{
|
{
|
||||||
solver smoothSolver;
|
solver PBiCGStab;
|
||||||
smoother symGaussSeidel;
|
preconditioner DILU;
|
||||||
tolerance 1e-10;
|
tolerance 1e-10;
|
||||||
relTol 0;
|
relTol 0;
|
||||||
}
|
}
|
||||||
@ -28,6 +28,7 @@ boundaryField
|
|||||||
inletValue $internalField;
|
inletValue $internalField;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
region0_to_wallFilm_walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
|
|||||||
@ -28,6 +28,7 @@ boundaryField
|
|||||||
inletValue $internalField;
|
inletValue $internalField;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
region0_to_wallFilm_walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
|
|||||||
@ -28,6 +28,7 @@ boundaryField
|
|||||||
inletValue $internalField;
|
inletValue $internalField;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
region0_to_wallFilm_walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
|
|||||||
@ -8,8 +8,8 @@
|
|||||||
FoamFile
|
FoamFile
|
||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
location "0";
|
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
object T;
|
object T;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -28,6 +28,7 @@ boundaryField
|
|||||||
inletValue $internalField;
|
inletValue $internalField;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
region0_to_wallFilm_walls
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
|
|||||||
@ -27,6 +27,7 @@ boundaryField
|
|||||||
type pressureInletOutletVelocity;
|
type pressureInletOutletVelocity;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
region0_to_wallFilm_walls
|
||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
|
|||||||
@ -27,6 +27,7 @@ boundaryField
|
|||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
region0_to_wallFilm_walls
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
|
|||||||
@ -27,7 +27,7 @@ boundaryField
|
|||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
wallFilm_to_region0_walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,7 @@ boundaryField
|
|||||||
type slip;
|
type slip;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
wallFilm_to_region0_walls
|
||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,7 @@ boundaryField
|
|||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilm_walls
|
wallFilm_to_region0_walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,10 +17,6 @@ region wallFilm;
|
|||||||
|
|
||||||
faceZones (walls);
|
faceZones (walls);
|
||||||
|
|
||||||
oneD false;
|
|
||||||
|
|
||||||
sampleMode nearestPatchFace;
|
|
||||||
|
|
||||||
extrudeModel linearNormal;
|
extrudeModel linearNormal;
|
||||||
|
|
||||||
nLayers 1;
|
nLayers 1;
|
||||||
|
|||||||
@ -8,8 +8,8 @@
|
|||||||
FoamFile
|
FoamFile
|
||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
location "0";
|
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
object T;
|
object T;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -32,7 +32,7 @@ boundaryField
|
|||||||
inletValue $internalField;
|
inletValue $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 300;
|
value uniform 300;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ boundaryField
|
|||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type noSlip;
|
type noSlip;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ FoamFile
|
|||||||
{
|
{
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
object alpha.liquid;
|
object alpha.liquid;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -29,7 +30,7 @@ boundaryField
|
|||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,7 +32,7 @@ boundaryField
|
|||||||
value $internalField;
|
value $internalField;
|
||||||
}
|
}
|
||||||
|
|
||||||
region0_to_wallFilmRegion_wallFilmFaces
|
"region0_to_wallFilm_.*"
|
||||||
{
|
{
|
||||||
type calculated;
|
type calculated;
|
||||||
value $internalField;
|
value $internalField;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user