Skip to content
Permalink
Browse files

Merge pull request #13337 from aeslaughter/mooseletter-11446

May News
  • Loading branch information...
permcody committed May 7, 2019
2 parents 9806f97 + e66c380 commit a50d37c2767f417c8e2f0fb9e9330ad4f0f9b15d
@@ -2,6 +2,17 @@

!syntax description /AuxKernels/VectorFunctionAux

## Example

The `VectorFunctionAux` object may be used to populate a vector auxiliary variable for use with
objects designed to be coupled to vector variables or for computing vector valued values such
as velocity for post processing purposes.

The following partial input file shows an example of populating a vector auxiliary variable
using a parsed function.

!listing vector_function_aux.i block=AuxVariables Functions AuxKernels


!syntax parameters /AuxKernels/VectorFunctionAux

@@ -8,7 +8,7 @@ Have you ever written a for loop like this?
for (unsigned int i = 0; i < vector.size(); ++i)
```

If so, you may have inadvertanently created a bug as we continue to scale MOOSE up!
If so, you may have inadvertently created a bug as we continue to scale MOOSE up!
Some of our bigger simulations are routinely reaching well into the millions of elements
and tens of millions of DOFs. While you may never loop over every single element or DOF
directly, there are still cases where you are processing information that exceeds the
@@ -0,0 +1,90 @@
# MOOSE News (May 2019)

## Relationship Managers (New API and enhancements)

RelationshipManagers give developers full control of the parallel ghosting of both the geometric (elements and nodes) and
algebraic (solution) information with your simulation. This allows developers to reach beyond their normal partitions
to run algorithms that may need to access off-partition information without manual parallel communication. You may notice
information about which RelationshipManagers are active in your simulation in the information printout. For more information
on this important capability, click [here](relationship_managers.md).

## Pragma once

MOOSE is moving away from traditional include guards and using `#pragma once` instead. This is slightly less error prone
since you don't need to use a different CPP variable in every file and also reduces the amount of clutter in your header
files. Please start using this new scheme if you contribute to MOOSE.

```
#ifndef SOMEOBJECT_H
#define SOMEOBJECT_H
class SomeObject
{
};
#endif
```

## Method of Manufactured Solution (MMS)

The method of manufactured solutions is a robust means to verify that simulation tools
are correct. Therefore, tools and documentation for performing this type of analysis has been
added to the code base.

[python/mms.md]

## AuxKernel Documentation

The documentation for the [AuxKernels/index.md] has been improved to include a few examples of how
the system should be utilized.

## Vector Variable Support for Auxiliary System

The `VectorAuxKernel base class was created to allow for vector auxiliary variables. For example,
it is now possible to create an auxiliary variable that is populated by a parsed function.
The following partial input file shows an example of populating a vector auxiliary variable
using a parsed function.
!listing vector_function_aux.i block=AuxVariables Functions AuxKernels
## Improved Support for AD Objects in MOOSEDocs
The need to include the `<RESIDUAL>` template argument for AD objects is no longer needed within
the MOOSEDocs syntax calls. For example, the following command can be used to list the available
parameters for the `ADDiffusion` object.
!listing ADDiffusion.md line=syntax parameters
## What is a Requirement?
If you are using MOOSEDocs for tracking requirements within a test specification, the following
pages provide detailed information about what is expected.
[Documenting MOOSE: Requirement, Design, and Issues](MooseDocs/generate.md#requirement-design-and-issues)
[what_is_a_requirement.md]
## AD Time Kernels Generalized
There are now three ADKernel base objects, as listed below, that may be used for time derivative
portions of partial differential equations. More information about Kernel object in general
is provided in the [syntax/Kernels/index.md] documentation.
| Object | Purpose |
|:-|:-|
| +ADTimeKernelValue+ | This object should be used for time derivative terms that require +only+ the =test function=. |
| +ADTimeKernelGrad+ | This object should be used for time derivative terms that require +only+ the =gradient of the test function=. |
| +ADTimeKernel+ | This object should be used for time derivative terms that require +both+ the =test function= and the =gradient of the test function=. |
## GrainTracker/FeatureFloodCount enhancements
The FeatureFloodCount object can now detect "percolation" among any feature in your domain. This is done by supplying a list
of primary and secondary boundaries between which a percolation track would be of interest. Additionally, the FeatureFloodCount
object can now calculate percent of boundary coverage, where boundary may be an external boundary or an internal boundary defined
by a sideset.
## Miscellaneous enhancements and bug fixes
- `Executioner/start_time` now works correctly when performing a [Restart](restart_recover.md) simulation.
- Reformatting of `time` and `dt` printouts. "Dt" is no longer printed on the initial condition, which was misleading.
- Fix bug where second level Multiapps where not properly restored when doing a Picard iteration.
@@ -6,6 +6,7 @@ monthly to the [MOOSE users](contact_us.md) as well as provided below.

## 2019

- [May, 2019](2019_05.md)
- [April, 2019](2019_04.md)
- [March, 2019](2019_03.md)
- [February, 2019](2019_02.md)

0 comments on commit a50d37c

Please sign in to comment.
You can’t perform that action at this time.