37 #ifndef intersectionPatchToPatch_H 38 #define intersectionPatchToPatch_H 49 namespace patchToPatches
95 template<
class Po
intField>
99 centre(
face::centre(ps))
105 return part(- area, centre);
111 const scalar magArea =
mag(area);
112 const scalar magPArea =
mag(p.
area);
114 area = area + p.
area;
119 : (magArea*centre + magPArea*p.
centre)/(magArea + magPArea);
180 static_cast<const part&
>(a) == static_cast<const part&>(b)
193 return os << static_cast<const part&>(
c) << c.
nbr;
199 return is >>
static_cast<part&
>(
c) >> c.
nbr;
306 virtual bool intersectFaces
312 const label srcFacei,
317 virtual void initialise
328 virtual void rDistributeTgt
335 virtual label finalise
const List< DynamicList< couple > > & srcCouples() const
For each source face, the source and target areas for each.
point centre
The centre of this part.
virtual tmpNrc< List< DynamicList< scalar > > > tgtWeights(const primitivePatch &tgtPatch) const
For each target face, the coupled source weights.
const List< part > & srcErrorParts() const
For each source face, the area associated with mismatch.
A face is a list of labels corresponding to mesh vertices.
Class to encapsulate the topology of a point within a triangle intersection.
void operator-=(const part &p)
Subtract another part from this one.
const List< DynamicList< couple > > & tgtCouples() const
For each target face, the target and source areas for each.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
bool reverse() const
Flag to indicate that the two patches are co-directional and.
~intersection()
Destructor.
TypeName("intersection")
Runtime type information.
const dimensionedScalar b
Wien displacement law constant: default SI units: [m K].
friend bool operator!=(const part &a, const part &b)
Inequality comparison.
Structure to store the geometry associated with part of a patch.
Class to generate patchToPatch coupling geometry. A full geometric intersection is done between a fac...
const dimensionedScalar c
Speed of light in a vacuum.
friend bool operator==(const part &a, const part &b)
Equality comparison.
static int debugSrcFacei
Extra debugging for intersections between specific faces. Named.
A list of faces which address into the list of points.
vector area
The area of this part.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
A triangular face using a FixedList of labels corresponding to mesh vertices.
part nbr
The neighbour part.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void operator+=(const part &p)
Add another part to this one.
A class for managing temporary objects without reference counting.
virtual tmpNrc< List< DynamicList< scalar > > > srcWeights(const primitivePatch &srcPatch) const
For each source face, the coupled target weights.
Structure to store the geometry associated with the coupling.
part operator-() const
Negate this part.
Class containing processor-to-processor mapping information.
const List< part > & srcEdgeParts() const
For each source edge, the non-coupled geometry associated.
Triangulation of three-dimensional polygons.
Standard boundBox + extra functionality for use in octree.
A class representing the concept of 0 used to avoid unnecessary manipulations for objects that are kn...
dimensioned< scalar > mag(const dimensioned< Type > &)
static treeBoundBox srcBoxStatic(const face &srcFace, const pointField &srcPoints, const vectorField &srcPointNormals)
Get the bound box for a source face.
intersection(const bool reverse)
Construct from components.
Class to generate coupling geometry between two primitive patches.
friend Istream & operator>>(Istream &is, part &p)
Input stream operator.
friend Ostream & operator<<(Ostream &os, const part &p)
Output stream operator.