CreatePatch
From OpenFOAMWiki
1 Name
createPatch - Utility to create patches out of selected boundary faces. Faces come either from existing patches or from a faceSet.
2 Synopsis
createPatch [OPTIONS]
3 Description
Create patch from patch or faceSet. The parameters are read from a dictionary system/createPatchDict. The example shipped with the source code (in $FOAM_UTILITIES/mesh/manipulation/createPatch/createPatchDict) is reproduced below.
More specifically it:
- Creates new patches (from selected boundary faces). Synchronise faces on coupled patches.
- Synchronises points on coupled boundaries
- Remove patches with 0 faces in them
-overwrite
- Overwrite the existing mesh files
-parallel
- Run the utility in parallel
-roots "(DIR1 [...DIRN])"
- Directories through which the data are distributed
-region NAME
- Specify a mesh region by its "NAME"
-case DIR
- Execute the command on the case directory DIR. If not provided, use the current directory
-noFunctionObjects
- Skip the execution of the functionObjects
-help
- Display the help and exit
This utility is used in the following tutorials:
- combustion/fireFoam/les/oppositeBurningPanels
- combustion/fireFoam/les/smallPoolFire2D
- combustion/fireFoam/les/smallPoolFire3D
- incompressible/pimpleDyMFoam/propeller
- incompressible/pimpleDyMFoam/wingMotion
- incompressible/pimpleFoam/elipsekkLOmega
- lagrangian/reactingParcelFilmFoam/cylinder
- lagrangian/reactingParcelFilmFoam/rivuletPanel
- lagrangian/reactingParcelFilmFoam/splashPanel
4 createPatchDict description
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. // 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 ( { // 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 construct: either from 'patches' or 'set' constructFrom patches; // If constructFrom = patches : names of patches. Wildcards 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 ( 0 0 1 ); rotationCentre ( 0.3 0 0 ); } // How to construct: either from 'patches' or 'set' constructFrom patches; // If constructFrom = patches : names of patches. Wildcards allowed. patches (periodic2); // If constructFrom = set : name of faceSet set f0; } );