Build a block in a Jacobian matrix, with the form where is a scalar field and is the differentiation operator in the -direction. Additionally, a further differentiation operator may be added to the right hand side of this matrix block. Optional arguments allow for handling of boundary conditions. See the end of the documentation of the jacobian_block type for a description of how boundary conditions are treated.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scalar_field), | intent(in) | :: | source_field | A scalar field () making up this block of the Jacobian |
||
integer, | intent(in) | :: | direction | The direction in which field derivatives are taken. |
||
integer, | intent(in), | optional | :: | extra_derivative | If present, specifies the direction of a differentiation operator to be added to the right hand side of this matrix block. |
|
integer, | intent(in), | optional | dimension(:) | :: | boundary_locs | The locations in the raw representation of |
integer, | intent(in), | optional | dimension(:) | :: | boundary_types | Integers specifying the type of boundary condition. The type
of boundary condition corresponding to a given integer is
specified in boundary_types_mod. Only Dirichlet and
Neumann conditions are supported. Defaults to Dirichlet. The
order in which they are stored must match that of
|
procedure(jacobian_block_bounds), | optional | :: | boundary_operations | A function specifying the values to place at the boundaries
of the result when using the Jacobian block for
multiplication. By default, all boundaries are set to 0. The
order in which the resulting values are stored should match
that of |
||
real(kind=r8), | intent(in), | optional | :: | coef | An optional coefficient by which the the term in the operator will be multipled. Default value is 1. |
A new Jacobian block