problem: !SequentialCoupling
  description: 'Tutorial problem: Transport 1D-2D (convection, dual porosity, sorption, sources).'
  mesh:
    mesh_file: ./input/mesh_with_boundary.msh
    sets:
      - name: 1d_domain
        union:
          - 1d_upper
          - 1d_lower
          - 1d_left_branch

  primary_equation: !Unsteady_MH
    output_specific:
    solver: !Petsc
      a_tol: 1.0e-12
      r_tol: 1.0e-12
    input_fields:
      - r_set: 2d
        conductivity: 1.0e-07
      - r_set: BOUNDARY
        bc_type:  # :dirichlet  # Select either 'robin' or 'neumann' according to the value of 'bc_flux', 'bc_pressure', 'bc_sigma'.
        bc_pressure: !FieldFormula
          value: x+y
    output:
      output_stream:
        file: flow.pvd
        format: !vtk
          variant: ascii
        observe_points:
          - [0, 0.1, 0]
          - {point: [0.55, 0.55, 0], snap_region: 1d_lower}
          - {point: [0.7, 0.8, 0], snap_region: 1d_upper}
      output_fields:
        - {field: pressure_p0, times: [20000, 100000]}
        - pressure_p1
        - {field: velocity_p0, times: [20000, 200000]}
      observe_fields: [pressure_p0, velocity_p0, anisotropy]
    balance: true
  secondary_equation: !TransportOperatorSplitting
    substances:
      - name: age
        molar_mass: 0.018
      # water age
      - name: U235
        molar_mass: 0.235
      # uranium 235
    time:
      end_time: 1000000.0
    balance:
      cumulative: true
    output_stream:
      file: transport.msh
      format: !gmsh {}
      time_step: 100000.0
      observe_points:
        - [0, 0.1, 0]
        - {point: [0.55, 0.55, 0], snap_region: 1d_lower}
        - {point: [0.7, 0.8, 0], snap_region: 1d_upper}
    input_fields:
      - r_set: ALL
        init_conc: 0
        porosity: 0.25
        sources_density:
          - 0.25
          - 0
          # source is in the whole volume (l+s) -> times porosity
      - r_set: BOUNDARY
        bc_conc:
          - 0.0
          - 1.0
    output_fields:
      - conc
      - {field: init_conc, times: [0.0]}
      - {field: porosity, times: [100000, 400000]}
    transport: !Solute_Advection_FV
      output:
        observe_fields: [conc, porosity]
