hoomd.trigger¶
Overview
Trigger on all steps after a given step. |
|
Boolean and operation. |
|
Trigger on all steps before a given step. |
|
Negate a trigger. |
|
Trigger on a specific timestep. |
|
Boolean or operation. |
|
Trigger periodically. |
|
Base class trigger. |
|
An object that can serve as a trigger for an operation. |
Details
Triggers determine when hoomd.operation.Operation instances activate.
A Trigger is a boolean valued function of the timestep. The operation will
perform its action when Trigger returns True. A single trigger object
may be assigned to multiple operations.
User defined triggers
You can define your own triggers by subclassing Trigger in Python. When you do
so, override the Trigger.compute method and explicitly call the base class
constructor in __init__.
Example
Define a custom trigger:
class CustomTrigger(hoomd.trigger.Trigger):
def __init__(self):
hoomd.trigger.Trigger.__init__(self)
def compute(self, timestep):
return (timestep**(1 / 2)).is_integer()
- class hoomd.trigger.After(timestep)¶
Bases:
TriggerTrigger on all steps after a given step.
- Parameters
timestep (int) – The step before the trigger will start.
AfterreturnsTruefor all time steps greater thantimestep:return t > timestep
Example:
# trigger every 100 time steps after 1000 time steps. trigger = hoomd.trigger.And([ hoomd.trigger.After(1000), hoomd.trigger.Periodic(100)])
- class hoomd.trigger.And(triggers)¶
Bases:
TriggerBoolean and operation.
AndreturnsTruewhen all the input triggers returnsTrue:return all([f(t) for f in triggers])
Example:
# trigger every 100 time steps after 1000 time steps. trig = hoomd.trigger.And([ hoomd.trigger.After(1000), hoomd.trigger.Periodic(100)])
- triggers¶
List of triggers.
- Type
- class hoomd.trigger.Before(timestep)¶
Bases:
TriggerTrigger on all steps before a given step.
- Parameters
timestep (int) – The step after the trigger ends.
BeforeevaluatesTruefor all time steps less than thetimestep:return t < timestep
Example:
# trigger every 100 time steps at less than first 5000 steps. trigger = hoomd.trigger.And( [hoomd.trigger.Periodic(100), hoomd.trigger.Before(sim.timestep + 5000)])
- class hoomd.trigger.Not(trigger)¶
Bases:
TriggerNegate a trigger.
- Parameters
trigger (hoomd.trigger.Trigger) – The trigger object to negate.
Notreturns the boolean negation oftrigger:return not trigger(t)
Example:
trigger = hoomd.trigger.Not(hoomd.trigger.After(1000))
- trigger¶
The trigger object to negate.
- class hoomd.trigger.On(timestep)¶
Bases:
TriggerTrigger on a specific timestep.
- Parameters
timestep (int) – The timestep to trigger on.
OnreturnsTruefor steps equal totimestep:return t == timestep
Example:
# trigger at 1000 time steps trigger = hoomd.trigger.On(1000)
- class hoomd.trigger.Or(triggers)¶
Bases:
TriggerBoolean or operation.
OrreturnsTruewhen any of the input triggers returnsTrue:return any([f(t) for f in triggers])
Example:
# trigger every 100 time steps before at time step of 1000. # or every 10 time steps after at time step of 1000. trig = hoomd.trigger.Or([hoomd.trigger.And([ hoomd.trigger.Before(1000), hoomd.trigger.Periodic(100)]), [hoomd.trigger.And([ hoomd.trigger.After(1000), hoomd.trigger.Periodic(10)]) ])
- class hoomd.trigger.Periodic(period, phase)¶
Bases:
TriggerTrigger periodically.
PeriodicevaluatesTrueeveryperiodsteps offset by phase:return (t - phase) % period == 0
Example:
trig = hoomd.trigger.Periodic(100)
- class hoomd.trigger.Trigger¶
Base class trigger.
Provides methods common to all triggers.
Attention
Users should instantiate the subclasses, using
Triggerdirectly will result in an error.
- hoomd.trigger.trigger_like¶
An object that can serve as a trigger for an operation.
Any instance of a
Triggersubclass is allowed, as well as an int instance or any object convertible to an int. The integer is converted to aPeriodictrigger viaPeriodic(period=int(a))whereais the passed integer.Note
Attributes that are
Triggerobjects can be set via atrigger_likeobject.