OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX > Struct Template Reference

#include <wallContact.h>

+ Inheritance diagram for olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >:
+ Collaboration diagram for olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >:

Public Member Functions

 WallContactArbitraryFromOverlapVolume ()
 Constructor.
 
 WallContactArbitraryFromOverlapVolume (std::size_t particleID, unsigned wallID)
 Constructor.
 
 WallContactArbitraryFromOverlapVolume (const WallContactArbitraryFromOverlapVolume< T, D, CONVEX > &contact)
 Copy Constructor.
 
 WallContactArbitraryFromOverlapVolume (WallContactArbitraryFromOverlapVolume< T, D, CONVEX > &&contact)
 Move Constructor.
 
constexpr const PhysR< T, D > & getParticlePosition () const
 Return particle position.
 
constexpr const PhysR< T, D > & getMin () const
 Read access to min.
 
constexpr const PhysR< T, D > & getMax () const
 Read access to max.
 
constexpr const std::size_t & getParticleID () const
 Read access to particle ID.
 
constexpr unsigned getWallID () const
 Read access to wall matreial.
 
constexpr T getDampingFactor () const
 Read access to damping factor.
 
constexpr const int & getResponsibleRank () const
 Read access to the responsible rank.
 
constexpr void setParticlePosition (const PhysR< T, D > &particlePosition)
 Set particle position.
 
constexpr void setDampingFactor (const T dampingFactor)
 Set damping factor for contact.
 
constexpr void setDampingFactorFromInitialVelocity (const T coefficientOfRestitution, const T initialRelativeVelocityMagnitude)
 Set damping factor from the magnitude of the initial relative impact velocity in direction of contact normal and the wanted coefficient of restitution.
 
constexpr void setResponsibleRank (const int &rank)
 Set processor that is responsible for contact treatment.
 
constexpr void resetMinMax ()
 Reset min and max to default values.
 
constexpr void updateMinMax (const PhysR< T, D > &positionInsideTheContact)
 Update min and max with given position inside the contact.
 
constexpr void increaseMinMax (const Vector< T, D > &increaseBy)
 Increase bounding box size.
 
constexpr void combineWith (WallContactArbitraryFromOverlapVolume< T, D, CONVEX > &contact)
 Combining two contacts, if the particle IDs are the same.
 
constexpr bool isEmpty () const
 Returns if contact holds data.
 
constexpr bool isNew () const
 Returns if the contact is a new contact.
 
constexpr void isNew (const bool newContact)
 Sets 'isNew'.
 
constexpr bool isParticlePositionUpdated () const
 Returns if the particle position is up-to-date.
 
constexpr void setParticlePositionUpdated (bool updated)
 
WallContactArbitraryFromOverlapVolume< T, D, CONVEX > & operator= (const WallContactArbitraryFromOverlapVolume< T, D, CONVEX > &contact)
 Copy assignment.
 
WallContactArbitraryFromOverlapVolume< T, D, CONVEX > & operator= (WallContactArbitraryFromOverlapVolume< T, D, CONVEX > &&contact)
 Move assignment.
 
std::size_t serialize (std::uint8_t *buffer)
 Serialize contact data.
 
std::size_t deserialize (std::uint8_t *buffer)
 Deserialize contact data and save in object.
 
void print ()
 Print relevant quantities.
 
- Public Member Functions inherited from olb::particles::contact::WallContact< D >
const std::vector< unsigned int > indicesDim ({0, 1})
 
const std::vector< unsigned int > indicesDim ({0, 1, 2})
 

Static Public Member Functions

static constexpr std::size_t getSerialSize ()
 Get serial size.
 

Additional Inherited Members

- Static Public Attributes inherited from olb::particles::contact::WallContact< D >
static const std::vector< unsigned int > indicesDim
 
static const std::vector< unsigned int > indicesSingle
 

Detailed Description

template<typename T, unsigned D, bool CONVEX = true>
struct olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >

Definition at line 57 of file wallContact.h.

Constructor & Destructor Documentation

◆ WallContactArbitraryFromOverlapVolume() [1/4]

template<typename T , unsigned D, bool CONVEX>
olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::WallContactArbitraryFromOverlapVolume ( )

Constructor.

Definition at line 35 of file wallContact.hh.

◆ WallContactArbitraryFromOverlapVolume() [2/4]

template<typename T , unsigned D, bool CONVEX>
olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::WallContactArbitraryFromOverlapVolume ( std::size_t particleID,
unsigned wallID )

Constructor.

Definition at line 42 of file wallContact.hh.

44 : particleID(std::array<std::size_t, 1>({particleID}))
45 , wallID(std::array<unsigned, 1>({wallID}))
46
47{
49}
constexpr void resetMinMax()
Reset min and max to default values.

◆ WallContactArbitraryFromOverlapVolume() [3/4]

template<typename T , unsigned D, bool CONVEX>
olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::WallContactArbitraryFromOverlapVolume ( const WallContactArbitraryFromOverlapVolume< T, D, CONVEX > & contact)

Copy Constructor.

Definition at line 52 of file wallContact.hh.

55{
56 min = contact.min;
57 max = contact.max;
58 particleID[0] = contact.particleID[0];
59 wallID[0] = contact.wallID[0];
60 particlePosition = contact.particlePosition;
61 particlePositionUpdated[0] = contact.isParticlePositionUpdated();
62 dampingFactor[0] = contact.getDampingFactor();
63 newContact[0] = contact.isNew();
64 responsibleRank[0] = contact.getResponsibleRank();
65}

References olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getDampingFactor(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getResponsibleRank(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isNew(), and olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isParticlePositionUpdated().

+ Here is the call graph for this function:

◆ WallContactArbitraryFromOverlapVolume() [4/4]

template<typename T , unsigned D, bool CONVEX>
olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::WallContactArbitraryFromOverlapVolume ( WallContactArbitraryFromOverlapVolume< T, D, CONVEX > && contact)

Move Constructor.

Definition at line 68 of file wallContact.hh.

71{
72 min = std::move(contact.min);
73 max = std::move(contact.max);
74 particleID = std::move(contact.particleID);
75 wallID = std::move(contact.wallID);
76 particlePosition = std::move(contact.particlePosition);
77 particlePositionUpdated = std::move(contact.particlePositionUpdated);
78 dampingFactor = std::move(contact.dampingFactor);
79 newContact = std::move(contact.newContact);
80 responsibleRank = std::move(contact.responsibleRank);
81}

Member Function Documentation

◆ combineWith()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::combineWith ( WallContactArbitraryFromOverlapVolume< T, D, CONVEX > & contact)
constexpr

Combining two contacts, if the particle IDs are the same.

Definition at line 197 of file wallContact.hh.

199{
200 if (particleID[0] == contact.particleID[0] &&
201 wallID[0] == contact.wallID[0]) {
202 if(contact.isNew() == newContact[0]) {
203 // Determine bounding box of combined overlap area
204 for (unsigned iD = 0; iD < D; ++iD) {
205 min[iD] = util::min(min[iD], contact.min[iD]);
206 max[iD] = util::max(max[iD], contact.max[iD]);
207 }
208 // The damping factors should be either the same or one is -1 and the other has the correct value which is > 0
209 dampingFactor[0] = util::max(dampingFactor[0], contact.getDampingFactor());
210 responsibleRank[0] =
211 util::min(responsibleRank[0], contact.getResponsibleRank());
212 particlePositionUpdated[0] =
213 particlePositionUpdated[0] || contact.isParticlePositionUpdated();
214 if (!particlePositionUpdated[0] && contact.isParticlePositionUpdated()) {
215 particlePosition = contact.getParticlePosition();
216 }
217 }
218 else {
219 if(!contact.isNew()) {
220 min = contact.getMin();
221 max = contact.getMax();
222 dampingFactor[0] = contact.getDampingFactor();
223 particlePositionUpdated[0] = contact.isParticlePositionUpdated();
224 particlePosition = contact.getParticlePosition();
225 }
226 responsibleRank[0] =
227 util::min(responsibleRank[0], contact.getResponsibleRank());
228 newContact[0] = newContact[0] && contact.isNew();
229 }
230
231 // Ignore second contact by resetting it
232 contact.resetMinMax();
233 }
234}
Expr min(Expr a, Expr b)
Definition expr.cpp:249
Expr max(Expr a, Expr b)
Definition expr.cpp:245

References olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getDampingFactor(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getMax(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getMin(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getParticlePosition(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getResponsibleRank(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isNew(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isParticlePositionUpdated(), olb::util::max(), olb::util::min(), and olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::resetMinMax().

+ Here is the call graph for this function:

◆ deserialize()

template<typename T , unsigned D, bool CONVEX>
std::size_t olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::deserialize ( std::uint8_t * buffer)

Deserialize contact data and save in object.

Definition at line 372 of file wallContact.hh.

374{
375 return processWithCommunicatables(
376 [&](auto& communicatablePosition, auto& communicatableMin,
377 auto& communicatableMax, auto& communicatableID,
378 auto& communicatableMaterial, auto& communicatableDamping,
379 auto& communicatableParticlePositionUpdated,
380 auto& communicatableIsNew, auto& communicatableRank) {
381 std::size_t serialIdx =
382 communicatablePosition.deserialize(this->indicesDim, buffer);
383 serialIdx +=
384 communicatableMin.deserialize(this->indicesDim, &buffer[serialIdx]);
385 serialIdx +=
386 communicatableMax.deserialize(this->indicesDim, &buffer[serialIdx]);
387 serialIdx += communicatableID.deserialize(this->indicesSingle,
388 &buffer[serialIdx]);
389 serialIdx += communicatableMaterial.deserialize(this->indicesSingle,
390 &buffer[serialIdx]);
391 serialIdx += communicatableDamping.deserialize(this->indicesSingle,
392 &buffer[serialIdx]);
393 serialIdx += communicatableParticlePositionUpdated.deserialize(
394 this->indicesSingle, &buffer[serialIdx]);
395 serialIdx += communicatableIsNew.deserialize(this->indicesSingle,
396 &buffer[serialIdx]);
397 serialIdx += communicatableRank.deserialize(this->indicesSingle,
398 &buffer[serialIdx]);
399
400 return serialIdx;
401 });
402}
static const std::vector< unsigned int > indicesDim
Definition wallContact.h:42
static const std::vector< unsigned int > indicesSingle
Definition wallContact.h:43

◆ getDampingFactor()

template<typename T , unsigned D, bool CONVEX>
T olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getDampingFactor ( ) const
constexpr

Read access to damping factor.

Definition at line 144 of file wallContact.hh.

145{
146 return dampingFactor[0];
147}
+ Here is the caller graph for this function:

◆ getMax()

template<typename T , unsigned D, bool CONVEX>
const PhysR< T, D > & olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getMax ( ) const
constexpr

Read access to max.

Definition at line 137 of file wallContact.hh.

138{
139 return this->max;
140}

References olb::max().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getMin()

template<typename T , unsigned D, bool CONVEX>
const PhysR< T, D > & olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getMin ( ) const
constexpr

Read access to min.

Definition at line 130 of file wallContact.hh.

131{
132 return this->min;
133}
+ Here is the caller graph for this function:

◆ getParticleID()

template<typename T , unsigned D, bool CONVEX>
const std::size_t & olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getParticleID ( ) const
constexpr

Read access to particle ID.

Definition at line 85 of file wallContact.hh.

86{
87 return this->particleID[0];
88}
+ Here is the caller graph for this function:

◆ getParticlePosition()

template<typename T , unsigned D, bool CONVEX>
const PhysR< T, D > & olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getParticlePosition ( ) const
constexpr

Return particle position.

Definition at line 99 of file wallContact.hh.

100{
101 return particlePosition;
102}
+ Here is the caller graph for this function:

◆ getResponsibleRank()

template<typename T , unsigned D, bool CONVEX>
const int & olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getResponsibleRank ( ) const
constexpr

Read access to the responsible rank.

Definition at line 123 of file wallContact.hh.

124{
125 return responsibleRank[0];
126}
+ Here is the caller graph for this function:

◆ getSerialSize()

template<typename T , unsigned D, bool CONVEX = true>
static constexpr std::size_t olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getSerialSize ( )
inlinestaticconstexpr

Get serial size.

Definition at line 160 of file wallContact.h.

160{ return serialSize; };

◆ getWallID()

template<typename T , unsigned D, bool CONVEX>
unsigned olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getWallID ( ) const
constexpr

Read access to wall matreial.

Definition at line 92 of file wallContact.hh.

93{
94 return this->wallID[0];
95}
+ Here is the caller graph for this function:

◆ increaseMinMax()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::increaseMinMax ( const Vector< T, D > & increaseBy)
constexpr

Increase bounding box size.

Definition at line 189 of file wallContact.hh.

191{
192 this->max += increaseBy;
193 this->min -= increaseBy;
194}
+ Here is the caller graph for this function:

◆ isEmpty()

template<typename T , unsigned D, bool CONVEX>
bool olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isEmpty ( ) const
constexpr

Returns if contact holds data.

Definition at line 238 of file wallContact.hh.

239{
240 for (unsigned iD = 0; iD < D; ++iD) {
241 if (min[iD] > max[iD]) {
242 return true;
243 }
244 }
245 return false;
246}
+ Here is the caller graph for this function:

◆ isNew() [1/2]

template<typename T , unsigned D, bool CONVEX>
bool olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isNew ( ) const
constexpr

Returns if the contact is a new contact.

Definition at line 250 of file wallContact.hh.

251{
252 return newContact[0];
253}
+ Here is the caller graph for this function:

◆ isNew() [2/2]

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isNew ( const bool newContact)
constexpr

Sets 'isNew'.

Definition at line 256 of file wallContact.hh.

258{
259 this->newContact[0] = newContact;
260}

◆ isParticlePositionUpdated()

template<typename T , unsigned D, bool CONVEX>
bool olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isParticlePositionUpdated ( ) const
constexpr

Returns if the particle position is up-to-date.

Definition at line 264 of file wallContact.hh.

266{
267 return particlePositionUpdated[0];
268}
+ Here is the caller graph for this function:

◆ operator=() [1/2]

template<typename T , unsigned D, bool CONVEX>
WallContactArbitraryFromOverlapVolume< T, D, CONVEX > & olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::operator= ( const WallContactArbitraryFromOverlapVolume< T, D, CONVEX > & contact)

Copy assignment.

Definition at line 280 of file wallContact.hh.

282{
283 min = contact.min;
284 max = contact.max;
285 particleID[0] = contact.particleID[0];
286 wallID[0] = contact.wallID[0];
287 particlePosition = contact.particlePosition;
288 particlePositionUpdated[0] = contact.isParticlePositionUpdated();
289 dampingFactor[0] = contact.getDampingFactor();
290 newContact[0] = contact.isNew();
291 responsibleRank[0] = contact.getResponsibleRank();
292
293 return *this;
294}

References olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getDampingFactor(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::getResponsibleRank(), olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isNew(), and olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::isParticlePositionUpdated().

+ Here is the call graph for this function:

◆ operator=() [2/2]

template<typename T , unsigned D, bool CONVEX>
WallContactArbitraryFromOverlapVolume< T, D, CONVEX > & olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::operator= ( WallContactArbitraryFromOverlapVolume< T, D, CONVEX > && contact)

Move assignment.

Definition at line 298 of file wallContact.hh.

300{
301 min = std::move(contact.min);
302 max = std::move(contact.max);
303 particleID = std::move(contact.particleID);
304 wallID = std::move(contact.wallID);
305 particlePosition = std::move(contact.particlePosition);
306 particlePositionUpdated = std::move(contact.particlePositionUpdated);
307 dampingFactor = std::move(contact.dampingFactor);
308 newContact = std::move(contact.newContact);
309 responsibleRank = std::move(contact.responsibleRank);
310
311 return *this;
312}

◆ print()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::print ( )

Print relevant quantities.

Definition at line 405 of file wallContact.hh.

406{
407 OstreamManager clout(std::cout, "WallContact");
408 clout.setMultiOutput(true);
409#ifdef PARALLEL_MODE_MPI
410 int rank = singleton::mpi().getRank();
411 if (rank == responsibleRank[0]) {
412#endif
413 clout << "Min=" << this->min << ", Max=" << this->max << std::endl;
414 clout << "particle ID=" << this->particleID[0]
415 << ", wall ID=" << this->wallID[0]
416 << ", DampingFactor=" << dampingFactor[0] << std::endl;
417 clout << "Position=" << particlePosition << std::endl;
418#ifdef PARALLEL_MODE_MPI
419 }
420#endif
421 clout.setMultiOutput(false);
422}
int getRank() const
Returns the process ID.
MpiManager & mpi()

References olb::singleton::MpiManager::getRank(), olb::singleton::mpi(), and olb::OstreamManager::setMultiOutput().

+ Here is the call graph for this function:

◆ resetMinMax()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::resetMinMax ( )
constexpr

Reset min and max to default values.

Definition at line 169 of file wallContact.hh.

170{
171 for (unsigned iD = 0; iD < D; ++iD) {
172 min[iD] = std::numeric_limits<olb::BaseType<T>>::max();
173 max[iD] = -std::numeric_limits<olb::BaseType<T>>::max();
174 }
175 particlePositionUpdated[0] = false;
176}

References olb::max().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ serialize()

template<typename T , unsigned D, bool CONVEX>
std::size_t olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::serialize ( std::uint8_t * buffer)

Serialize contact data.

Definition at line 339 of file wallContact.hh.

341{
342 return processWithCommunicatables(
343 [&](auto& communicatablePosition, auto& communicatableMin,
344 auto& communicatableMax, auto& communicatableID,
345 auto& communicatableMaterial, auto& communicatableDamping,
346 auto& communicatableParticlePositionUpdated,
347 auto& communicatableIsNew, auto& communicatableRank) {
348 std::size_t serialIdx =
349 communicatablePosition.serialize(this->indicesDim, buffer);
350 serialIdx +=
351 communicatableMin.serialize(this->indicesDim, &buffer[serialIdx]);
352 serialIdx +=
353 communicatableMax.serialize(this->indicesDim, &buffer[serialIdx]);
354 serialIdx +=
355 communicatableID.serialize(this->indicesSingle, &buffer[serialIdx]);
356 serialIdx += communicatableMaterial.serialize(this->indicesSingle,
357 &buffer[serialIdx]);
358 serialIdx += communicatableDamping.serialize(this->indicesSingle,
359 &buffer[serialIdx]);
360 serialIdx += communicatableParticlePositionUpdated.serialize(
361 this->indicesSingle, &buffer[serialIdx]);
362 serialIdx += communicatableIsNew.serialize(this->indicesSingle,
363 &buffer[serialIdx]);
364 serialIdx += communicatableRank.serialize(this->indicesSingle,
365 &buffer[serialIdx]);
366
367 return serialIdx;
368 });
369}

◆ setDampingFactor()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::setDampingFactor ( const T dampingFactor)
constexpr

Set damping factor for contact.

Definition at line 151 of file wallContact.hh.

153{
154 dampingFactor[0] = newDampingFactor;
155}

◆ setDampingFactorFromInitialVelocity()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::setDampingFactorFromInitialVelocity ( const T coefficientOfRestitution,
const T initialRelativeVelocityMagnitude )
constexpr

Set damping factor from the magnitude of the initial relative impact velocity in direction of contact normal and the wanted coefficient of restitution.

Definition at line 158 of file wallContact.hh.

162{
164 coefficientOfRestitution, initialRelativeVelocityMagnitude));
165}
constexpr T evalDampingFactor(const T coefficientOfRestitution, const T initialRelativeVelocityMagnitude)
Calculates the damping factor according to Carvalho & Martins (2019) (10.1016/j.mechmachtheory....
constexpr void setDampingFactor(const T dampingFactor)
Set damping factor for contact.

References olb::particles::contact::evalDampingFactor().

+ Here is the call graph for this function:

◆ setParticlePosition()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::setParticlePosition ( const PhysR< T, D > & particlePosition)
constexpr

Set particle position.

Definition at line 106 of file wallContact.hh.

108{
109 particlePosition = position;
110 particlePositionUpdated[0] = true;
111}

◆ setParticlePositionUpdated()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::setParticlePositionUpdated ( bool updated)
constexpr

Definition at line 272 of file wallContact.hh.

274{
275 particlePositionUpdated[0] = updated;
276}

◆ setResponsibleRank()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::setResponsibleRank ( const int & rank)
constexpr

Set processor that is responsible for contact treatment.

Definition at line 115 of file wallContact.hh.

117{
118 responsibleRank[0] = rank;
119}
+ Here is the caller graph for this function:

◆ updateMinMax()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::WallContactArbitraryFromOverlapVolume< T, D, CONVEX >::updateMinMax ( const PhysR< T, D > & positionInsideTheContact)
constexpr

Update min and max with given position inside the contact.

Definition at line 180 of file wallContact.hh.

182{
183 particles::contact::updateMinMax(this->min, this->max,
184 positionInsideTheContact);
185}
void updateMinMax(PhysR< T, D > &min, PhysR< T, D > &max, const PhysR< T, D > &pos)

References olb::particles::contact::updateMinMax().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this struct was generated from the following files: