MOOSE Newsletter (June 2022)

MOOSE Improvements

Ability to Compute the Residual and Jacobian Together

We have added the ability to compute the global residual and Jacobian simultaneously. This option may be advantageous for Navier-Stokes finite volume simulations, simulations in which there are fair number of nonlinear iterations per timestep, or for simulations in which material property evaluation is very costly. This capability has been primarily implemented for AD-based residual objects for which local residuals and Jacobians are already computed simultaneously. However, if application developers are interested in having this capability for hand-coded Jacobian residual objects, please reach out and let us know. More information about this capability can be found at Computing Residual and Jacobian Together.

MOOSE Electromagnetics Module Now Available

The MOOSE Electromagnetics Module is now publicly available and provides components and models to simulate electromagnetic wave problems within the MOOSE framework, and facilitates multiphysics coupling of electromagnetic simulations to other physical domains. Features include:

  • Transient and time-harmonic (i.e., single-frequency, steady-state) simulation in 1D and 2D (3D is currently in development)

  • Component-wise (scalar field variables) and vector field (vector field variables) components for the Helmholtz wave form of Maxwell's Equations

  • Complex field calculations

  • First-order port boundary conditions (scalar and vector forms)

  • Electrostatic contact interface conditions based on the work of (Cincotti et al., 2007)

  • Parallel and perpendicular field interface conditions for electric field based on Maxwell's Equations

  • Current density and electric field calculation based on electrostatic potential

  • Fundamental eigenvalue solutions for 2D waveguide profiles

  • Reflection coefficient calculation for a 1D slab

More information about the new module can be found on the module documentation page.

Figure 1: Electric field radiation pattern of half-wave dipole antenna driven by a 1GHz signal, simulated using the electromagnetics module.

libMesh-level Changes

2022.06.01 Update

  • Even more internal smart pointers. This includes changes to the Parameters class that may require downstream changes to match; compatibility in Moose itself has already been fixed.

  • When trying to combine a low-order Elem with an incompatibly higher order FE type, the mistake is now always reported with comprehensible error message, even in builds with assertions disabled.

  • When a parsed function is used and the parser returns an error, we now check and report details even in builds with assertions disabled, and we print the failing parsed expression.

  • The last use of C++17-deprecated std::iterator has been fixed; a few compilers outside CI were giving us warnings about it.

  • We put support for input meshes that themselves have holes into MeshedHole, so you can mesh with holes while your hole has holes.

  • Bug fixes for some triangulator use cases.

  • Support for Laplace mesh smoothing of an unpartitioned mesh.

  • Compatibility fixes for some PETSc 3.17 configurations.

  • configure --enable-xdr-required option to get a configure-time error when XDR I/O is unavailable.

  • MetaPhysicL updates, for evaluating pow(negative DualNumber, integer) operations without throwing floating point exceptions, and also evaluating binary functions faster in general when mixing DualNumber and non-DualNumber parameter types. Disable some MetaPhysicL optimizations when using older clang++ compilers that were having trouble with them.

References

  1. A. Cincotti, A. M. Locci, R. OrrĂ¹, and G. Cao. Modeling of SPS apparatus: temperature, current and strain distribution with no powders. AIChE Journal, 53(3):703–719, 2007. doi:10.1002/aic.11102.[BibTeX]