<commit_before># MOOSE Newsletter (June 2021)

## Multiple input file support

Users can now supply multiple input file names after the `-i` option. The
supplied inputs are successively merged into one simulation specification, with
later files adding and overwriting parameters. This allows users to factor out
common parameters (e.g. solver options, postprocessors, outputs) from a set of
similar input files

 ```
 ./mooseapp-opt -i common_parameters.i simulation_1.i
```

The output file names will be based off the _last_ input file name specified
(unless the `Outputs/file_base` parameter is specified). When multiple inputs
are specified, MOOSE will inform the user about parameter overrides at the top
of the simulation output.

To assist users with refactoring input files several new functions we added to
the `hit` commandline tool.

- `hit merge -output outfile.i infile1.i infile2.i ...` will produce a single file `outfile.i` that is a merge of the `infile*.i` inputs (which would result in the same MOOSE simulation as the multiple input files).
- `hit diff left.i right.i` or `hit diff -left left1.i left2.i ... -right right1.i right2.i ...` performs a diff on the left and right files (in the second example merging all left and right files respectively first). This diff is not sensitive to order, formatting, or comments in the input files.
- `hit common file1.i file2.i ... > common_parameters.i` will extract all parameters that are common to the specified input files (and have the same values). This can be used as the **first step** in factoring out common settings into a single input file.
- `hit subtract common_parameters.i simulation_1_full.i > simulation_1.i` removes the parameters in `common_parameters.i` from `simulation_1_full.i`, creating `simulation_1.i`. This is the **second step** in factoring out common parameters from a set of input files. The resulting file can be run as `./mooseapp-opt -i common.i simulation_1.i` and will result in the same simulation as `./mooseapp-opt -i simulation_1_full.i`.


## Improvements to the finite volume capabilities

- Several new interface kernels were added for the finite volume (fluid flow in particular) simulations:
  a general diffusion interface kernel `FVDiffusionInterface` and a variable continuity constraint kernel,
  `FVTwoVarContinuityConstraint`
- The related postprocessors were implemented to measure the heat flux across these interfaces,
  namely `InterfaceDiffusiveFluxAverage/Integral`

## Bug Fixes and Minor Enhancements

- A `ParsedPostprocessor` was added to the framework. This removes the need for numerous more specific
  postprocessors, such as the `DifferencePostprocessor` or the `ScalePostprocessor`, which will be
  kept for backwards compatibility of inputs.
- `TIME_SECTION` macros within tight and possible threaded regions within the stochastic tools module were removed, see [#18172](https://github.com/idaholab/moose/pull/18172).

## Other news

- The codeowners feature was activated for the MOOSE repository. When pull requests modify specific sections of the code,
  the respective code owner will automatically be contacted for a review.
<commit_msg>Add highlights of the June libMesh update<commit_after># MOOSE Newsletter (June 2021)

## Multiple input file support

Users can now supply multiple input file names after the `-i` option. The
supplied inputs are successively merged into one simulation specification, with
later files adding and overwriting parameters. This allows users to factor out
common parameters (e.g. solver options, postprocessors, outputs) from a set of
similar input files

 ```
 ./mooseapp-opt -i common_parameters.i simulation_1.i
```

The output file names will be based off the _last_ input file name specified
(unless the `Outputs/file_base` parameter is specified). When multiple inputs
are specified, MOOSE will inform the user about parameter overrides at the top
of the simulation output.

To assist users with refactoring input files several new functions we added to
the `hit` commandline tool.

- `hit merge -output outfile.i infile1.i infile2.i ...` will produce a single file `outfile.i` that is a merge of the `infile*.i` inputs (which would result in the same MOOSE simulation as the multiple input files).
- `hit diff left.i right.i` or `hit diff -left left1.i left2.i ... -right right1.i right2.i ...` performs a diff on the left and right files (in the second example merging all left and right files respectively first). This diff is not sensitive to order, formatting, or comments in the input files.
- `hit common file1.i file2.i ... > common_parameters.i` will extract all parameters that are common to the specified input files (and have the same values). This can be used as the **first step** in factoring out common settings into a single input file.
- `hit subtract common_parameters.i simulation_1_full.i > simulation_1.i` removes the parameters in `common_parameters.i` from `simulation_1_full.i`, creating `simulation_1.i`. This is the **second step** in factoring out common parameters from a set of input files. The resulting file can be run as `./mooseapp-opt -i common.i simulation_1.i` and will result in the same simulation as `./mooseapp-opt -i simulation_1_full.i`.


## Improvements to the finite volume capabilities

- Several new interface kernels were added for the finite volume (fluid flow in particular) simulations:
  a general diffusion interface kernel `FVDiffusionInterface` and a variable continuity constraint kernel,
  `FVTwoVarContinuityConstraint`
- The related postprocessors were implemented to measure the heat flux across these interfaces,
  namely `InterfaceDiffusiveFluxAverage/Integral`

## libMesh-level changes

- Improved BoundingBox performance
- active\_local\_subdomain\_set mesh iterators
- MeshFunction::set\_subdomain\_ids() option
- GenericProjector made more flexible, for solution transfer use
- SIDE\_HIERARCHIC finite element type added, for varaibles defined on
  interfaces between elements.
- Minor bug fixes, compatibility fixes

## Bug Fixes and Minor Enhancements

- A `ParsedPostprocessor` was added to the framework. This removes the need for numerous more specific
  postprocessors, such as the `DifferencePostprocessor` or the `ScalePostprocessor`, which will be
  kept for backwards compatibility of inputs.
- `TIME_SECTION` macros within tight and possible threaded regions within the stochastic tools module were removed, see [#18172](https://github.com/idaholab/moose/pull/18172).

## Other news

- The codeowners feature was activated for the MOOSE repository. When pull requests modify specific sections of the code,
  the respective code owner will automatically be contacted for a review.

{'fraction_non_alphanumeric': 0.06222156222156222, 'fraction_numerical': 0.008613008613008613, 'mean_word_length': 4.6265664160401005, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1446830', 'n_tokens_mistral': 1771, 'n_tokens_neox': 1690, 'n_words': 893}