MOOSE News (February 2019)
Continued Automatic Differentiation Expansion
Automatic differentiation can now be conducted for
VectorIntegratedBCs. Additionally, the framework now calculates the dependence of important finite element quanitites like
JxW, shape function gradients and consequently variable gradients,
normals, and 'curvatures` on mesh displacements. Calculating these dependencies is critical for efficient non-linear solves of large-deformation solid mechanics, laser-melting/welding, and fluid-structure-interaction problems.
Improved support for "execute_on = FINAL"
Support for executing objects with the "FINAL" execute flag was improved; specifically, the ability to perform a transfers on final was added. This change also involved improving support for Exodus output to also be limited to final.
Additionally, the ability to create symbolic links to the "latest" and "final" versions of VectorPostprocessor output was added. This capability is controlled via the CSV output object using the
create_final_symlink input parameter flags. These flags, when enabled, will create files with "_LATEST" and "_FINAL". The latest flag will link to the last timestep for the most current simulation run and the final flag will point to the file created if the output object is setup to execute on final.
MultiApp Input Control Support
The ability to control MultiApp command line arguments during the MultiApp initialization was added to allow for input parameters for each MultiApp to be defined via the input file of the master application.
For example, the following snippet show a MultiApps input block that is creates two sub-applications from a single input file. Using the 'cli_args' input parameter the mesh size for the two applications is modified.
[MultiApps] [sub] type = FullSolveMultiApp positions = '0 0 0 1 1 1' input_files = 'sub.i' cli_args = 'Mesh/nx=10 Mesh/nx=100'  
For more advanced parameter manipulation the Control System should be utilized. For example, within the stochastic tools module the following test demonstrates the ability to set input parameters within the sub-applications with values from a distribution.
[Mesh] type = GeneratedMesh dim = 1  [Problem] type = FEProblem solve = false  [Executioner] type = Steady  [Distributions] [./uniform] type = UniformDistribution lower_bound = 5 upper_bound = 10 [../]  [Samplers] [./sample] type = MonteCarloSampler n_samples = 3 distributions = 'uniform uniform' execute_on = 'PRE_MULTIAPP_SETUP' [../]  [MultiApps] [sub] type = FullSolveMultiApp positions = '0 0 0 1 1 1 2 2 2' input_files = 'sub.i'   [Controls] [cmdline] type = MultiAppCommandLineControl multi_app = sub sampler = sample param_names = 'Mesh/xmax Mesh/ymax'