|
SpECTRE
v2025.08.19
|
This trigger returns true when the scalar charge is about to cross one of the specified areal radii. More...
#include <OrbitRadius.hpp>
Classes | |
| struct | Radii |
Public Types | |
| using | options = tmpl::list< Radii > |
| using | argument_tags = tmpl::list< CurvedScalarWave::Worldtube::Tags::ParticlePositionVelocity< 3 >, Tags::TimeStep > |
Public Member Functions | |
| OrbitRadius (const std::vector< double > &radii) | |
| bool | operator() (const std::array< tnsr::I< double, 3 >, 2 > &position_and_velocity, const TimeDelta &time_step) const |
| void | pup (PUP::er &p) override |
Public Member Functions inherited from Trigger | |
| WRAPPED_PUPable_abstract (Trigger) | |
| template<typename DbTags > | |
| bool | is_triggered (const db::DataBox< DbTags > &box) const |
Static Public Attributes | |
| static constexpr Options::String | help |
This trigger returns true when the scalar charge is about to cross one of the specified areal radii.
As the domain is adjusted to track the position of the scalar charge, the time step needs to be dynamically adjusted accordingly. This trigger can be used to set the time step according to the radial position of the scalar charge which gives a good approximation of when the time step should be adjusted. The trigger only approximates whether the particle might cross during the next time step and may therefore fire twice.
|
staticconstexpr |