def fail(self):
if self.failed is True:<EOL><INDENT>raise AttributeError("<STR_LIT>".format(self))<EOL><DEDENT>else:<EOL><INDENT>self.failed = True<EOL>self.time_of_death = timenow()<EOL>self.network.calculate_full()<EOL>for v in self.vectors():<EOL><INDENT>v.fail()<EOL><DEDENT>for i in self.infos():<EOL><INDENT>i.fail()<EOL><DEDENT>for t in self.transmissions(direction="<STR_LIT:all>"):<EOL><INDENT>t.fail()<EOL><DEDENT>for t in self.transformations():<EOL><INDENT>t.fail()<EOL><DEDENT><DEDENT>
Fail a node, setting its status to "failed".

Also fails all vectors that connect to or from the node.
You cannot fail a node that has already failed, but you
can fail a dead node.

Set node.failed to True and :attr:`~dallinger.models.Node.time_of_death`
to now. Instruct all not-failed vectors connected to this node, infos
made by this node, transmissions to or from this node and
transformations made by this node to fail.