Go to the documentation of this file.
18 #ifndef viskores_Particle_h
19 #define viskores_Particle_h
95 s <<
"[ok= " << status.
CheckOk();
285 return viskores::RSqrt(1.0 + fMom2 * m2_c2_reci);
328 return this->
Position + translation;
382 viskoresdiy::save(bb, p.
GetID());
385 viskoresdiy::save(bb, p.
GetTime());
419 viskoresdiy::save(bb, e.
ID);
421 viskoresdiy::save(bb, e.
Status);
422 viskoresdiy::save(bb, e.
Time);
423 viskoresdiy::save(bb, e.
Mass);
424 viskoresdiy::save(bb, e.
Charge);
444 #endif // viskores_Particle_h
Particle()
Definition: Particle.h:109
static void save(BinaryBuffer &bb, const viskores::ChargedParticle &e)
Definition: Particle.h:416
void SetOk()
Definition: Particle.h:40
static constexpr viskores::Id IN_GHOST_CELL_BIT
Definition: Particle.h:88
T load(const U &u, viskores::Id v)
Definition: FetchTagArrayDirectIn.h:44
viskores::ChargedParticle & operator=(const viskores::ChargedParticle &)=default
static void load(BinaryBuffer &bb, viskores::ChargedParticle &e)
Definition: Particle.h:429
const viskores::Vec3f & GetPosition() const
Definition: Particle.h:143
static size_t Sizeof()
Definition: Particle.h:195
void SetTemporalBounds()
Definition: Particle.h:57
Particle(const viskores::Particle &p)
Definition: Particle.h:126
viskores::Vec3f Velocity(const viskores::VecVariable< viskores::Vec3f, 2 > &vectors, const viskores::FloatDefault &length) const
Definition: Particle.h:291
~Particle() noexcept
Definition: Particle.h:137
A short variable-length array with maximum length.
Definition: VecVariable.h:38
static constexpr viskores::Id SPATIAL_BOUNDS_BIT
Definition: Particle.h:85
static size_t Sizeof()
Definition: Particle.h:355
#define viskoresNotUsed(parameter_name)
Simple macro to identify a parameter as unused.
Definition: ExportMacros.h:136
ChargedParticle(const viskores::Vec3f &position, const viskores::Id &id, const viskores::Float64 &mass, const viskores::Float64 &charge, const viskores::Float64 &weighting, const viskores::Vec3f &momentum, const viskores::Id &numSteps=0, const viskores::ParticleStatus &status=viskores::ParticleStatus(), const viskores::FloatDefault &time=0)
Definition: Particle.h:214
void SetTime(viskores::FloatDefault time)
Definition: Particle.h:160
viskores::Vec3f Position
Definition: Particle.h:188
void SetPosition(const viskores::Vec3f &position)
Definition: Particle.h:259
viskores::ParticleStatus GetStatus() const
Definition: Particle.h:270
static void save(BinaryBuffer &bb, const viskores::Particle &p)
Definition: Particle.h:379
static constexpr viskores::Id ZERO_VELOCITY
Definition: Particle.h:89
bool CheckSpatialBounds() const
Definition: Particle.h:52
void ClearTerminate()
Definition: Particle.h:47
Particle(const viskores::Vec3f &p, const viskores::Id &id, const viskores::Id &numSteps=0, const viskores::ParticleStatus &status=viskores::ParticleStatus(), const viskores::FloatDefault &time=0)
Definition: Particle.h:112
~ChargedParticle() noexcept
Definition: Particle.h:252
#define VISKORES_EXEC_CONT
Definition: ExportMacros.h:60
void SetPosition(const viskores::Vec3f &position)
Definition: Particle.h:144
static constexpr viskores::Id TOOK_ANY_STEPS_BIT
Definition: Particle.h:87
viskores::Float32 Sqrt(viskores::Float32 x)
Definition: Math.h:951
void SetSpatialBounds()
Definition: Particle.h:50
Definition: Particle.h:373
void SetTerminate()
Definition: Particle.h:46
ChargedParticle(const viskores::ChargedParticle &other)
Definition: Particle.h:236
ChargedParticle()
Definition: Particle.h:211
viskores::IdComponent GetNumberOfComponents() const
Definition: VecVariable.h:61
viskores::Vec< typename detail::FloatingPointReturnType< T >::Type, 3 > Cross(const viskores::Vec< T, 3 > &x, const viskores::Vec< T, 3 > &y)
Find the cross product of two vectors.
Definition: VectorAnalysis.h:188
void SetID(viskores::Id id)
Definition: Particle.h:265
bool test(viskores::Id bitIndex) const
Definition: Bitset.h:61
viskores::Id NumSteps
Definition: Particle.h:190
bool CheckOk() const
Definition: Particle.h:41
bool CheckTerminate() const
Definition: Particle.h:48
void SetStatus(viskores::ParticleStatus status)
Definition: Particle.h:157
friend std::ostream & operator<<(std::ostream &out, const viskores::ChargedParticle &p)
Definition: Particle.h:331
viskores::FloatDefault GetTime() const
Definition: Particle.h:274
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
viskores::ParticleStatus & GetStatus()
Definition: Particle.h:156
viskores::Id GetID() const
Definition: Particle.h:264
#define VISKORES_CONT
Definition: ExportMacros.h:65
std::ostream & operator<<(std::ostream &stream, const viskores::Bounds &bounds)
Helper function for printing bounds during testing.
Definition: Bounds.h:268
Groups connected points that have the same field value.
Definition: Atomic.h:27
static void load(BinaryBuffer &bb, viskores::Particle &p)
Definition: Particle.h:388
viskores::Vec3f Position
Definition: Particle.h:340
Definition: Particle.h:105
static constexpr viskores::Id TEMPORAL_BOUNDS_BIT
Definition: Particle.h:86
viskores::Float64 Gamma(const viskores::Vec3f &momentum, bool reciprocal=false) const
Definition: Particle.h:278
viskores::Vec3f GetEvaluationPosition(const viskores::FloatDefault &deltaT) const
Definition: Particle.h:173
void SetTookAnySteps()
Definition: Particle.h:64
viskores::Id GetNumberOfSteps() const
Definition: Particle.h:152
void SetZeroVelocity()
Definition: Particle.h:72
void ClearInGhostCell()
Definition: Particle.h:69
void set(viskores::Id bitIndex)
Definition: Bitset.h:38
viskores::Id GetID() const
Definition: Particle.h:149
Definition: Particle.h:31
ParticleStatus()
Definition: Particle.h:34
viskores::Vec3f Momentum
Definition: Particle.h:348
void reset(viskores::Id bitIndex)
Definition: Bitset.h:51
viskores::Float64 Charge
Definition: Particle.h:346
void SetTime(viskores::FloatDefault time)
Definition: Particle.h:275
A bitmap to serve different needs.
Definition: Bitset.h:36
#define VISKORES_ASSERT(condition)
Definition: Assert.h:51
viskores::Id ID
Definition: Particle.h:189
void ClearZeroVelocity()
Definition: Particle.h:73
viskores::Float64 Mass
Definition: Particle.h:345
viskores::ParticleStatus Status
Definition: Particle.h:191
void ClearSpatialBounds()
Definition: Particle.h:51
void SetNumberOfSteps(viskores::Id numSteps)
Definition: Particle.h:153
viskores::ParticleStatus GetStatus() const
Definition: Particle.h:155
viskores::FloatDefault Time
Definition: Particle.h:344
const viskores::Vec3f & GetPosition() const
Definition: Particle.h:258
void SetStatus(viskores::ParticleStatus status)
Definition: Particle.h:272
viskores::Id NumSteps
Definition: Particle.h:342
viskores::Float64 Weighting
Definition: Particle.h:347
Definition: Particle.h:207
uint8_t UInt8
Base type to use for 8-bit unsigned integer numbers.
Definition: Types.h:177
void SetInGhostCell()
Definition: Particle.h:68
viskores::FloatDefault Time
Definition: Particle.h:192
static constexpr viskores::Id SUCCESS_BIT
Definition: Particle.h:83
viskores::Vec3f GetEvaluationPosition(const viskores::FloatDefault &deltaT) const
Definition: Particle.h:323
void ClearTemporalBounds()
Definition: Particle.h:58
void SetID(viskores::Id id)
Definition: Particle.h:150
bool CheckInGhostCell() const
Definition: Particle.h:70
viskores::Float32 FloatDefault
The floating point type to use when no other precision is specified.
Definition: Types.h:244
friend std::ostream & operator<<(std::ostream &out, const viskores::Particle &p)
Definition: Particle.h:179
bool CheckZeroVelocity() const
Definition: Particle.h:74
detail::FloatingPointReturnType< T >::Type Magnitude(const T &x)
Returns the magnitude of a vector.
Definition: VectorAnalysis.h:108
viskores::ParticleStatus Status
Definition: Particle.h:343
void SetNumberOfSteps(viskores::Id numSteps)
Definition: Particle.h:268
detail::FloatingPointReturnType< T >::Type MagnitudeSquared(const T &x)
Returns the square of the magnitude of a vector.
Definition: VectorAnalysis.h:72
constexpr static viskores::FloatDefault SPEED_OF_LIGHT
Definition: Particle.h:349
viskores::Particle & operator=(const viskores::Particle &)=default
bool CanContinue() const
Definition: Particle.h:76
viskores::FloatDefault GetTime() const
Definition: Particle.h:159
bool CheckTemporalBounds() const
Definition: Particle.h:59
double Float64
Base type to use for 64-bit floating-point numbers.
Definition: Types.h:169
viskores::Vec3f Velocity(const viskores::VecVariable< viskores::Vec3f, 2 > &vectors, const viskores::FloatDefault &) const
Definition: Particle.h:163
static constexpr viskores::Id TERMINATE_BIT
Definition: Particle.h:84
viskores::ParticleStatus & GetStatus()
Definition: Particle.h:271
viskores::Id GetNumberOfSteps() const
Definition: Particle.h:267
bool CheckFail() const
Definition: Particle.h:44
viskores::Id ID
Definition: Particle.h:341
bool CheckTookAnySteps() const
Definition: Particle.h:66
void SetFail()
Definition: Particle.h:43
viskores::Vec< viskores::FloatDefault, 3 > Vec3f
Vec3f corresponds to a 3-dimensional vector of floating point values.
Definition: Types.h:1064
void ClearTookAnySteps()
Definition: Particle.h:65