A newer version of the Gradio SDK is available:
5.23.2
MOOSE Newsletter (May 2021)
Porous media incompressible flow capabilities
We added support for solving the porous flow incompressible Navier Stokes equations to the
navier_stokes
module. These include mass, momentum and energy conservation for the fluid phase.
Some helpful additional kernels for the solid energy conservation equation, such as to handle the
time derivative and the heat convection terms, are also included.
Weighted Gap Mortar Mechanical Contact Implementation
We have implemented a variationally consistent discretization scheme for the zero-penetration mechanical contact constraints. Interested readers may refer to the associated issue and pull request.
Finite volume interface kernels
We have added interface kernels for finite volume physics. Some use cases for these interface kernels are: enforcing solution continuity across an interface and enforcing flux continuity when material properties must have different names on different subdomains for ghosting reasons.
Post-processors Usable in Initial Conditions
We added [/PostprocessorInterface.md] to initial conditions. Post-processor
values can now be retrieved using getPostprocessorValue()
and getPostprocessorValueByName()
,
and these post-processors will be executed before the initial condition as long
as their execute_on
parameters include INITIAL
.
SQA Updates
We have updated the document governing our software quality practices. The changes have resulted in a few more required SQA documents.
- [sqa/moose_sll.md]
- [sqa/framework_cci.md]
- [sqa/framework_scs.md]
Proportional Integral Derivative controller
We added a Proportional Integral Derivative (PID) controller to the Control system. This is helpful for basic tuning / optimization tasks, where some parameters of the simulation have to evolve to match a target value.
Nesting made easier in MeshGenerator subclasses
The new MeshGenerator::addMeshSubgenerator() API simplifies the process of creating a C++ subclass of MeshGenerator with a constructor which can instantiate other MeshGenerator classes as "subgenerators", on the fly, specifying subgenerator arguments programmatically. At execution time the subgenerators are executed, respecting any required dependency ordering, and the new subclass then has access to the generated meshes (either from an ab initio generator or via a chain of subgenerator) to further modify and/or combine to produce its own generated mesh.
libMesh-level changes
- The NEDELEC_ONE vector-valued space now supports Tet10 elements
- Added accessors to easily get global sets of boundary or subdomain ids
- User vectors' parallel type is now stored, for more robust restarts
- MetaPhysicL types can now be compatibly nested in Eigen types
- Enabled std::move of data in TIMPI parallel_sync.h push and pull
- Fixes for wider PETSc version compatibility
- Bugfix in Elem::is_child_on_edge
- Memory leak fix in PetscMatrix::matrix_matrix_mult
- Configure option fix for --enable_petsc_required
New Crystal Plasticity Base Class
We added a material-based version of the crystal plasticity stress update base class, i.e., ComputeMultipleCrystalPlasticityStress to facilitate the implementation of crystal plasticity constitutive laws. The advantages of the new base class lie in several aspects:
- Modularity, the base class is designed to be able to account for one or multiple crystal plastic deformation mechanism(s) at one time. Specifically, the new crystal plasticity base class allows for individual or combined deformation contributions from glide, twin, climb, etc.
- Simplicity, the new base class encapsulates the internal state variable calculations for one deformation mechanism in a single material class. Comparing to defining each internal state variable in a single UserObject (as required by FiniteStrainUObasedCP), this new design greatly reduces the total number of classes that are needed in developing a specific constitutive relation
- User Friendly, the reduction of the number of material classes greatly simplifies the input file for the user
- Robustness, improved convergence is observed for several existing crystal plasticity models after converting to the new design
!alert note title=Deprecation of the FiniteStrainUObasedCP We are actively converting all existing crystal plasticity models to ComputeMultipleCrystalPlasticityStress and adding new capabilities based on ComputeMultipleCrystalPlasticityStress. The existing FiniteStrainUObasedCP class will be deprecated in the foreseeable future. Therefore, we highly encourage developers and users to start the transition to the new crystal plasticity base class.
Bug Fixes and Minor Improvements
- Increased documentation for the Navier Stokes module, and a few MOOSE postprocessors and auxiliary kernels