Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make January 2025 newsletter public #29758

Merged
merged 11 commits into from
Feb 4, 2025
92 changes: 82 additions & 10 deletions modules/doc/content/newsletter/2025/2025_01.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
# MOOSE Newsletter (January 2025)

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

## MOOSE Improvements

### Added ParsedConvergence
Expand All @@ -14,16 +9,93 @@ convergence and divergence criteria. The parsed expression may include other
[Convergence](Convergence/index.md) objects, [Functions](Functions/index.md),
[Post-processors](Postprocessors/index.md), and constant values.

### General meshing

The [CutMeshByLevelSetGenerator.md] mesh generator was added to be able to modify meshes using general functions,
while keeping the cut mesh with a smooth first order surface. Previously, only plane cuts were supported.

### Restart capabilities

The [SolutionUserObject.md] can now use a fixed transformation on the time that it reads the solution at. This can be
used to load a new solution on every time step, but at a different rate than the simulation time.

The old (one timestep prior) and older (two timesteps prior) states of a variable can now be initialized in the
[initial conditions `[ICs]` block](syntax/ICs/index.md).

## MOOSE Modules Changes

## libMesh-level Changes
### Thermal hydraulics

A new closure, [FunctorClosures.md], was added that leverages functors to compute the friction coefficients in flow components,
the wall heat transfer coefficient, and other thermal hydraulics closures.

### Fluid properties

In preparation for using the enthalpy variable in lieu of the temperature variable in computational fluid dynamics solves,
the `T_from_p_h` routine, used to compute temperature from the fluid pressure and enthalpy, was implemented in the following
fluid properties:

- HelmholtzFluidProperties, such as [CO2FluidProperties.md], [NitrogenFluidProperties.md], [MethaneFluidProperties.md] and [HydrogenFluidProperties.md]
- [LeadFluidProperties.md]
- [LeadBismuthFluidProperties.md]
- [StiffenedGasFluidProperties.md]

[TabulatedFluidProperties.md] were improved with the following modifications:

- a logarithmic grid in enthalpy can now be used for properties computed from specific volume and specific enthalpy
- a specific volume, specific energy tabulation can be read, but still rely on specific volume, specific enthalpy conversions to a pressure and temperature variable sets
in order to avoid an iterative solve
- the number of out-of-bounds evaluations can now be tallied and reported in the console log

### Navier Stokes

The [VolumetricFlowRate.md] object was extended to support the linear finite volume discretization.

An option to compute enthalpy directly rather than its approximation by the product of specific heat by temperature
has been added in the [INSFVEnthalpyFunctorMaterial.md]. This facilitates the problem setup when the approximation is not
valid, such as for compressible gases.

The PIMPLE (PISO+SIMPLE) algorithm has been implemented. With this, the linear finite volume capabilities support
transient simulations as well. For more information, see [PIMPLE.md].

### Reactor module

The [ControlDrumMeshGenerator.md] is now integrated in the Reactor Mesh Generator Building (RGMB) workflow. This abbreviated
syntax facilitates the use of the mesh generators in the Reactor module to build Cartesian and hexagonal lattice-based reactor cores.
It sets all the defaults and additional metadata that are expected by the downstream reactor physics applications (such as Griffin).

### Solid Mechanics

The [QuasiStaticSolidMechanicsPhysics.md] is no longer creating displacement variables without the block restriction of the `Physics`.
This is intended for being able to restrict the solid mechanics equations to only part of the subdomain. Simulations using multiple solid
mechanics `Physics` will automatically create the displacement variables using the union of all the block restrictions, if `add_variables` is
set in the shared `[Physics/SolidMechanics/QuasiStatic]` block. Simulations with other `Physics` deriving or creating the `QuasiStaticSolidMechanicsPhysics`
programmatically (such as in BISON) should likely create the displacement variables in a `Variables` block.

GiudGiud marked this conversation as resolved.
Show resolved Hide resolved
The method used by the four-node shell elements ([ShellElements.md]) to define local coordinate systems has been revised. In the revised version, the user provides a reference direction for the first local coordinate, and that is then projected onto the plane of the shells and used as the first local coordinate direction. An AuxKernel has been added to visualize the local coordinate directions. These changes, together with the correction of a longstanding bug with the calculation of the normal direction, enable the use of these elements for accurate computation of the response of curved shells, as confirmed by multiple regression tests that agree well with published analytical solutions.

The [PressureAction.md] is now controllable. It can be activated and de-activated using the [Controls system](syntax/Controls/index.md).
The +enable+ status is propagated to the boundary conditions that the Action creates.

GiudGiud marked this conversation as resolved.
Show resolved Hide resolved
### XFEM

## PETSc-level Changes
A new [MeshCut2DFractureUserObject.md] was added; it is a 2D mesh based cutting object that will nucleate and grow cracks in XFEM using fracture integrals computed by the Solid Mechanics [DomainIntegralAction.md]. The fracture toughness determining when a crack will grow can be defined as a spatially varying field and sampled using the [CrackFrontNonlocalScalarMaterial.md] vectorpostprocessor that is used as an input in the MeshCut2DFractureUserObject.

## Bug Fixes and Minor Enhancements

- MooseDocs SQA has the ability to check against multiple test specification file names (for example, `tests` as well
as `assessments`) when performing requirement reporting and checks, using the `specs:` parameter
in `sqa_reports.yml`.
- MooseDocs SQA has the ability to check against multiple test specification file names (for example,
`tests` as well as `assessments`) when performing requirement reporting and checks, using the
`specs:` parameter in `sqa_reports.yml`.
- The [ElementMaterialSampler.md] can now be used to sample only selected material properties rather than all properties.
from a single `Material`. This can also be used to sample from properties defined by separate `Materials`.
- A check was added to prevent infinite recursion when using the same input file as part of both the parent and
child applications.
- A new error was added when a user tries to initialize a variable using an Exodus initial condition and a shorthand `initial_condition`
parameter in the relevant `Variable`'s block.
- A boolean flag was added to the `Outputs` block to limit the verbosity of the material property output, which is useful for large-dimensional
tensor property output.
- The [ParsedGenerateNodeset.md] mesh generator can now work with non-contiguously numbered meshes.
- A debug option was added for [Controls](syntax/Controls/index.md): `show_controllable`, which will output all the quantities that can be controllable
at initialization as well as all the controlled quantities and their current values during the simulation.

## Conda Package Changes
18 changes: 18 additions & 0 deletions modules/doc/content/newsletter/2025/2025_02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# MOOSE Newsletter (February 2025)

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

## MOOSE Improvements

## MOOSE Modules Changes

## libMesh-level Changes

## PETSc-level Changes

## Bug Fixes and Minor Enhancements

## Conda Package Changes
4 changes: 4 additions & 0 deletions modules/doc/content/newsletter/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ MOOSE is a dynamic project with changes occurring daily. In order to help users
major changes to the project monthly highlights will be produced. These highlights will be posted
monthly to the [MOOSE discussion forum](contact_us.md) as well as provided below.

## 2025

- [January, 2025](2025_01.md)

## 2024

- [December, 2024](2024_12.md)
Expand Down