docstr: Tests solving diffusion equation with an exponent multiplier.
  
  Take the heat equation `v_{t} - v_{xx} - v_{yy} = 0` and substitute
  `v = exp(x + 2y) u`.
  This yields `u_{t} - u_{xx} - u_{yy} - 2u_{x} - 4u_{y} - 5u = 0`. The test
  compares numerical solution of this equation to the exact one, which is the
  diffusion equation solution times `exp(-x-2y)`.
docstr_tok: ["Tests","solving","diffusion","equation","with","an","exponent","multiplier",".","Take","the","heat","equation","`","v_","{","t","}","-","v_","{","xx","}","-","v_","{","yy","}","=","0","`","and","substitute","`","v","=","exp","(","x","+","2y",")","u","`",".","This","yields","`","u_","{","t","}","-","u_","{","xx","}","-","u_","{","yy","}","-","2u_","{","x","}","-","4u_","{","y","}","-","5u","=","0","`",".","The","test","compares","numerical","solution","of","this","equation","to","the","exact","one",",","which","is","the","diffusion","equation","solution","times","`","exp","(","-x-2y",")","`","."]
code: def testReference_WithExponentMultiplier(self):
      """Tests solving diffusion equation with an exponent multiplier.
  
      Take the heat equation `v_{t} - v_{xx} - v_{yy} = 0` and substitute
      `v = exp(x + 2y) u`.
      This yields `u_{t} - u_{xx} - u_{yy} - 2u_{x} - 4u_{y} - 5u = 0`. The test
      compares numerical solution of this equation to the exact one, which is the
      diffusion equation solution times `exp(-x-2y)`.
      """
      grid = grids.uniform_grid(
          minimums=[0, 0],
          maximums=[1, 1],
          sizes=[201, 301],
          dtype=tf.float32,
      )
      ys, xs = grid
  
      final_t = 0.1
      time_step = 0.002
  
      def second_order_coeff_fn(t, coord_grid):
          del t, coord_grid
          return [[-1, None], [None, -1]]
  
      def first_order_coeff_fn(t, coord_grid):
          del t, coord_grid
          return [-4, -2]
  
      def zeroth_order_coeff_fn(t, coord_grid):
          del t, coord_grid
          return -5
  
      exp = _dir_prod(tf.exp(-2 * ys), tf.exp(-xs))
      initial = exp * _reference_2d_pde_initial_cond(xs, ys)
      expected = exp * _reference_2d_pde_solution(xs, ys, final_t)
  
      actual = fd_solvers.solve_forward(
          start_time=0,
          end_time=final_t,
          coord_grid=grid,
          values_grid=initial,
          time_step=time_step,
          second_order_coeff_fn=second_order_coeff_fn,
          first_order_coeff_fn=first_order_coeff_fn,
          zeroth_order_coeff_fn=zeroth_order_coeff_fn,
      )[0]
  
      self.assertAllClose(expected, actual, atol=1e-3, rtol=1e-3)
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  import tf_quant_finance
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 19 for calling the MultidimParabolicEquationStepperTest obj's underlying member method code with example usage: obj.testReference_WithExponentMultiplier() and returns: list, list, unknown