Last updated: 2023-03-16.
tf_quant_finance.math.pde.boundary_conditions.dirichlet#
Wrapper for Dirichlet boundary conditions to be used in PDE solvers.
tf_quant_finance.math.pde.boundary_conditions.dirichlet(
boundary_values_fn
)
Example: the boundary value is 1 on both boundaries.
def lower_boundary_fn(t, location_grid):
return 1
def upper_boundary_fn(t, location_grid):
return 0
solver = fd_solvers.solve_forward(...,
boundary_conditions = [(dirichlet(lower_boundary_fn),
dirichlet(upper_boundary_fn))],
...)
Also can be used as a decorator:
@dirichlet
def lower_boundary_fn(t, location_grid):
return 1
@dirichlet
def upper_boundary_fn(t, location_grid):
return 0
solver = fd_solvers.solve_forward(...,
boundary_conditions = [(lower_boundary_fn, upper_boundary_fn)],
...)
Args:#
boundary_values_fn: Callable returning the boundary values at given time. Accepts two arguments - the moment of time and the current coordinate grid. Returns a number, a zero-rank Tensor or a Tensor of shapebatch_shape + grid_shape', wheregrid_shape'is grid_shape excluding the axis orthogonal to the boundary. For example, in 3D the value grid shape isbatch_shape + (z_size, y_size, x_size), and the boundary tensors on the planesy = y_minandy = y_maxshould be either scalars or have shapebatch_shape + (z_size, x_size). In 1D case this reduces to justbatch_shape.
Returns:#
Callable suitable for PDE solvers.