#include <ParticleFate.h>
Inheritance diagram for ParticleFate:


Particles which are large and have low energy birth new particles and particles which are overcroweded are killed.
Definition at line 22 of file ParticleFate.h.
Public Member Functions | |
| MAKE_PARTICLESTUFF_NAME () | |
| int | qlen () |
| Returns length of particle stuff parameters. | |
| void | getq (double *q) |
| Get the parameters. | |
| void | setq (double *q) |
| Set particle stuff parameters. | |
| void | qname (char **qn) |
| Get the names of the parameters. | |
| virtual char * | tip () |
| Returns a tool-tip for the ParticleStuff. | |
| virtual char * | qtip (int i) |
| Returns a tool-tip for the parameter i. | |
| virtual void | attachAttributes () |
| Attach all the attributes needed by the behavior. | |
| ParticleFate (Particles *ps=NULL, ParticleBoundingBox *b=NULL, std::string name=std::string("ParticleFate")) | |
| Creates a ParticleFate object. | |
| double | setSurfaceDiameter (double d) |
| Allows for an awareness of surface diameter. | |
| void | setDesiredRadius (double &r) |
| Allow the user to specify the desired radius. | |
| void | setBounds (ParticleBoundingBox *bounds) |
| Allow the user to specify a bounding volume. | |
| void | cleanup () |
| We determine particle fate during the cleanup step. | |
Public Attributes | |
| AdaptiveRepulsionData * | rep_data |
| Witkin-Heckbert repulsion data. | |
| ParticleOrientation * | p_orient |
| Particle orientations. | |
| ParticleBoundingBox * | p_bounds |
| Bounding box. | |
| double | gamma |
| Equilibrium speed (multiple of repulsion radius). | |
| double | nu |
| Fraction of E_hat, for fissioning. | |
| double | delta |
| Fraction of sigma_hat, for death. | |
| int | population |
|
||||||||||||||||
|
Creates a ParticleFate object. First it looks for the required attributes in the particle system, and then it sets default constants. Definition at line 27 of file ParticleFate.cpp. References delta, gamma, nu, p_bounds, population, WH_DELTA, WH_GAMMA, and WH_NU. |
|
|
Attach all the attributes needed by the behavior. Defaults to a nop. Reimplemented from ParticleBehavior. Definition at line 37 of file ParticleFate.cpp. References ParticleStuff::attachAttribute(), ParticleBehavior::attachAttributes(), AdaptiveRepulsionData::diameter, INITIAL_DIAMETER, p_orient, rep_data, setSurfaceDiameter(), AdaptiveRepulsionData::sigma_hat, and AdaptiveRepulsionData::sigma_max. |
|
|
We determine particle fate during the cleanup step. Determine whether or not particle is to die: 1) Particle velocity is small compared to nominal repulsion radius 2) Repulsion radius is smaller than minimum repulsion radius 3) Biased random test succeds OR 4) Particle falls outside of the bounding box Determine whether or not to split: (Condition 1: particle is near equilibrium) AND (Condition 2a: repulsion radius is huge OR Condition 2b: particle is adequately energized and repulsion radius is higher than nominal) Reimplemented from ParticleBehavior. Definition at line 119 of file ParticleFate.cpp. References Particles::addParticle(), AdaptiveRepulsionData::D, delta, AdaptiveRepulsionData::Ehat, gamma, ParticlePosition::getPosition(), ParticleOrientation::gradMag2, ParticleBoundingBox::keepInBounds(), ParticleOrientation::n, nu, p_bounds, p_orient, population, ParticleBehavior::position, ParticleStuff::ps, psRandom(), AdaptiveRepulsionData::r, randOrtho(), Particles::removeParticle(), rep_data, ParticlePosition::setPosition(), AdaptiveRepulsionData::sigma_hat, AdaptiveRepulsionData::sigma_max, Particles::size(), ParticleVelocity::v, and ParticleBehavior::velocity. |
|
|
Get the parameters. Defaults to no parameters. Reimplemented from ParticleStuff. Definition at line 54 of file ParticleFate.cpp. References delta, gamma, nu, and population. |
|
|
|
|
|
Returns length of particle stuff parameters. Defaults to no parameters. Reimplemented from ParticleStuff. Definition at line 49 of file ParticleFate.cpp. |
|
|
Get the names of the parameters. Defaults to no parameters. Reimplemented from ParticleStuff. Definition at line 70 of file ParticleFate.cpp. |
|
|
Returns a tool-tip for the parameter i.
Reimplemented from ParticleStuff. Definition at line 42 of file ParticleFate.h. |
|
|
Allow the user to specify a bounding volume. Stops new particles from being spawned out of bounds. Definition at line 65 of file ParticleFate.h. References p_bounds. |
|
|
Allow the user to specify the desired radius. This will modify the number and size of particles on the surface.
Definition at line 100 of file ParticleFate.cpp. References AdaptiveRepulsionData::diameter, rep_data, AdaptiveRepulsionData::sigma_hat, and AdaptiveRepulsionData::sigma_max. |
|
|
Set particle stuff parameters. Defaults to no parameters. Reimplemented from ParticleStuff. Definition at line 62 of file ParticleFate.cpp. References delta, gamma, nu, and population. |
|
|
Allows for an awareness of surface diameter.
Definition at line 83 of file ParticleFate.cpp. References AdaptiveRepulsionData::diameter, rep_data, AdaptiveRepulsionData::sigma_hat, and AdaptiveRepulsionData::sigma_max. Referenced by attachAttributes(). |
|
|
Returns a tool-tip for the ParticleStuff.
Reimplemented from ParticleStuff. Definition at line 40 of file ParticleFate.h. |
|
|
Fraction of sigma_hat, for death.
Definition at line 32 of file ParticleFate.h. Referenced by cleanup(), getq(), ParticleFate(), and setq(). |
|
|
Equilibrium speed (multiple of repulsion radius).
Definition at line 30 of file ParticleFate.h. Referenced by cleanup(), getq(), ParticleFate(), and setq(). |
|
|
Fraction of E_hat, for fissioning.
Definition at line 31 of file ParticleFate.h. Referenced by cleanup(), getq(), ParticleFate(), and setq(). |
|
|
Bounding box.
Definition at line 26 of file ParticleFate.h. Referenced by cleanup(), ParticleFate(), and setBounds(). |
|
|
Particle orientations.
Definition at line 25 of file ParticleFate.h. Referenced by attachAttributes(), and cleanup(). |
|
|
Definition at line 33 of file ParticleFate.h. Referenced by cleanup(), getq(), ParticleFate(), and setq(). |
|
|
Witkin-Heckbert repulsion data.
Definition at line 24 of file ParticleFate.h. Referenced by attachAttributes(), cleanup(), setDesiredRadius(), and setSurfaceDiameter(). |
1.3.4