174 lines
6.0 KiB
C++
174 lines
6.0 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
| ========= | |
|
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
| \\ / O peration | Version: v2112 |
|
|
| \\ / A nd | Website: www.openfoam.com |
|
|
| \\/ M anipulation | |
|
|
\*---------------------------------------------------------------------------*/
|
|
FoamFile
|
|
{
|
|
version 2.0;
|
|
format ascii;
|
|
class dictionary;
|
|
object createPatchDict;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
// This application/dictionary controls:
|
|
// - optional: create new patches from boundary faces (either given as
|
|
// a set of patches or as a faceSet)
|
|
// - always: order faces on coupled patches such that they are opposite. This
|
|
// is done for all coupled faces, not just for any patches created.
|
|
// - optional: synchronise points on coupled patches.
|
|
// - always: remove zero-sized (non-coupled) patches (that were not added)
|
|
|
|
// 1. Create cyclic:
|
|
// - specify where the faces should come from
|
|
// - specify the type of cyclic. If a rotational specify the rotationAxis
|
|
// and centre to make matching easier
|
|
// - always create both halves in one invocation with correct 'neighbourPatch'
|
|
// setting.
|
|
// - optionally pointSync true to guarantee points to line up.
|
|
|
|
// 2. Correct incorrect cyclic:
|
|
// This will usually fail upon loading:
|
|
// "face 0 area does not match neighbour 2 by 0.0100005%"
|
|
// " -- possible face ordering problem."
|
|
// - in polyMesh/boundary file:
|
|
// - loosen matchTolerance of all cyclics to get case to load
|
|
// - or change patch type from 'cyclic' to 'patch'
|
|
// and regenerate cyclic as above
|
|
|
|
// Do a synchronisation of coupled points after creation of any patches.
|
|
// Note: this does not work with points that are on multiple coupled patches
|
|
// with transformations (i.e. cyclics).
|
|
pointSync false;
|
|
|
|
// Patches to create.
|
|
patches
|
|
(
|
|
// Example of creating cyclic patch pair
|
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
{
|
|
// Name of new patch
|
|
name cyc_half0;
|
|
|
|
// Dictionary to construct new patch from
|
|
patchInfo
|
|
{
|
|
type cyclic;
|
|
neighbourPatch cyc_half1;
|
|
|
|
// Optional: explicitly set transformation tensor.
|
|
// Used when matching and synchronising points.
|
|
transform rotational;
|
|
rotationAxis (1 0 0);
|
|
rotationCentre (0 0 0);
|
|
// transform translational;
|
|
// separationVector (1 0 0);
|
|
|
|
// Optional non-default tolerance to be able to define cyclics
|
|
// on bad meshes
|
|
//matchTolerance 1E-2;
|
|
}
|
|
|
|
// How to select the faces:
|
|
// - set : specify faceSet in 'set'
|
|
// - patches : specify names in 'patches'
|
|
// - autoPatch : attempts automatic patching of the specified
|
|
// candidates in 'patches'.
|
|
// - single region : match in the region itself
|
|
// - multi regions : match in between regions only
|
|
constructFrom patches;
|
|
|
|
// If constructFrom = patches or autoPatch: names of patches.
|
|
// Wildcards&patchGroups allowed.
|
|
patches (periodic1);
|
|
|
|
// If constructFrom = set : name of faceSet
|
|
set f0;
|
|
}
|
|
{
|
|
// Name of new patch
|
|
name cyc_half1;
|
|
|
|
// Dictionary to construct new patch from
|
|
patchInfo
|
|
{
|
|
type cyclic;
|
|
neighbourPatch cyc_half0;
|
|
|
|
// Optional: explicitly set transformation tensor.
|
|
// Used when matching and synchronising points.
|
|
transform rotational;
|
|
rotationAxis (1 0 0);
|
|
rotationCentre (0 0 0);
|
|
// transform translational;
|
|
// separationVector (1 0 0);
|
|
}
|
|
|
|
// How to select the faces:
|
|
// - set : specify faceSet in 'set'
|
|
// - patches : specify names in 'patches'
|
|
// - autoPatch : attempts automatic patching of the specified
|
|
// candidates in 'patches'.
|
|
// - single region : match in the region itself
|
|
// - multi regions : match in between regions only
|
|
constructFrom patches;
|
|
|
|
// If constructFrom = patches or autoPatch: names of patches.
|
|
// Wildcards&patchGroups allowed.
|
|
patches (periodic2);
|
|
|
|
// If constructFrom = set : name of faceSet
|
|
set f0;
|
|
}
|
|
|
|
|
|
// Example of creating mapped patches using geometric matching
|
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
{
|
|
// Name of new patch
|
|
name solid;
|
|
|
|
// Dictionary to construct new patch from
|
|
patchInfo
|
|
{
|
|
type mappedPatch;
|
|
sampleMode nearestPatchFaceAMI;
|
|
AMIMethod faceAreaWeightAMI;
|
|
|
|
// Overwritten
|
|
//sampleRegion otherRegion;
|
|
//samplePatch otherPatch;
|
|
|
|
//- Optional override of added patchfields. If not specified
|
|
// any added patchfields are of type calculated.
|
|
patchFields
|
|
{
|
|
T
|
|
{
|
|
type fixedValue;
|
|
value uniform 300;
|
|
}
|
|
}
|
|
}
|
|
|
|
// How to select the faces:
|
|
// - set : specify faceSet in 'set'
|
|
// - patches : specify names in 'patches'
|
|
// - autoPatch : attempts automatic patching of the specified
|
|
// candidates in 'patches'.
|
|
// - single region : match in the region itself
|
|
// - multi regions : match in between regions only
|
|
constructFrom autoPatch;
|
|
|
|
// If constructFrom = patches or autoPatch: names of patches.
|
|
// Wildcards&patchGroups allowed.
|
|
patches (coupling_group);
|
|
}
|
|
);
|
|
|
|
// ************************************************************************* //
|