Swarm-NG  1.1
swarm::monitors::stop_on_ejection< log_t > Class Template Reference

Simple monitor that signals and logs when any body (other than body 0) meets all of the following criteria: More...

#include <stop_on_ejection.hpp>

Public Member Functions

GPUAPI bool test_body (const int &b)
 First, we test whether body b is far from the origin (which may be COM or star) and moving farther away. More...
 
GPUAPI stop_on_ejection (const params &p, ensemble::SystemRef &s, log_t &l)
 default constructor for stop_on_ejection
 
GPUAPI bool pass_one (int thread_in_system)
 check bodies other than the central star and set the status of need_full_test
 
GPUAPI int pass_two (int thread_in_system)
 Check the system state and see if need to be deactivated.
 

Detailed Description

template<class log_t>
class swarm::monitors::stop_on_ejection< log_t >

Simple monitor that signals and logs when any body (other than body 0) meets all of the following criteria:

  1. distance from the origin by at least rmax,
  2. is moving away from the origin
  3. is on a nearly parabolic or hyperbolic orbit from origin (neglecting mutual interactions) Note that this stopping criteria is specifically written for planetary systems with barycenter or star at origin.

Definition at line 65 of file stop_on_ejection.hpp.

Member Function Documentation

template<class log_t>
GPUAPI bool swarm::monitors::stop_on_ejection< log_t >::test_body ( const int &  b)
inline

First, we test whether body b is far from the origin (which may be COM or star) and moving farther away.

If both of those are passed, then we check that the orbit is parabolic or hyperbolic.

Definition at line 108 of file stop_on_ejection.hpp.

Referenced by swarm::monitors::stop_on_ejection< L >::pass_one().


The documentation for this class was generated from the following file: