41 searchableSurfaceFeatures,
42 searchablePlateFeatures,
47 const 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];
80 Foam::searchablePlateFeatures::searchablePlateFeatures
91 dict.getOrDefault<
word>(
"meshableSide",
"inside")
96 <<
" Meshable region = " 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];
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];
184 ftPtNormals[0] = edgeNormals[ftPtEdges[0]][0];
191 new extendedFeatureEdgeMesh
197 "extendedFeatureEdgeMesh",
207 List<extendedFeatureEdgeMesh::sideVolumeType>(4, mode_),
static const Enum< sideVolumeType > sideVolumeTypeNames_
Ostream & indent(Ostream &os)
Indent stream.
Decorator that returns the features of a searchable surface.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
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.
Ostream & endl(Ostream &os)
Add newline and flush stream.
void cross(FieldField< Field1, typename crossProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
Base class of (analytical or triangulated) surface. Encapsulates all the search routines. WIP.
List< labelList > labelListList
List of labelList.
virtual ~searchablePlateFeatures()
Destructor.
Macros for easy insertion into run-time selection tables.
#define forAll(list, i)
Loop across all elements in list.
void reset(T *p=nullptr) noexcept
Delete managed object and set to new given pointer.
const dimensionedScalar e
Elementary charge.
void setSize(const label n)
Alias for resize()
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
A class for handling words, derived from Foam::string.
static const edgeList edges
Edge to point addressing.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
const wordList surface
Standard surface field types (scalar, vector, tensor, etc)
virtual autoPtr< extendedFeatureEdgeMesh > features() const
Return an extendedFeatureEdgeMesh containing the features.
constexpr auto end(C &c) -> decltype(c.end())
Return iterator to the end of the container c.
defineTypeNameAndDebug(combustionModel, 0)
Automatically write from objectRegistry::writeObject()
messageStream Info
Information stream (stdout output on master, null elsewhere)
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
List< label > labelList
A List of labels.
addToRunTimeSelectionTable(functionObject, pointHistory, dictionary)
static constexpr const zero Zero
Global zero (0)