Go to the documentation of this file.
36 mirrorBoundaryIndex_(dict.
getVal<
uint32>(
"mirrorBoundaryIndex")),
37 extensionLength_(dict.
getVal<
real>(
"boundaryExtntionLengthRatio"))
39 extensionLength_ =
max(extensionLength_,
static_cast<real>(0.1));
57 bool iterBeforeUpdate ,
73 if(!performBoundarytUpdate())
80 transferFlags.
fill(0u);
82 auto points = thisPoints();
83 auto p = boundaryPlane().infPlane();
88 Kokkos::parallel_reduce
90 "boundaryPeriodic::beforeIteration",
94 if(p.pointInNegativeSide(points(i)))
104 if(numTransfered == 0 )
110 realx3 transferVec = displacementVectroToMirror();
112 return transferPointsToMirror
116 mirrorBoundaryIndex(),
real neighborLengthIntoInternal() const
The length from boundary plane into the domain where beyond that distance internal points exist.
INLINE_FUNCTION_H void fill(const T &val)
Fill the range [0,size) with val.
bool afterIteration(const timeInfo &ti) final
const INLINE_FUNCTION_HD auto & normal() const
realx3 boundaryExtensionLength() const override
The extention length (in vector form) for the boundary as required by each boundary type.
INLINE_FUNCTION_H Type max(const Type *first, uint32 numElems)
const plane & boundaryPlane() const
the actual boundary plane of this boundary
real neighborLength() const override
The distance length from boundary plane where neighbor particles still exist in that distance.
INLINE_FUNCTION_H auto & deviceViewAll()
Device view range [0,capcity)
T getVal(const word &keyword) const
get the value of data entry
Kokkos::RangePolicy< Kokkos::DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Static >, Kokkos::IndexType< pFlow::uint32 > > deviceRPolicyStatic
bool iterate(const timeInfo &ti) final
boundaryPeriodic(const dictionary &dict, const plane &bplane, internalPoints &internal, boundaryList &bndrs, uint32 thisIndex)
Dictionary holds a set of data entries or sub-dictionaries that are enclosed in a curely braces or ar...
bool beforeIteration(uint32 step, const timeInfo &ti, bool updateIter, bool iterBeforeUpdate, bool &callAgain) final