Diffusion Physics syntax

The [Diffusion] block is a sub-block of the [Physics] block. DiffusionPhysicsBase-derived classes, such as DiffusionCG can be created, nested under the relevant discretization sub-block.

For example, a DiffusionCG can be created inside the Physics/Diffusion/ContinuousGalerkin block.

[Physics<<<{"href": "../index.html"}>>>]
  [Diffusion<<<{"href": "index.html"}>>>]
    [ContinuousGalerkin<<<{"href": "ContinuousGalerkin/index.html"}>>>]
      [diff]
        source_functor<<<{"description": "Source term in the diffusion problem. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number."}>>> = 2
        diffusivity_matprop<<<{"description": "Material property defining the diffusion coefficient"}>>> = '1'

        # Test all the ways of setting the boundary conditions
        neumann_boundaries<<<{"description": "Boundaries on which to apply a diffusive flux"}>>> = 'left_to_0 right_to_0 top_to_0 bottom_to_0'
        boundary_fluxes<<<{"description": "Functors to compute the diffusive flux on each Neumann boundary'"}>>> = '1 flux_pp flux_function flux_variable'
        dirichlet_boundaries<<<{"description": "Boundaries on which to apply a fixed value"}>>> = 'left_to_1 right_to_1 top_to_1 bottom_to_1'
        boundary_values<<<{"description": "Functors to compute the diffusive flux on each Dirichlet boundary'"}>>> = '2 value_pp value_function value_variable'
      []
    []
  []
[]
(moose/test/tests/physics/diffusion_cg.i)