|
Defines the basic properties that a interactable object can have. More...
#include <BaseInteractable.h>
Public Member Functions | |
BaseInteractable () | |
Default BaseInteractable constructor. More... | |
BaseInteractable (const BaseInteractable &p) | |
Copy constructor. More... | |
~BaseInteractable () override | |
Destructor, it simply destructs the BaseInteractable and all the objects it contains. More... | |
void | read (std::istream &is) override |
Reads a BaseInteractable from an input stream. More... | |
void | write (std::ostream &os) const override |
Write a BaseInteractable to an output stream. More... | |
unsigned int | getIndSpecies () const |
Returns the index of the species associated with the interactable object. More... | |
virtual void | setIndSpecies (unsigned int indSpecies) |
Sets the index of the Species of this BaseInteractable. More... | |
const ParticleSpecies * | getSpecies () const |
Returns a pointer to the species of this BaseInteractable. More... | |
void | setSpecies (const ParticleSpecies *species) |
Sets the species of this BaseInteractable. More... | |
const Vec3D & | getForce () const |
Returns the force on this BaseInteractable. More... | |
const Vec3D & | getTorque () const |
Returns the torque on this BaseInteractable. More... | |
void | setForce (const Vec3D &force) |
Sets the force on this BaseInteractable. More... | |
void | setTorque (const Vec3D &torque) |
Sets the torque on this BaseInteractable. More... | |
void | addForce (const Vec3D &addForce) |
Adds an amount to the force on this BaseInteractable. More... | |
void | addTorque (const Vec3D &addTorque) |
Adds an amount to the torque on this BaseInteractable. More... | |
virtual void | resetForceTorque (int numberOfOMPthreads) |
void | sumForceTorqueOMP () |
const Vec3D & | getPosition () const |
Returns the position of this BaseInteractable. More... | |
const Quaternion & | getOrientation () const |
Returns the orientation of this BaseInteractable. More... | |
virtual void | setPosition (const Vec3D &position) |
Sets the position of this BaseInteractable. More... | |
void | setOrientationViaNormal (Vec3D normal) |
Sets the orientation of this BaseInteractable by defining the vector that results from the rotation of the (1,0,0) vector. More... | |
void | setOrientationViaEuler (Vec3D eulerAngle) |
Sets the orientation of this BaseInteractable by defining the euler angles. More... | |
virtual void | setOrientation (const Quaternion &orientation) |
Sets the orientation of this BaseInteractable. More... | |
virtual void | move (const Vec3D &move) |
Moves this BaseInteractable by adding an amount to the position. More... | |
virtual void | rotate (const Vec3D &angularVelocityDt) |
Rotates this BaseInteractable. More... | |
const std::vector< BaseInteraction * > & | getInteractions () const |
Returns a list of interactions which belong to this interactable. More... | |
void | addInteraction (BaseInteraction *I) |
Adds an interaction to this BaseInteractable. More... | |
bool | removeInteraction (BaseInteraction *I) |
Removes an interaction from this BaseInteractable. More... | |
void | copyInteractionsForPeriodicParticles (const BaseInteractable &p) |
Copies interactions to this BaseInteractable whenever a periodic copy made. More... | |
void | setVelocity (const Vec3D &velocity) |
set the velocity of the BaseInteractable. More... | |
void | setAngularVelocity (const Vec3D &angularVelocity) |
set the angular velocity of the BaseInteractble. More... | |
void | addVelocity (const Vec3D &velocity) |
adds an increment to the velocity. More... | |
void | addAngularVelocity (const Vec3D &angularVelocity) |
add an increment to the angular velocity. More... | |
virtual const Vec3D & | getVelocity () const |
Returns the velocity of this interactable. More... | |
virtual const Vec3D & | getAngularVelocity () const |
Returns the angular velocity of this interactable. More... | |
void | setPrescribedPosition (const std::function< Vec3D(double)> &prescribedPosition) |
Allows the position of an infinite mass interactable to be prescribed. More... | |
void | applyPrescribedPosition (double time) |
Computes the position from the user defined prescribed position function. More... | |
void | setPrescribedVelocity (const std::function< Vec3D(double)> &prescribedVelocity) |
Allows the velocity of an infinite mass interactable to be prescribed. More... | |
void | applyPrescribedVelocity (double time) |
Computes the velocity from the user defined prescribed velocity function. More... | |
void | setPrescribedOrientation (const std::function< Quaternion(double)> &prescribedOrientation) |
Allows the orientation of the infinite mass interactbale to be prescribed. More... | |
void | applyPrescribedOrientation (double time) |
Computes the orientation from the user defined prescribed orientation function. More... | |
void | setPrescribedAngularVelocity (const std::function< Vec3D(double)> &prescribedAngularVelocity) |
Allows the angular velocity of the infinite mass interactable to be prescribed. More... | |
void | applyPrescribedAngularVelocity (double time) |
Computes the angular velocity from the user defined prescribed angular velocity. More... | |
virtual BaseInteraction * | getInteractionWith (BaseParticle *P, unsigned timeStamp, InteractionHandler *interactionHandler)=0 |
Returns the interaction between this object and a given BaseParticle. More... | |
virtual const Vec3D | getVelocityAtContact (const Vec3D &contact) const |
Returns the velocity at the contact point, use by many force laws. More... | |
void | integrateBeforeForceComputation (double time, double timeStep) |
This is part of integrate routine for objects with infinite mass. More... | |
void | integrateAfterForceComputation (double time, double timeStep) |
This is part of the integration routine for objects with infinite mass. More... | |
virtual bool | isFixed () const =0 |
virtual Mdouble | getInvMass () const |
virtual Mdouble | getCurvature (const Vec3D &labFixedCoordinates) const |
virtual bool | isFaceContact (const Vec3D &normal) const |
Public Member Functions inherited from BaseObject | |
BaseObject ()=default | |
Default constructor. More... | |
BaseObject (const BaseObject &p)=default | |
Copy constructor, copies all the objects BaseObject contains. More... | |
virtual | ~BaseObject ()=default |
virtual destructor More... | |
virtual std::string | getName () const =0 |
A purely virtual function. More... | |
virtual void | moveInHandler (unsigned int index) |
Except that it is virtual, it does the same thing as setIndex() does. More... | |
void | setIndex (unsigned int index) |
Allows one to assign an index to an object in the handler/container. More... | |
void | setId (unsigned long id) |
Assigns a unique identifier to each object in the handler (container) which remains constant even after the object is deleted from the container/handler. More... | |
unsigned int | getIndex () const |
Returns the index of the object in the handler. More... | |
unsigned int | getId () const |
Returns the unique identifier of any particular object. More... | |
void | setGroupId (unsigned groupId) |
unsigned | getGroupId () const |
Private Attributes | |
std::function< Vec3D(double)> | prescribedPosition_ |
std::function< Vec3D(double)> | prescribedVelocity_ |
std::function< Quaternion(double)> | prescribedOrientation_ |
std::function< Vec3D(double)> | prescribedAngularVelocity_ |
Vec3D | position_ |
Quaternion | orientation_ |
Vec3D | angularVelocity_ |
Vec3D | force_ |
Vec3D | torque_ |
std::vector< Vec3D > | forceOMP_ |
std::vector< Vec3D > | torqueOMP_ |
const ParticleSpecies * | species_ |
unsigned int | indSpecies_ |
Vec3D | velocity_ |
std::vector< BaseInteraction * > | interactions_ |
Defines the basic properties that a interactable object can have.
Inherits from class BaseObject (public) Also it includes a lot of code to deal with interactable objects that have a prescibed motion. Most of the code in here is MercuryDPM internal. The only place an user will interface with this code is for setting the lambda functions that prescribe the motion of infinite mass particles.
BaseInteractable::BaseInteractable | ( | ) |
Default BaseInteractable constructor.
Simply creates an empty BaseInteractable, with all vectors relating to the positions and motions of the current object initialised to zero and all pointers to null.
Note that the function also sets the species index (indSpecies_) to zero by default, so any objects created will, by default, possess the properties associated with species 0.
References angularVelocity_, DEBUG, force_, indSpecies_, logger, orientation_, position_, prescribedAngularVelocity_, prescribedOrientation_, prescribedPosition_, prescribedVelocity_, Quaternion::setUnity(), Vec3D::setZero(), species_, torque_, and velocity_.
BaseInteractable::BaseInteractable | ( | const BaseInteractable & | p | ) |
Copy constructor.
Copies an existing BaseInteractable, p
, and (almost) all objects it contains.
Note, that the interactions are not copied as these often require extra work. Rather, the interactions list is simply emptied using the standard C++ clear function, destroying all contents and leaving the interactions_ vector with a size of zero.
All the other properties are copied normally.
Please use this copy with care.
References angularVelocity_, DEBUG, force_, indSpecies_, interactions_, logger, orientation_, position_, prescribedAngularVelocity_, prescribedOrientation_, prescribedPosition_, prescribedVelocity_, species_, torque_, and velocity_.
|
override |
Destructor, it simply destructs the BaseInteractable and all the objects it contains.
Removes all the interactions from the interactable.
References DEBUG, BaseObject::getId(), BaseObject::getIndex(), interactions_, logger, and VERBOSE.
void BaseInteractable::addAngularVelocity | ( | const Vec3D & | angularVelocity | ) |
add an increment to the angular velocity.
See also BaseInteractable::setAngularVelocity
[in] | angularVelocity | increment which to increase the angularVelocity by. |
References angularVelocity_.
Referenced by BaseParticle::angularAccelerate(), and TriangleMeshWall::getInteractionWith().
void BaseInteractable::addForce | ( | const Vec3D & | addForce | ) |
Adds an amount to the force on this BaseInteractable.
Incremental version of BaseInteractable::setForce. Also see BaseInteraction::setForce for were this is used.
[in] | addForce | Vec3D incremental force which is added to the total force of the interactable. |
References force_, forceOMP_, and OMP_THREAD_NUM.
Referenced by MeshTriangle::checkInteractions(), DPMBase::computeExternalForces(), Contact::computeExternalForces(), VolumeCoupling::computeExternalForces(), AngledPeriodicBoundarySecondUnitTest::computeExternalForces(), ScaleCoupling< M, O >::computeExternalForces(), DPMBase::computeForcesDueToWalls(), Mercury3Dclump::computeForcesDueToWalls(), DPMBase::computeInternalForce(), Mercury3Dclump::computeInternalForce(), ChuteWithPeriodicInflow::computeInternalForces(), BaseWall::getInteractionWith(), and TriangleMeshWall::getInteractionWith().
void BaseInteractable::addInteraction | ( | BaseInteraction * | I | ) |
Adds an interaction to this BaseInteractable.
Added a new interactions to the current interactable.
[in] | I | Pointer to the new interaction which is to be added to the list of interactions of this interactable. |
References interactions_.
Referenced by InteractionHandler::addObject(), BaseInteraction::importI(), BaseInteraction::importP(), BaseInteraction::setI(), and BaseInteraction::setP().
void BaseInteractable::addTorque | ( | const Vec3D & | addTorque | ) |
Adds an amount to the torque on this BaseInteractable.
Incremental version of BaseInteractable::setTorque. Also see BaseInteraction::setTorque for were this is used.
[in] | addTorque | Vec3D incremental force which is added to the total torque of the interactable. |
References OMP_THREAD_NUM, torque_, and torqueOMP_.
Referenced by MeshTriangle::checkInteractions(), DPMBase::computeForcesDueToWalls(), Mercury3Dclump::computeForcesDueToWalls(), DPMBase::computeInternalForce(), Mercury3Dclump::computeInternalForce(), ChuteWithPeriodicInflow::computeInternalForces(), BaseWall::getInteractionWith(), and TriangleMeshWall::getInteractionWith().
|
inline |
adds an increment to the velocity.
See also BaseInteractable::setVelocity
[in] | velocity | Vec3D containing the velocity increment which to increase the velocity by. |
References velocity_.
Referenced by BaseParticle::accelerate(), TriangleMeshWall::getInteractionWith(), TimeDependentPeriodicBoundary::shiftAndBoostParticle(), ShearBoxBoundary::shiftHorizontalPosition(), LeesEdwardsBoundary::shiftVerticalPosition(), and ClumpParticle::updatePebblesVelPos().
void BaseInteractable::applyPrescribedAngularVelocity | ( | double | time | ) |
Computes the angular velocity from the user defined prescribed angular velocity.
This calls the prescribedAngularVelocity function if one has been defined. See also BaseInteractable::setPrescribedAngularVelocity
[in] | time | double which is the current time of the simulation. |
References prescribedAngularVelocity_, and setAngularVelocity().
Referenced by integrateAfterForceComputation(), and integrateBeforeForceComputation().
void BaseInteractable::applyPrescribedOrientation | ( | double | time | ) |
Computes the orientation from the user defined prescribed orientation function.
This calls the prescribedOrientation function if one has been defined. See also BaseInteractable::setPrescribedOrientation
[in] | time | double which is the current time of the simulation. |
References prescribedOrientation_, and setOrientation().
Referenced by integrateBeforeForceComputation().
void BaseInteractable::applyPrescribedPosition | ( | double | time | ) |
Computes the position from the user defined prescribed position function.
This calls the prescribedPosition function if one has been defined. See also BaseInteractable::setPrescribedPosition
[in] | time | double which is the current time of the simulation. |
References prescribedPosition_, and setPosition().
Referenced by integrateBeforeForceComputation().
void BaseInteractable::applyPrescribedVelocity | ( | double | time | ) |
Computes the velocity from the user defined prescribed velocity function.
This calls the prescribedVeclocity function if one has been defined. See also BaseInteractable::setPrescribedVelocity
[in] | time | double which is the current time of the simulation. |
References prescribedVelocity_, and setVelocity().
Referenced by integrateAfterForceComputation(), and integrateBeforeForceComputation().
void BaseInteractable::copyInteractionsForPeriodicParticles | ( | const BaseInteractable & | pOriginal | ) |
Copies interactions to this BaseInteractable whenever a periodic copy made.
This loops over all interactions of periodic (particle) and calls copySwitchPointer, which copies the interactions.
[in] | pOriginal | Reference to the BaseInteractable which is to be copied to create the ghost particles. |
References BaseInteraction::copySwitchPointer(), and interactions_.
Referenced by ConstantMassFlowMaserBoundary::createGhostCopy(), SubcriticalMaserBoundary::createGhostCopy(), PeriodicBoundary::createGhostParticle(), TimeDependentPeriodicBoundary::createGhostParticle(), LeesEdwardsBoundary::createHorizontalPeriodicParticle(), ShearBoxBoundary::createHorizontalPeriodicParticle(), AngledPeriodicBoundary::createPeriodicParticle(), LeesEdwardsBoundary::createVerticalPeriodicParticle(), and ShearBoxBoundary::createVerticalPeriodicParticle().
|
virtual |
Returns the angular velocity of this interactable.
Returns the angular velocity of the BaseInteractbale. Note, this is the same for all BaseInteractables; it is the direction the object is moving in.
References angularVelocity_.
Referenced by MarbleRun::actionsAfterTimeStep(), NautaMixer::addScrew(), ClumpParticle::angularAccelerateClumpIterative(), DeletionBoundary::checkBoundaryAfterParticleMoved(), compareParticles(), ChuteWithPeriodicInflow::computeInternalForces(), MPISphericalParticle::copyDataFromParticleToMPIParticle(), copyVelocityFrom(), BaseParticle::getAngularMomentum(), HorizontalBaseScrew::getDistanceAndNormal(), SimpleDrumSuperquadrics::getDistanceAndNormal(), TriangleMeshWall::getInteractionWith(), ParticleParticleCollision::getRelativeVelocity(), WallParticleCollision::getRelativeVelocity(), BaseParticle::getRotationalEnergy(), ClumpParticle::getRotationalEnergy(), getVelocityAtContact(), integrateBeforeForceComputation(), BaseParticle::integrateBeforeForceComputation(), ClumpParticle::integrateBeforeForceComputation(), main(), objectivenessTest(), ChuteWithPeriodicInflow::outputXBallsDataParticlee(), ClumpParticle::updateExtraQuantities(), PeriodicBoundaryHandler::updateParticles(), ClumpParticle::updatePebblesVelPos(), and HorizontalBaseScrew::writeVTK().
|
inlinevirtual |
returns the inverse radius, or curvature, of the surface. This value is zero for walls and gets overridden for particles that have finite radius
Reimplemented in BaseParticle, and SuperQuadricParticle.
Referenced by BaseInteraction::getEffectiveRadius(), and BaseInteraction::getOverlapVolume().
|
inline |
Returns the force on this BaseInteractable.
Return the current force being to the BaseInteractable. Note, the code works by first computing the forces of each interaction and then it loops over all BaseInteracables applying forces to them from the interactions they are involved in.
References force_.
Referenced by T_protectiveWall::actionsAfterTimeStep(), ClosedCSCWalls::actionsAfterTimeStep(), MercuryProblem::actionsAfterTimeStep(), protectiveWall::actionsAfterTimeStep(), Slide::actionsBeforeTimeStep(), SphericalIndenter::getForceOnIndenter(), BaseParticle::integrateAfterForceComputation(), ClumpParticle::integrateAfterForceComputation(), BaseParticle::integrateBeforeForceComputation(), ClumpParticle::integrateBeforeForceComputation(), main(), BaseWall::setForceControl(), BaseWall::setVelocityControl(), ClumpParticle::updateExtraQuantities(), and Slide::writeEneTimeStep().
|
inline |
Returns the index of the species associated with the interactable object.
References indSpecies_.
Referenced by Chutebelt::actionsBeforeTimeStep(), InteractionHandler::addInteraction(), DeletionBoundary::checkBoundaryAfterParticleMoved(), ChuteWithPeriodicInflow::computeInternalForces(), MPISphericalParticle::copyDataFromParticleToMPIParticle(), FlowRule::create_inflow_particle(), InteractionHandler::getInteraction(), ChuteWithPeriodicInflow::integrateBeforeForceComputation(), ChuteWithPeriodicInflow::outputXBallsDataParticlee(), ChuteWithPeriodicInflow::printTime(), ParticleHandler::readAndCreateObject(), WallHandler::readAndCreateObject(), BaseParticle::setHandler(), BaseWall::setHandler(), BaseWall::setIndSpecies(), and Chutebelt::setupInitialConditions().
|
inline |
Returns a list of interactions which belong to this interactable.
References interactions_.
Referenced by SilbertPeriodic::add_flow_particles(), MeshTriangle::checkInteractions(), SCoupling< M, O >::computeSCouplingForcesFromTriangles(), WearableNurbsWall::computeWear(), WearableTriangulatedWall::computeWear(), PeriodicBoundaryHandler::findNewInteractions(), BaseWall::getInteractionWith(), MeshTriangle::getInteractionWith(), LiquidMigrationLSInteraction::getNumberOfContacts(), LiquidMigrationWilletInteraction::getNumberOfContacts(), DPMBase::removeDuplicatePeriodicParticles(), LiquidMigrationLSInteraction::rupture(), and LiquidMigrationWilletInteraction::rupture().
|
pure virtual |
Returns the interaction between this object and a given BaseParticle.
TW make sure this function sets normal, distance, overlap, contact point
AT why is this a BaseParticle and not a BaseInteratable.
Implemented in VChute, TriangulatedWall, TriangleMeshWall, SineWall, RestrictedWall, ParabolaChute, MeshTriangle, Combtooth, BaseWall, ArcWall, SuperQuadricParticle, and BaseParticle.
Referenced by PeriodicBoundaryHandler::processReceivedInteractionData(), and Domain::processReceivedInteractionData().
|
inlinevirtual |
returns the inverse mass. This value is zero for walls and gets overridden for particles that have finite mass
Reimplemented in MeshTriangle, and BaseParticle.
Referenced by BaseInteraction::getEffectiveMass().
|
inline |
Returns the orientation of this BaseInteractable.
Returns the reference to a Vec3D which contains the orientation of the interactionable. Please note the interpretation of this depends on which interactable. Please see derived objects for details.
References orientation_.
Referenced by MarbleRun::actionsAfterTimeStep(), NautaMixer::addScrew(), compareParticles(), ScrewsymmetricIntersectionOfWalls::computeDeltaZ(), SuperQuadricParticle::computeHessianLabFixed(), SuperQuadricParticle::computeShape(), SuperQuadricParticle::computeShapeGradientLabFixed(), WearableTriangleMeshWall::computeWear(), AxisymmetricIntersectionOfWalls::convertLimits(), HorizontalBaseScrew::convertLimits(), ScrewsymmetricIntersectionOfWalls::convertLimits(), MPISphericalParticle::copyDataFromParticleToMPIParticle(), copyPositionFrom(), InfiniteWall::createVTK(), BaseWall::getAxis(), SuperQuadricParticle::getContactPointPlanB(), InfiniteWall::getDistance(), AxisymmetricIntersectionOfWalls::getDistanceAndNormal(), HorizontalBaseScrew::getDistanceAndNormal(), NurbsWall::getDistanceAndNormal(), Screw::getDistanceAndNormal(), BasicIntersectionOfWalls::getDistanceAndNormal(), BasicUnionOfWalls::getDistanceAndNormal(), InfiniteWall::getDistanceAndNormal(), IntersectionOfWalls::getDistanceAndNormal(), LevelSetWall::getDistanceAndNormal(), TriangleMeshWall::getDistanceAndNormal(), InfiniteWall::getDistanceNormalOverlapSuperquadric(), BaseWall::getInteractionWith(), TriangleMeshWall::getInteractionWith(), InfiniteWall::getNormal(), BasicIntersectionOfWalls::getVTK(), BasicUnionOfWalls::getVTK(), integrateAfterForceComputation(), BaseParticle::integrateAfterForceComputation(), integrateBeforeForceComputation(), BaseParticle::integrateBeforeForceComputation(), objectivenessTest(), ChuteWithPeriodicInflow::outputXBallsDataParticlee(), CGFields::OrientationField::setFields(), EllipticalSuperQuadricCollision::setupInitialConditions(), WearableNurbsWall::storeDebris(), ShapeGradientHessianTester::testCushion(), ShapeGradientHessianTester::testEllipsoid(), ShapeGradientHessianTester::testRoundedBeam(), TriangleMeshWall::updateBoundingBoxGlobal(), PeriodicBoundaryHandler::updateParticles(), ClumpParticle::updatePebblesVelPos(), TriangleWall::updateVertexAndNormal(), SuperQuadricParticle::writeDebugMessageMiddleOfLoop(), SuperQuadricParticle::writeDebugMessageStep1(), AxisymmetricIntersectionOfWalls::writeVTK(), BasicUnionOfWalls::writeVTK(), IntersectionOfWalls::writeVTK(), LevelSetWall::writeVTK(), NurbsWall::writeVTK(), Screw::writeVTK(), ScrewsymmetricIntersectionOfWalls::writeVTK(), TriangleMeshWall::writeVTK(), NurbsWall::writeWallDetailsVTK(), and WearableNurbsWall::writeWallDetailsVTK().
|
inline |
Returns the position of this BaseInteractable.
Returns the reference to a Vec3D which contains the position of the interactionable. Please note the interpretation of this depends on which interactable. For particles this is the centre of the particle; where for walls it is one point of the wall given \(r.n=p\)
References position_.
Referenced by ClosedCSCRestart::actionsAfterTimeStep(), ClosedCSCRun::actionsAfterTimeStep(), multiParticleT1::actionsAfterTimeStep(), BouncingSuperQuadric::actionsAfterTimeStep(), DrivenParticleClass::actionsAfterTimeStep(), AngleOfRepose::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), Chutebelt::actionsBeforeTimeStep(), NautaMixer::addParticlesAtWall(), NautaMixer::addScrew(), statistics_while_running< T >::auto_set_domain(), statistics_while_running< T >::auto_set_z(), ConstantMassFlowMaserBoundary::checkBoundaryAfterParticleMoved(), DeletionBoundary::checkBoundaryAfterParticleMoved(), FluxBoundary::checkBoundaryAfterParticleMoved(), HeaterBoundary::checkBoundaryAfterParticleMoved(), SubcriticalMaserBoundaryTEST::checkBoundaryAfterParticleMoved(), Mercury3Dclump::checkClumpForInteractionPeriodic(), DPMBase::checkParticleForInteractionLocal(), DPMBase::checkParticleForInteractionLocalPeriodic(), ChuteWithPeriodicInflow::cleanChute(), ChuteWithContraction::cleanChute(), Funnel::cleanChute(), Chute::cleanChute(), compareParticles(), Contact::computeExternalForces(), AngledPeriodicBoundarySecondUnitTest::computeExternalForces(), ScaleCoupling< M, O >::computeExternalForces(), DPMBase::computeForcesDueToWalls(), Mercury3Dclump::computeForcesDueToWalls(), SuperQuadricParticle::computeHessianLabFixed(), DPMBase::computeInternalForce(), Mercury3Dclump::computeInternalForce(), Mercury2D::computeInternalForces(), Mercury3D::computeInternalForces(), ChuteWithPeriodicInflow::computeInternalForces(), DPM::computeLocalCGHGrid(), DPM::computeLocalVolumeFractionHGrid(), SuperQuadricParticle::computeShape(), SuperQuadricParticle::computeShapeGradientLabFixed(), WearableTriangleMeshWall::computeWear(), Domain::containsParticle(), AxisymmetricIntersectionOfWalls::convertLimits(), HorizontalBaseScrew::convertLimits(), ScrewsymmetricIntersectionOfWalls::convertLimits(), MPISphericalParticle::copyDataFromParticleToMPIParticle(), copyPositionFrom(), Funnel::create_funnel(), Funnel::create_inflow_particle(), CircularPeriodicBoundary::createPeriodicParticle(), SubcriticalMaserBoundaryTEST::createPeriodicParticle(), InfiniteWall::createVTK(), ChuteWithWedge::extendBottom(), Domain::findNearbyBoundaries(), Domain::findNewMPIInteractions(), PeriodicBoundaryHandler::findNewParticle(), Domain::flushParticlesFromList(), BaseInteraction::gatherContactStatistics(), BaseParticle::getAngularMomentum(), SuperQuadricParticle::getContactPointPlanB(), BaseInteraction::getCP(), BaseParticle::getDisplacement2(), ConstantMassFlowMaserBoundary::getDistance(), SubcriticalMaserBoundary::getDistance(), PeriodicBoundary::getDistance(), TimeDependentPeriodicBoundary::getDistance(), SphericalWall::getDistance(), InfiniteWall::getDistance(), ArcWall::getDistanceAndNormal(), AxisymmetricIntersectionOfWalls::getDistanceAndNormal(), HorizontalBaseScrew::getDistanceAndNormal(), HorizontalScrew::getDistanceAndNormal(), NurbsWall::getDistanceAndNormal(), Screw::getDistanceAndNormal(), ScrewsymmetricIntersectionOfWalls::getDistanceAndNormal(), BasicIntersectionOfWalls::getDistanceAndNormal(), BasicUnionOfWalls::getDistanceAndNormal(), Coil::getDistanceAndNormal(), Combtooth::getDistanceAndNormal(), InfiniteWall::getDistanceAndNormal(), IntersectionOfWalls::getDistanceAndNormal(), LevelSetWall::getDistanceAndNormal(), ParabolaChute::getDistanceAndNormal(), RestrictedWall::getDistanceAndNormal(), SimpleDrumSuperquadrics::getDistanceAndNormal(), SineWall::getDistanceAndNormal(), SphericalWall::getDistanceAndNormal(), TriangleMeshWall::getDistanceAndNormal(), TriangleWall::getDistanceAndNormal(), VChute::getDistanceAndNormal(), TriangulatedWall::Face::getDistanceAndNormal(), InfiniteWall::getDistanceNormalOverlapSuperquadric(), SimpleDrumSuperquadrics::getDistanceNormalOverlapSuperquadric(), MeshTriangle::getDistanceNormalOverlapType(), LeesEdwardsBoundary::getHorizontalDistance(), ShearBoxBoundary::getHorizontalDistance(), BaseInteraction::getIC(), SphericalIndenter::getIndenterHeight(), SuperQuadricParticle::getInitialGuessForContact(), CGCoordinates::R::getINormal(), CGCoordinates::RZ::getINormal(), CGCoordinates::X::getINormal(), CGCoordinates::XY::getINormal(), CGCoordinates::XYZ::getINormal(), CGCoordinates::XZ::getINormal(), CGCoordinates::Y::getINormal(), CGCoordinates::YZ::getINormal(), CGCoordinates::Z::getINormal(), BaseParticle::getInteractionWith(), SuperQuadricParticle::getInteractionWith(), ArcWall::getInteractionWith(), BaseWall::getInteractionWith(), Combtooth::getInteractionWith(), MeshTriangle::getInteractionWith(), RestrictedWall::getInteractionWith(), SineWall::getInteractionWith(), TriangleMeshWall::getInteractionWith(), TriangulatedWall::getInteractionWith(), VChute::getInteractionWith(), SuperQuadricParticle::getInteractionWithSuperQuad(), DomainHandler::getParticleDomainGlobalIndex(), ClumpParticle::getPebblePositions(), CGCoordinates::R::getPNormal(), CGCoordinates::RZ::getPNormal(), CGCoordinates::X::getPNormal(), CGCoordinates::XY::getPNormal(), CGCoordinates::XZ::getPNormal(), CGCoordinates::Y::getPNormal(), CGCoordinates::YZ::getPNormal(), CGCoordinates::Z::getPNormal(), CGCoordinates::RZ::getTangentialSquared(), CGCoordinates::XY::getTangentialSquared(), CGCoordinates::XYZ::getTangentialSquared(), CGCoordinates::XZ::getTangentialSquared(), CGCoordinates::YZ::getTangentialSquared(), getVelocityAtContact(), LeesEdwardsBoundary::getVerticalDistance(), ShearBoxBoundary::getVerticalDistance(), Mercury3D::hGridFindContactsWithTargetCell(), Mercury2D::hGridFindParticleContacts(), Mercury3D::hGridFindParticleContacts(), Mercury2D::hGridGetInteractingParticleList(), Mercury3D::hGridGetInteractingParticleList(), Mercury2D::hGridHasParticleContacts(), Mercury3D::hGridHasParticleContacts(), Mercury2D::hGridUpdateParticle(), Mercury3D::hGridUpdateParticle(), BaseParticle::integrateBeforeForceComputation(), ClumpParticle::integrateBeforeForceComputation(), HorizontalMixer::introduceParticlesAtWall(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), PeriodicBoundary::isClosestToLeftBoundary(), TimeDependentPeriodicBoundary::isClosestToLeftBoundary(), ConstantMassFlowMaserBoundary::isClosestToRightBoundary(), SubcriticalMaserBoundary::isClosestToRightBoundary(), BaseParticle::isInContactWith(), LawinenBox::LawinenBox(), load(), main(), SubcriticalMaserBoundaryTEST::modifyPeriodicComplexity(), objectivenessTest(), SphericalIndenter::outputXBallsData(), ChuteWithPeriodicInflow::outputXBallsDataParticlee(), CubeDeletionBoundarySelfTest::printTime(), DeletionBoundarySelfTest::printTime(), PeriodicBoundaryHandler::processLocalGhostParticles(), Domain::processReceivedBoundaryParticleData(), PeriodicBoundaryHandler::processReceivedGhostParticleData(), FileReader::read(), regimeForceUnitTest::regimeForceUnitTest(), save(), Membrane::saveVertexPositions(), ClosedCSCWalls::saveWalls(), CGFields::GradVelocityField::setCylindricalFields(), CGFields::StandardFields::setCylindricalFields(), IntersectionOfWalls::setPointsAndLines(), MarbleRun::setupInitialConditions(), AngleOfRepose::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), Packing::setupInitialConditions(), TriangleWall::setVertices(), ShearBoxBoundary::shiftHorizontalPosition(), SinterPair::SinterPair(), WearableNurbsWall::storeDebris(), FlowFrontChute::stretch(), TriangleMeshWall::updateBoundingBoxGlobal(), PeriodicBoundaryHandler::updateMaserParticle(), PeriodicBoundaryHandler::updateParticles(), PeriodicBoundaryHandler::updateParticleStatus(), ClumpParticle::updatePebblesVelPos(), SCoupling< M, O >::updateTriangleWall(), TriangleWall::updateVertexAndNormal(), MeshTriangle::updateVerticesFromParticles(), viscoElasticUnitTest::viscoElasticUnitTest(), SuperQuadricParticle::writeDebugMessageMiddleOfLoop(), SuperQuadricParticle::writeDebugMessageStep1(), Penetration::writeEneTimeStep(), Slide::writeEneTimeStep(), SingleParticle< SpeciesType >::writeEneTimeStep(), AxisymmetricIntersectionOfWalls::writeVTK(), BasicUnionOfWalls::writeVTK(), HorizontalBaseScrew::writeVTK(), IntersectionOfWalls::writeVTK(), LevelSetWall::writeVTK(), NurbsWall::writeVTK(), Screw::writeVTK(), ScrewsymmetricIntersectionOfWalls::writeVTK(), TriangleMeshWall::writeVTK(), NurbsWall::writeWallDetailsVTK(), and WearableNurbsWall::writeWallDetailsVTK().
|
inline |
Returns a pointer to the species of this BaseInteractable.
This function return a ParticleSpecies* for the current interacable. Please note, this is a ParticleSpecies; not, a BaseSpecies as interactables must have physically properties as well.
References species_.
Referenced by ClumpParticle::actionsAfterAddObject(), WallHandler::addObject(), IntersectionOfWalls::addObject(), ConstantMassFlowMaserBoundary::addParticleToMaser(), SubcriticalMaserBoundary::addParticleToMaser(), NautaMixer::addScrew(), ConstantMassFlowMaserBoundary::checkBoundaryAfterParticleMoved(), SubcriticalMaserBoundary::checkBoundaryAfterParticleMoved(), ChargedBondedInteraction::computeAdhesionForce(), CurvyChute::createBottom(), NurbsWall::getDistanceAndNormal(), Screw::getDistanceAndNormal(), BasicIntersectionOfWalls::getDistanceAndNormal(), BasicUnionOfWalls::getDistanceAndNormal(), IntersectionOfWalls::getDistanceAndNormal(), TriangleMeshWall::getDistanceAndNormal(), ChargedBondedInteraction::getElasticEnergy(), BaseParticle::getInfo(), BaseParticle::getInteractionDistance(), SuperQuadricParticle::getInteractionRadius(), BaseParticle::getMaxInteractionRadius(), BasicIntersectionOfWalls::getVTK(), BasicUnionOfWalls::getVTK(), ConstantMassFlowMaserBoundary::isMaserParticle(), SubcriticalMaserBoundary::isMaserParticle(), ConstantMassFlowMaserBoundary::isNormalParticle(), SubcriticalMaserBoundary::isNormalParticle(), DPMBase::readNextDataFile(), TriangleMeshWall::refineTriangle(), ConstantMassFlowMaserBoundary::removeParticleFromMaser(), SubcriticalMaserBoundary::removeParticleFromMaser(), RestrictedWall::set(), TriangleMeshWall::set(), SuperQuadricParticle::setAxes(), LinearViscoelasticNormalSpecies::setCollisionTimeAndRestitutionCoefficient(), SPHNormalSpecies::setCollisionTimeAndRestitutionCoefficient(), SuperQuadricParticle::setExponents(), SuperQuadricParticle::setInertia(), BaseParticle::setRadius(), WallParticleCollision::setupInitialConditions(), BaseParticle::unfix(), and BaseInteraction::writeInteraction().
|
inline |
Returns the torque on this BaseInteractable.
Return the current torque being to the BaseInteractable. Note, the code works by first computing the forces of each interaction and then it loops over all BaseInteracables applying forces to them from the interactions they are involved in.
References torque_.
Referenced by ClumpParticle::angularAccelerateClumpIterative(), BaseParticle::integrateAfterForceComputation(), BaseParticle::integrateBeforeForceComputation(), and ClumpParticle::updateExtraQuantities().
|
virtual |
Returns the velocity of this interactable.
Returns the velocity of the BaseInteractbale. Note, this is the same for all BaseInteractables; it is the direction the object is moving in.
References velocity_.
Referenced by HertzianBSHPInteractionTwoParticleElasticCollision::actionsAfterSolve(), SphericalSuperQuadricCollision::actionsAfterSolve(), SpeciesTest::actionsAfterSolve(), ClosedCSCRestart::actionsAfterTimeStep(), ClosedCSCRun::actionsAfterTimeStep(), ClosedCSCWalls::actionsAfterTimeStep(), SphericalIndenter::actionsAfterTimeStep(), BouncingSuperQuadric::actionsAfterTimeStep(), LawinenBox::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), DeletionBoundary::checkBoundaryAfterParticleMoved(), HeaterBoundary::checkBoundaryAfterParticleMoved(), ChuteWithContraction::ChuteWithContraction(), compareParticles(), DPMBase::computeExternalForces(), FrictionInteraction::computeFrictionForce(), ChuteWithPeriodicInflow::computeInternalForces(), ClosedCSCWalls::continueSolve(), MPISphericalParticle::copyDataFromParticleToMPIParticle(), copyVelocityFrom(), BaseParticle::getAngularMomentum(), SphericalIndenter::getIndenterVelocity(), WallSpecies::getInfo(), TriangleMeshWall::getInteractionWith(), BaseParticle::getKineticEnergy(), ClumpParticle::getKineticEnergy(), BaseParticle::getMomentum(), ParticleParticleCollision::getRelativeVelocity(), WallParticleCollision::getRelativeVelocity(), getVelocityAtContact(), ClumpParticle::integrateAfterForceComputation(), integrateBeforeForceComputation(), BaseParticle::integrateBeforeForceComputation(), ClumpParticle::integrateBeforeForceComputation(), load(), main(), InfiniteWallWithHole::move_time(), objectivenessTest(), SphericalIndenter::outputXBallsData(), ChuteWithPeriodicInflow::outputXBallsDataParticlee(), LawinenBox::printTime(), ClosedCSCRestart::printTime(), ClosedCSCRun::printTime(), ClosedCSCWalls::printTime(), ChuteWithPeriodicInflow::printTime(), save(), CGFields::GradVelocityField::setFields(), CGFields::StandardFields::setFields(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), ContactDetectionNormalSpheresTest::test(), HertzContactRestitutionUnitTest::test(), PeriodicBoundaryHandler::updateParticles(), ClumpParticle::updatePebblesVelPos(), MeshTriangle::updateVerticesFromParticles(), and viscoElasticUnitTest::viscoElasticUnitTest().
Returns the velocity at the contact point, use by many force laws.
Reimplemented in MeshTriangle.
References Vec3D::cross(), getAngularVelocity(), getPosition(), and getVelocity().
This is part of the integration routine for objects with infinite mass.
This is the last part of time integration for interactable objects which have an infinite mass.
[in] | time | double which is the current simulation time |
[in] | timeStep | double which is the current delta time of the simulation i.e. the size of each time step. |
References applyPrescribedAngularVelocity(), applyPrescribedVelocity(), getOrientation(), prescribedAngularVelocity_, prescribedOrientation_, prescribedPosition_, prescribedVelocity_, setAngularVelocity(), and setVelocity().
Referenced by DPMBase::integrateAfterForceComputation(), BaseParticle::integrateAfterForceComputation(), and ClumpParticle::integrateAfterForceComputation().
This is part of integrate routine for objects with infinite mass.
This does not first part of verlet integration but for objects with an infinite mass i.e. there motion is prescribed and not calculated from the applied forces. First it deals with the translation degrees of freedom and then secondly if deals with the angular degrees of freedom. Note, in both cases if the user has prescribed both positions and velocity these are used. If only only position is prescribed the velocity is computed from a finite difference. If only the velocity is prescribed the position is computed from integrating the velocity.
In the weird case they neither is set. The objects computed velocity is used to update its position.
[in] | time | double which is the current simulation time |
[in] | timeStep | double which is the current delta time of the simulation i.e. the size of each time step. |
References applyPrescribedAngularVelocity(), applyPrescribedOrientation(), applyPrescribedPosition(), applyPrescribedVelocity(), getAngularVelocity(), getOrientation(), getVelocity(), move(), prescribedAngularVelocity_, prescribedOrientation_, prescribedPosition_, prescribedVelocity_, rotate(), setAngularVelocity(), and setVelocity().
Referenced by DPMBase::integrateBeforeForceComputation(), BaseParticle::integrateBeforeForceComputation(), and ClumpParticle::integrateBeforeForceComputation().
|
pure virtual |
used to distinguish particles which belong to the flow and fixed particles/walls
Implemented in BaseWall, and BaseParticle.
|
virtual |
Moves this BaseInteractable by adding an amount to the position.
Moves (displaces) the interacable a given distance. Note, this just updates the position by the move.
[in] | move | Reference to Vec3D which is the distance to move the interactable. |
Reimplemented in TriangulatedWall, TriangleWall, TriangleMeshWall, and MeshTriangle.
References position_.
Referenced by SphericalIndenter::actionsAfterTimeStep(), ChuteWithPeriodicInflow::AddContinuingBottom(), ConstantMassFlowMaserBoundary::addParticleToMaser(), ConstantMassFlowMaserBoundary::checkBoundaryAfterParticleMoved(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContinuingBottom::ChuteWithPeriodicInflowAndContinuingBottom(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ChuteWithPeriodicInflowAndVariableBottom::ChuteWithPeriodicInflowAndVariableBottom(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), ConstantMassFlowMaserBoundary::createPeriodicParticle(), ChuteWithPeriodicInflow::ExtendInWidth(), integrateBeforeForceComputation(), BaseParticle::integrateBeforeForceComputation(), ClumpParticle::integrateBeforeForceComputation(), MeshTriangle::move(), TriangleMeshWall::move(), TriangleWall::move(), TriangulatedWall::move(), HopperInsertionBoundary::placeParticle(), ConstantMassFlowMaserBoundary::removeParticleFromMaser(), ScalingTestRun::setupInitialConditions(), TimeDependentPeriodicBoundary::shiftAndBoostParticle(), LeesEdwardsBoundary::shiftHorizontalPosition(), ShearBoxBoundary::shiftHorizontalPosition(), ConstantMassFlowMaserBoundary::shiftPosition(), SubcriticalMaserBoundary::shiftPosition(), PeriodicBoundary::shiftPosition(), LeesEdwardsBoundary::shiftVerticalPosition(), and ShearBoxBoundary::shiftVerticalPosition().
|
overridevirtual |
Reads a BaseInteractable from an input stream.
BaseInteacatable read functions. Reads in all the information about an interacatable. Note, this can be from any istream but would normally be a file See also BaseInteractable::write
[in] | is | std::istream to which the information is read from. |
Implements BaseObject.
Reimplemented in WearableTriangulatedWall, WearableTriangleMeshWall, WearableNurbsWall, VChute, TriangulatedWall, TriangleWall, TriangleMeshWall, SphericalWall, SineWall, Screw, RestrictedWall, ParabolaChute, NurbsWall, MeshTriangle, LevelSetWall, IntersectionOfWalls, InfiniteWallWithHole, InfiniteWall, HorizontalScrew, CylindricalWall, Combtooth, Coil, BasicUnionOfWalls, BasicIntersectionOfWalls, BaseWall, ArcWall, SuperQuadricParticle, ClumpParticle, BaseParticle, SimpleDrumSuperquadrics, ScrewsymmetricIntersectionOfWalls, HorizontalBaseScrew, and AxisymmetricIntersectionOfWalls.
References angularVelocity_, force_, indSpecies_, orientation_, position_, BaseObject::read(), torque_, and velocity_.
Referenced by BaseParticle::read(), and BaseWall::read().
bool BaseInteractable::removeInteraction | ( | BaseInteraction * | I | ) |
Removes an interaction from this BaseInteractable.
Removes a given interaction form the list of interactions belonging to the current interacable. This functions returns true to the interaction was found and returns false if the given interaction did not exist and the interaction was not removed. Note that this cannot be done with a range-based for, since we need the iterator to erase the interaction.
[in] | I | BaseInteraction pointer which is the interaction to be removed. |
References interactions_, logger, and WARN.
Referenced by BaseInteraction::importI(), BaseInteraction::importP(), BaseInteraction::setI(), BaseInteraction::setP(), and BaseInteraction::~BaseInteraction().
|
virtual |
Reimplemented in TriangleMeshWall.
References force_, forceOMP_, Vec3D::setZero(), torque_, and torqueOMP_.
Referenced by SphericalIndenter::actionsBeforeTimeStep(), DPMBase::computeAllForces(), Mercury3Dclump::computeAllForces(), and TriangleMeshWall::resetForceTorque().
|
virtual |
Rotates this BaseInteractable.
Rotates the interacable a given solid angle. Note, this just updates the orientation by the angle.
This function has been declared virtual, so it can be overridden for IntersectionOfWalls.
[in] | angularVelocityDt | Reference to Vec3D which is the solid angle through which the interactable is rotated. |
Reimplemented in Screw, TriangleWall, TriangleMeshWall, and MeshTriangle.
References orientation_, and Quaternion::updateAngularDisplacement().
Referenced by VerticalMixerStraightBlades::addBlades(), VerticalMixerAngledBlades::addBlades(), VerticalMixerAngledBlades::addPrettyBlades(), integrateBeforeForceComputation(), BaseParticle::integrateBeforeForceComputation(), ClumpParticle::integrateBeforeForceComputation(), MeshTriangle::rotate(), TriangleMeshWall::rotate(), TriangleWall::rotate(), and Screw::rotate().
void BaseInteractable::setAngularVelocity | ( | const Vec3D & | angularVelocity | ) |
set the angular velocity of the BaseInteractble.
See also BaseInteractable::getAngularVelocity
[in] | angularVelocity | Vec3D which is the angularVelocity of the interactable. |
References angularVelocity_.
Referenced by DrumRot::actionsBeforeTimeStep(), RotatingDrum::actionsBeforeTimeStep(), DrumRot::actionsOnRestart(), NautaMixer::addScrew(), ClumpParticle::angularAccelerateClumpIterative(), applyPrescribedAngularVelocity(), MPISphericalParticle::copyDataFromMPIParticleToParticle(), DPM::DPM(), BaseParticle::fixParticle(), GranuDrum::GranuDrum(), integrateAfterForceComputation(), integrateBeforeForceComputation(), loadingTest(), main(), normalAndTangentialLoadingTest(), objectivenessTest(), BaseParticle::oldRead(), DPMBase::readNextDataFile(), WallHandler::readTriangleWall(), HorizontalMixer::setScrewWalls(), multiParticleT1::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), Drum::setupInitialConditions(), clumpTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), RotatingDrum::setupInitialConditions(), Tutorial12::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), AngledPeriodicBoundaryUnitTest::setupInitialConditions(), MovingWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), TangentialSpringEnergyConservationUnitTest::setupInitialConditions(), ChuteBottom::setupInitialConditions(), PeriodicBoundaryHandler::updateParticles(), and ClumpParticle::updatePebblesVelPos().
|
inline |
Sets the force on this BaseInteractable.
This sets the force being applied to this interactable. Note, first the code computes all forces in the interactions and then loops over all interactable objects applying the forces from the interactions to the interactables involved in the interaction.
[in] | force | Vec3D which is the force to be applied. |
References force_.
Referenced by SmoothChute::actionsBeforeTimeStep().
|
inlinevirtual |
Sets the index of the Species of this BaseInteractable.
This set the species associated with this interactable. This function should not be used and BaseInteractable::setSpecies should be used instead. See also BaseInteractable::setSpecies
Reimplemented in BaseWall, and BaseParticle.
References indSpecies_.
Referenced by BaseParticle::oldRead(), BaseParticle::setIndSpecies(), and BaseWall::setIndSpecies().
|
inlinevirtual |
Sets the orientation of this BaseInteractable.
Interpretation depends on which interactable is being considered See also BaseInteractable::getOrientation.
[in] | orientation | Reference to Vec3D storing the orientation of the particle. |
Reimplemented in TriangleWall, and TriangleMeshWall.
References orientation_.
Referenced by IntersectionOfWalls::addObject(), applyPrescribedOrientation(), MPISphericalParticle::copyDataFromMPIParticleToParticle(), SuperQuadricParticle::getContactPointPlanB(), objectivenessTest(), BaseParticle::oldRead(), InfiniteWall::oldRead(), DPMBase::readNextDataFile(), TriangleMeshWall::setOrientation(), TriangleWall::setOrientation(), T_protectiveWall::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), protectiveWall::setupInitialConditions(), ChuteBottom::setupInitialConditions(), TriangleWall::setVertices(), MeshTriangle::setVertices(), PeriodicBoundaryHandler::updateParticles(), and ClumpParticle::updatePebblesVelPos().
void BaseInteractable::setOrientationViaEuler | ( | Vec3D | eulerAngle | ) |
Sets the orientation of this BaseInteractable by defining the euler angles.
References orientation_, and Quaternion::setEuler().
Referenced by DPMBase::readNextDataFile().
void BaseInteractable::setOrientationViaNormal | ( | Vec3D | normal | ) |
Sets the orientation of this BaseInteractable by defining the vector that results from the rotation of the (1,0,0) vector.
Sets the orientation of the interactable. interpretation depends on which interactable is being considered See also BaseInteractable::getOrientation.
[in] | orientation | Reference to Vec3D storing the orientation of the particle. |
References orientation_, and Quaternion::setOrientationViaNormal().
Referenced by AxisymmetricIntersectionOfWalls::AxisymmetricIntersectionOfWalls(), HorizontalBaseScrew::HorizontalBaseScrew(), main(), Screw::Screw(), ScrewsymmetricIntersectionOfWalls::ScrewsymmetricIntersectionOfWalls(), AxisymmetricIntersectionOfWalls::setAxis(), HorizontalBaseScrew::setAxis(), ScrewsymmetricIntersectionOfWalls::setAxis(), SimpleDrumSuperquadrics::setAxis(), InfiniteWall::setNormal(), MinimalExampleDrum::setupInitialConditions(), Silo::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), GranularCollapse::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), MovingWalls::setupInitialConditions(), ContactDetectionWithWallTester::setupParticleAndWall(), ContactDetectionTester::setupParticles(), ShapeGradientHessianTester::testEllipsoid(), ContactDetectionTester::testEllipsoidsContact(), ContactDetectionWithWallTester::testEllipsoidsContact(), ContactDetectionTester::testSpheresContact(), and ContactDetectionWithWallTester::testSpheresContact().
|
inlinevirtual |
Sets the position of this BaseInteractable.
Interpretation depends on which interactable is being considered See also BaseInteractable::getPosistion.
[in] | position | Reference to Vec3D storing the position of the particle. |
Reimplemented in TriangleWall, and TriangleMeshWall.
References position_.
Referenced by DPM::actionsAfterSolve(), SmoothChute::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), Chutebelt::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), VerticalMixerAngledBlades::addBlades(), IntersectionOfWalls::addObject(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), BaseWall::addParticlesAtWall(), VerticalMixerAngledBlades::addPrettyBlades(), NautaMixer::addScrew(), applyPrescribedPosition(), AxisymmetricIntersectionOfWalls::AxisymmetricIntersectionOfWalls(), DPMBase::checkParticleForInteractionLocalPeriodic(), BaseCluster::computeInternalStructure(), MercuryLogo::constructTextAsParticles(), MPISphericalParticle::copyDataFromMPIParticleToParticle(), Funnel::create_funnel(), LawinenBox::create_inflow_particle(), ChutePeriodic::create_inflow_particle(), ChuteWithContraction::create_inflow_particle(), Funnel::create_inflow_particle(), AngleOfRepose::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), SegregationWithHopper::create_inflow_particle(), Slide::create_rough_wall(), Chute::createBottom(), Chute::createFlowParticle(), ChuteWithWedge::createFlowParticle(), Membrane::createVertexParticles(), DPM::DPM(), ChuteWithWedge::extendBottom(), PeriodicBoundaryHandler::findTargetProcessor(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), SuperQuadricParticle::getContactPointPlanB(), BasicIntersectionOfWalls::getDistanceAndNormal(), BasicUnionOfWalls::getDistanceAndNormal(), TriangleMeshWall::getDistanceAndNormal(), TriangleMeshWall::getInteractionWith(), BasicIntersectionOfWalls::getVTK(), BasicUnionOfWalls::getVTK(), HorizontalBaseScrew::HorizontalBaseScrew(), InfiniteWall::InfiniteWall(), InitialConditions< SpeciesType >::InitialConditions(), HorizontalMixer::introduceParticlesAtWall(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), HorizontalMixer::introduceSingleParticle(), LawinenBox::LawinenBox(), load(), loadingTest(), main(), MercuryCGSelfTest::MercuryCGSelfTest(), normalAndTangentialLoadingTest(), objectivenessTest(), BaseParticle::oldRead(), InfiniteWall::oldRead(), ParticleBeam::ParticleBeam(), ParticleInclusion::ParticleInclusion(), BaseCluster::particleInsertionSuccessful(), FixedClusterInsertionBoundary::placeParticle(), ChuteInsertionBoundary::placeParticle(), CubeInsertionBoundary::placeParticle(), HopperInsertionBoundary::placeParticle(), RandomClusterInsertionBoundary::placeParticle(), FileReader::read(), DPMBase::readNextDataFile(), regimeForceUnitTest::regimeForceUnitTest(), ScrewsymmetricIntersectionOfWalls::ScrewsymmetricIntersectionOfWalls(), InfiniteWall::set(), Slide::set_Walls(), AxisymmetricWallSelfTest::setGeometry(), SphericalIndenter::setIndenterHeight(), MarbleRun::setParticlePosition(), TriangleMeshWall::setPosition(), TriangleWall::setPosition(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), T_protectiveWall::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCWalls::setupInitialConditions(), AxisymmetricHopper::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), MembraneDemo::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), Chain::setupInitialConditions(), ForceLawsMPI2Test::setupInitialConditions(), MaserRepeatedOutInMPI2Test::setupInitialConditions(), PeriodicBounaryEnteringMPIDomainTest::setupInitialConditions(), SubcriticalMaserBoundaryTESTMPI2Test::setupInitialConditions(), TwoByTwoMPIDomainMPI4Test::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), ParameterStudy1DDemo::setupInitialConditions(), ParameterStudy2DDemo::setupInitialConditions(), ParameterStudy3DDemo::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), FiveParticles::setupInitialConditions(), Cstatic2d::setupInitialConditions(), Cstatic3D::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), FreeFallInteractionSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), HertzianBSHPInteractionTwoParticleElasticCollision::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), MembraneSelfTest::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepSelfTest::setupInitialConditions(), TriangulatedStepWallSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), Contact::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), GranularCollapse::setupInitialConditions(), SlidingSpheresUnitTest::setupInitialConditions(), SphericalSuperQuadricCollision::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), ShapesDemo::setupInitialConditions(), VisualisationTest::setupInitialConditions(), MercuryProblem::setupInitialConditions(), protectiveWall::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial1::setupInitialConditions(), Tutorial2::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial5::setupInitialConditions(), Tutorial6::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), Tutorial9::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), AngledPeriodicBoundaryUnitTest::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), FreeFallHertzMindlinUnitTest::setupInitialConditions(), FreeFall::setupInitialConditions(), FullRestartTest::setupInitialConditions(), HertzContactRestitutionUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), InclinedPlane::setupInitialConditions(), MpiMaserChuteTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWalls::setupInitialConditions(), MovingWall::setupInitialConditions(), MovingWallReference::setupInitialConditions(), MovingWallSimpleIntegration::setupInitialConditions(), MovingWallPrescribedVelocity::setupInitialConditions(), MovingWallTangential::setupInitialConditions(), MovingWallTangentialReference::setupInitialConditions(), MovingWallTangentialSimpleIntegration::setupInitialConditions(), MovingWallTangentialPrescribedVelocity::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), TangentialSpringEnergyConservationUnitTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), ChuteBottom::setupInitialConditions(), ScaleCoupledBeam::setupMercury(), CoupledBeam::setupMercury(), CoupledProblem::setupMercury(), ContactDetectionWithWallTester::setupParticleAndWall(), ContactDetectionTester::setupParticles(), TriangleWall::setVertices(), MeshTriangle::setVertices(), SinterPair::SinterPair(), Slide::Slide(), FlowFrontChute::stretch(), ContactDetectionTester::testEllipsoidsContact(), ContactDetectionWithWallTester::testEllipsoidsContact(), ContactDetectionTester::testSpheresContact(), ContactDetectionWithWallTester::testSpheresContact(), PeriodicBoundaryHandler::updateParticles(), ClumpParticle::updatePebblesVelPos(), and viscoElasticUnitTest::viscoElasticUnitTest().
void BaseInteractable::setPrescribedAngularVelocity | ( | const std::function< Vec3D(double)> & | prescribedAngularVelocity | ) |
Allows the angular velocity of the infinite mass interactable to be prescribed.
References prescribedAngularVelocity_.
void BaseInteractable::setPrescribedOrientation | ( | const std::function< Quaternion(double)> & | prescribedOrientation | ) |
Allows the orientation of the infinite mass interactbale to be prescribed.
This is similar to the BaseInteractable::setPrescribedPosition and
works the same way. See BaseInteractable::setPrescibedPosition and BaseInteractable::setPrescribedVelocity for more details how it works. Note, the rate of change of the orientation can also be set using the function BaseInteractable::setPrescribedAngularVelocity.
[in] | prescribedOrientation | std::function which is the lambda function and takes a double the time and returns a Vec 3D which is the orientation of the interactable for that time. |
References prescribedOrientation_.
void BaseInteractable::setPrescribedPosition | ( | const std::function< Vec3D(double)> & | prescribedPosition | ) |
Allows the position of an infinite mass interactable to be prescribed.
This functions is used to give an interactable a prescribed motion, which is defined by a std::function. This is the new moving walls interface. A demo of the use would be: setPrescribedPosition([this] (double time) { return Vec3D(getXMin(),0.0,shaker_amp * std::sin(t * 2.0 * shaker_freq * constants::pi)); } ); This example moves the wall sinusoidally with time.
[in] | prescribedPosition | std::function which is the lambda function and takes a double the time and returns a Vec 3D which is the position of the interactable for that time. See also BaseInteractable::setPrescribedVelocity for more information. |
References prescribedPosition_.
Referenced by main(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), DrivenParticleClass::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), MovingWallPrescribedPosition::setupInitialConditions(), MovingWallPrescribedPositionPrescribedVelocity::setupInitialConditions(), MovingWallTangentialPrescribedPosition::setupInitialConditions(), MovingWallTangentialPrescribedPositionPrescribedVelocity::setupInitialConditions(), and SCoupling< M, O >::updateTriangleWall().
void BaseInteractable::setPrescribedVelocity | ( | const std::function< Vec3D(double)> & | prescribedVelocity | ) |
Allows the velocity of an infinite mass interactable to be prescribed.
In a similar manner to BaseInteractable::setPrescribedPosition this sets the velocity of the BaseInteactable. See also BaseInteractable::setPrescribedPosition Note, it is valid to set both the velocity and the position. No checking if these are consist is done at all. If you only set one of these function the other is automatically calculated using a by numerically differentiating or integrating the functions will is prescribed.
[in] | prescribedVelocity | std::function which is the lambda function and takes a double the time and returns a Vec 3D which is the velocity of the intertable for that time. |
References prescribedVelocity_.
Referenced by ParticleBeam::ParticleBeam(), BaseWall::setForceControl(), MovingWallPrescribedVelocity::setupInitialConditions(), MovingWallPrescribedPositionPrescribedVelocity::setupInitialConditions(), MovingWallTangentialPrescribedVelocity::setupInitialConditions(), MovingWallTangentialPrescribedPositionPrescribedVelocity::setupInitialConditions(), BaseWall::setVelocityControl(), and SCoupling< M, O >::updateTriangleWall().
void BaseInteractable::setSpecies | ( | const ParticleSpecies * | species | ) |
Sets the species of this BaseInteractable.
This function sets the species associated with this interactable object. Again this must be a ParticleSpecies. Note, it also automatically sets the index on the indSpecies_ by working up the correct index. However, index should be carefully used
[in] | species | ParticleSpcies pointer which is species holding the physical properties. |
References BaseSpecies::getHandler(), BaseObject::getIndex(), BaseHandler< T >::getObject(), indSpecies_, logger, and species_.
Referenced by BaseParticle::setSpecies(), and BaseWall::setSpecies().
|
inline |
Sets the torque on this BaseInteractable.
This sets the torque being applied to this interactable. Note, first the code computes all force/torques in the interactions and then loops over all interactable objects applying the torques from the interactions to the interactables involved in the interaction.
[in] | torque | Vec3D which is the force to be applied. |
References torque_.
Referenced by SmoothChute::actionsBeforeTimeStep().
void BaseInteractable::setVelocity | ( | const Vec3D & | velocity | ) |
set the velocity of the BaseInteractable.
See also BaseInteractable::getVelocity
[in] | velocity | Vec3D which is the velocity of the interactable. |
References velocity_.
Referenced by ClosedCSCRestart::actionsAfterTimeStep(), ClosedCSCRun::actionsAfterTimeStep(), ClosedCSCWalls::actionsAfterTimeStep(), SmoothChute::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), Chutebelt::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), applyPrescribedVelocity(), HeaterBoundary::checkBoundaryAfterParticleMoved(), ClosedCSCRun::ClosedCSCRun(), BaseCluster::computeInternalStructure(), MPISphericalParticle::copyDataFromMPIParticleToParticle(), LawinenBox::create_inflow_particle(), ChutePeriodic::create_inflow_particle(), ChuteWithContraction::create_inflow_particle(), Funnel::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), Chute::createBottom(), Chute::createFlowParticle(), ChuteWithWedge::createFlowParticle(), BaseParticle::fixParticle(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), integrateAfterForceComputation(), integrateBeforeForceComputation(), HorizontalMixer::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), HorizontalMixer::introduceSingleParticle(), load(), loadingTest(), main(), normalAndTangentialLoadingTest(), objectivenessTest(), BaseParticle::oldRead(), InfiniteWall::oldRead(), InfiniteWallWithHole::oldRead(), BaseCluster::particleInsertionSuccessful(), FixedClusterInsertionBoundary::placeParticle(), ChuteInsertionBoundary::placeParticle(), CubeInsertionBoundary::placeParticle(), HopperInsertionBoundary::placeParticle(), RandomClusterInsertionBoundary::placeParticle(), FileReader::read(), DPMBase::readNextDataFile(), WallHandler::readTriangleWall(), ClosedCSCWalls::saveWalls(), Slide::set_Walls(), SphericalIndenter::setIndenterVelocity(), ExtremeOverlapUnitTest::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), ForceLawsMPI2Test::setupInitialConditions(), MaserRepeatedOutInMPI2Test::setupInitialConditions(), PeriodicBounaryEnteringMPIDomainTest::setupInitialConditions(), SubcriticalMaserBoundaryTESTMPI2Test::setupInitialConditions(), TwoByTwoMPIDomainMPI4Test::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), ParameterStudy1DDemo::setupInitialConditions(), ParameterStudy2DDemo::setupInitialConditions(), ParameterStudy3DDemo::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), FiveParticles::setupInitialConditions(), Cstatic2d::setupInitialConditions(), Cstatic3D::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), DPM::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), FreeFallInteractionSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), HertzianBSHPInteractionTwoParticleElasticCollision::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepSelfTest::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), Contact::setupInitialConditions(), Wall::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), GranularCollapse::setupInitialConditions(), SlidingSpheresUnitTest::setupInitialConditions(), SphericalSuperQuadricCollision::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), VisualisationTest::setupInitialConditions(), MercuryProblem::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial1::setupInitialConditions(), Tutorial2::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial5::setupInitialConditions(), Tutorial6::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), Tutorial9::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), FreeFallHertzMindlinUnitTest::setupInitialConditions(), HertzContactRestitutionUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), InclinedPlane::setupInitialConditions(), MpiMaserChuteTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_MovingReferenceFrame::setupInitialConditions(), MovingWall::setupInitialConditions(), MovingWallReference::setupInitialConditions(), MovingWallSimpleIntegration::setupInitialConditions(), MovingWallTangential::setupInitialConditions(), MovingWallTangentialReference::setupInitialConditions(), MovingWallTangentialSimpleIntegration::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), TangentialSpringEnergyConservationUnitTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), ChuteBottom::setupInitialConditions(), MembraneDemo::setUpMembrane(), MembraneSelfTest::setUpMembrane(), ScaleCoupledBeam::setupMercury(), CoupledBeam::setupMercury(), ContactDetectionWithWallTester::setupParticleAndWall(), ContactDetectionTester::setupParticles(), Slide::Slide(), ContactDetectionTester::testSpheresContact(), PeriodicBoundaryHandler::updateParticles(), ClumpParticle::updatePebblesVelPos(), and viscoElasticUnitTest::viscoElasticUnitTest().
void BaseInteractable::sumForceTorqueOMP | ( | ) |
References force_, forceOMP_, torque_, and torqueOMP_.
Referenced by SphericalIndenter::actionsAfterTimeStep(), and DPMBase::computeAllForces().
|
overridevirtual |
Write a BaseInteractable to an output stream.
[in] | os | The output stream to which the BaseInteractable is written. |
BaseInteractable write function. Writes out all the information required to recreate this interactable. To write this interactable to the screen call write(std::cout). See also BaseInteractable::read
[in] | os | std::ostream to which the information is written. Note, is any ostream is can be file or screen. |
Implements BaseObject.
Reimplemented in WearableTriangulatedWall, WearableTriangleMeshWall, WearableNurbsWall, VChute, TriangulatedWall, TriangleWall, TriangleMeshWall, SphericalWall, SineWall, Screw, RestrictedWall, ParabolaChute, NurbsWall, MeshTriangle, IntersectionOfWalls, InfiniteWallWithHole, HorizontalScrew, CylindricalWall, Combtooth, Coil, BasicUnionOfWalls, BasicIntersectionOfWalls, BaseWall, ArcWall, SuperQuadricParticle, ClumpParticle, BaseParticle, SimpleDrumSuperquadrics, ScrewsymmetricIntersectionOfWalls, HorizontalBaseScrew, and AxisymmetricIntersectionOfWalls.
References angularVelocity_, force_, indSpecies_, orientation_, position_, torque_, velocity_, and BaseObject::write().
Referenced by BaseParticle::write(), and BaseWall::write().
|
private |
Store the angular velocity of the interactable.
Referenced by addAngularVelocity(), BaseInteractable(), getAngularVelocity(), read(), setAngularVelocity(), and write().
|
private |
Stores the force applied to the interactable.
Referenced by addForce(), BaseInteractable(), getForce(), read(), resetForceTorque(), setForce(), sumForceTorqueOMP(), and write().
|
private |
Referenced by addForce(), resetForceTorque(), and sumForceTorqueOMP().
|
private |
Stores the index on the species associated with this interactable.
Referenced by BaseInteractable(), getIndSpecies(), read(), setIndSpecies(), setSpecies(), and write().
|
private |
List of interactions this interactable is involved with.
Referenced by addInteraction(), BaseInteractable(), copyInteractionsForPeriodicParticles(), getInteractions(), removeInteraction(), and ~BaseInteractable().
|
private |
Stores the orientation of the interactable. Exactly what is stored depends on the type of interatable
Referenced by BaseInteractable(), getOrientation(), read(), rotate(), setOrientation(), setOrientationViaEuler(), setOrientationViaNormal(), and write().
|
private |
Stores the position of the interactable. Exactly what is stored depends on the type of interactable.
Referenced by BaseInteractable(), getPosition(), move(), read(), setPosition(), and write().
User defined functions which if set describes the angular velocity of the interactable.
Referenced by applyPrescribedAngularVelocity(), BaseInteractable(), integrateAfterForceComputation(), integrateBeforeForceComputation(), and setPrescribedAngularVelocity().
|
private |
User defined function which if set describes the orientation of the interactable
Referenced by applyPrescribedOrientation(), BaseInteractable(), integrateAfterForceComputation(), integrateBeforeForceComputation(), and setPrescribedOrientation().
User defined function which if set describes the position of the interactable
Referenced by applyPrescribedPosition(), BaseInteractable(), integrateAfterForceComputation(), integrateBeforeForceComputation(), and setPrescribedPosition().
User defined function which if set describes the velocity of the interactable.
Referenced by applyPrescribedVelocity(), BaseInteractable(), integrateAfterForceComputation(), integrateBeforeForceComputation(), and setPrescribedVelocity().
|
private |
Point to the ParticlesSpecies which stores density and other material properties of the interactable.
Referenced by BaseInteractable(), getSpecies(), and setSpecies().
|
private |
Stores the torque applied to the interactable.
Referenced by addTorque(), BaseInteractable(), getTorque(), read(), resetForceTorque(), setTorque(), sumForceTorqueOMP(), and write().
|
private |
See BaseInteractable::forceOMP_.
Referenced by addTorque(), resetForceTorque(), and sumForceTorqueOMP().
|
private |
Stores the velocity of this interactable.
Referenced by addVelocity(), BaseInteractable(), getVelocity(), read(), setVelocity(), and write().