47const Foam::label edgesArray[4][2] =
65 const label edgesArray[4][2]
71 edges[edgeI][0] = edgesArray[edgeI][0];
72 edges[edgeI][1] = edgesArray[edgeI][1];
80Foam::searchablePlateFeatures::searchablePlateFeatures
91 dict.getOrDefault<
word>(
"meshableSide",
"inside")
96 <<
" Meshable region = "
97 << extendedFeatureEdgeMesh::sideVolumeTypeNames_[mode_]
110Foam::autoPtr<Foam::extendedFeatureEdgeMesh>
124 edgeNormals[eI].setSize(2, 0);
126 edgeNormals[0][0] = 0; edgeNormals[0][1] = 0;
127 edgeNormals[1][0] = 0; edgeNormals[1][1] = 0;
128 edgeNormals[2][0] = 0; edgeNormals[2][1] = 0;
129 edgeNormals[3][0] = 0; edgeNormals[3][1] = 0;
131 forAll(edgeDirections, eI)
135 -
surface().points()()[edges[eI].start()];
138 for (label j = 0; j < 2; ++j)
141 (faceNormals[edgeNormals[eI][j]] ^ edgeDirections[eI]);
144 -
surface().points()()[edges[eI].start()];
146 normalDirections[eI][j] =
150 & (fC0tofE0/(
mag(fC0tofE0)+ VSMALL))
161 forAll(featurePointNormals, pI)
163 labelList& ftPtEdges = featurePointEdges[pI];
164 ftPtEdges.setSize(2, 0);
169 const edge&
e = edges[eI];
173 ftPtEdges[edgeI++] = eI;
175 else if (
e.
end() == pI)
177 ftPtEdges[edgeI++] = eI;
181 labelList& ftPtNormals = featurePointNormals[pI];
182 ftPtNormals.setSize(1, 0);
184 ftPtNormals[0] = edgeNormals[ftPtEdges[0]][0];
197 "extendedFeatureEdgeMesh",
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
@ NO_READ
Nothing to be read.
@ AUTO_WRITE
Automatically write from objectRegistry::writeObject().
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
iterator end() noexcept
Return an iterator to end traversing the UList.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
An edge is a list of two vertex labels. This can correspond to a directed graph edge or an edge on a ...
static const edgeList edges
Edge to point addressing.
virtual autoPtr< extendedFeatureEdgeMesh > features() const
Return an extendedFeatureEdgeMesh containing the features.
virtual ~searchablePlateFeatures()
Destructor.
Decorator that returns the features of a searchable surface.
Base class of (analytical or triangulated) surface. Encapsulates all the search routines....
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
const wordList surface
Standard surface field types (scalar, vector, tensor, etc).
List< edge > edgeList
List of edge.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
messageStream Info
Information stream (stdout output on master, null elsewhere).
Ostream & endl(Ostream &os)
Add newline and flush stream.
Ostream & indent(Ostream &os)
Indent stream.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
Field< vector > vectorField
Specialisation of Field<T> for vector.
static constexpr const zero Zero
Global zero (0).
void cross(FieldField< Field1, typename crossProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
#define forAll(list, i)
Loop across all elements in list.