implement source-term operator