<commit_before># MOOSE Newsletter (July 2022)

!alert! construction title=In Progress
This MOOSE Newsletter edition is in progress. Please check back in August 2022
for a complete description of all MOOSE changes.
!alert-end!

## MOOSE Improvements

## libMesh-level Changes

## PETSc-level Changes

## Bug Fixes and Minor Enhancements<commit_msg>Add newsletter entry<commit_after># MOOSE Newsletter (July 2022)

!alert! construction title=In Progress
This MOOSE Newsletter edition is in progress. Please check back in August 2022
for a complete description of all MOOSE changes.
!alert-end!

## MOOSE Improvements

### Coordinate transformation system

Different applications may use different setups. For example a neutronics
simulation may be performed in Cartesian 3D space whereas a fuel performance
calculation may be performed using a 2D axisymmetric coordinate
system. Communicating information between these different configurations can be
difficult. One mechanism MOOSE provides for making this communication simpler is
the `MooseCoordTransform` class. Each `MooseApp` instance holds a coordinate
transformation object in its `MooseMesh` object. Users may specify
transformation information about their simulation setup on a per-application
basis in the input file `Mesh` block.

Let's consider an example. The below listing shows coordinate transformation
given in the `Mesh` block of a sub-application:

!listing transfers/coord_transform/sub-app.i block=Mesh

Here, the user is stating that a -90 degree alpha rotation (e.g. a point on the
y-axis becomes a point on the x-axis) should be applied to
the sub-application's domain in order to map to the reference domain (which the user has
chosen to correspond to the main application domain). Additionally, the user
wishes for the coordinate transformation object to know that one unit of mesh
length corresponds to 20 centimeters. This information from the sub-application's `Mesh` block
combined with the translation vector described by the `positions` parameter in
the main application `MultiApp` block

!listing transfers/coord_transform/main-app.i block=MultiApps

allows MOOSE to directly map information between the disparate application
domains. The figure below shows the variable field `v`, which is a nonlinear
variable in the sub-application and an auxiliary source variable in the main
application, in both domains, indicating a successful transfer of data after
applying the transformation order outlined above (rotation, scale, translation).

!media transfers/rotated-scaled-translated.png id=transformed caption=Example of rotation, scaling, and translation transformations between multiapps

Further documentation about the coordinate transformation system may be found at
[Transfers/index.md#coord-transform].

## libMesh-level Changes

## PETSc-level Changes

## Bug Fixes and Minor Enhancements
{'fraction_non_alphanumeric': 0.04694019471488178, 'fraction_numerical': 0.0076495132127955496, 'mean_word_length': 5.465168539325843, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, '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': '811562', 'n_tokens_mistral': 731, 'n_tokens_neox': 676, 'n_words': 370}