The current implementation of DiscreteGreenOperator2D/DiscreteGreenOperator3D holds an instance of AbstractGreenOperator. Then DiscreteGreenOperator.set_frequency might call self.green.set_frequency(), while self.green.apply_by_freq() might be applied later.
The problem lies in the fact that two instances of DiscreteGreenOperator -- say g1 and g2 -- might share the same AbstractGreenOperator. As a consequence, calling g1.set_frequency() affects the state of g2, which is a bug.
The current implementation of
DiscreteGreenOperator2D
/DiscreteGreenOperator3D
holds an instance ofAbstractGreenOperator
. ThenDiscreteGreenOperator.set_frequency
might callself.green.set_frequency()
, whileself.green.apply_by_freq()
might be applied later. The problem lies in the fact that two instances ofDiscreteGreenOperator
-- sayg1
andg2
-- might share the sameAbstractGreenOperator
. As a consequence, callingg1.set_frequency()
affects the state ofg2
, which is a bug.