# Level Set Module

The level set module provides basic functionality to solve the level set equation, the following links provided detailed information on the theory and use of the level set module:

For reference the following tables list the objects contained within the level set module and a brief description of there purpose, each object may be selected to navigate to a detailed page.

## Functions*input*

- Level Set App
- LevelSetOlssonBubbleImplementation of 'bubble' ranging from 0 to 1.
- LevelSetOlssonVortexA function for creating vortex velocity fields for level set equation benchmark problems.

## Kernels*input*

- Level Set App
- LevelSetAdvectionImplements the level set advection equation: , where the weak form is .
- LevelSetAdvectionSUPGSUPG stablization term for the advection portion of the level set equation.
- LevelSetForcingFunctionSUPGThe SUPG stablization term for a forcing function.
- LevelSetOlssonReinitializationThe re-initialization equation defined by Olsson et. al. (2007).
- LevelSetTimeDerivativeSUPGSUPG stablization terms for the time derivative of the level set equation.

## MultiApps*input*

- Level Set App
- LevelSetReinitializationMultiAppMultiApp capable of performing repeated complete solves for level set reinitialization.

## Postprocessors*input*

- Level Set App
- LevelSetCFLConditionCompute the minimum timestep from the Courant-Friedrichs-Lewy (CFL) condition for the level-set equation.
- LevelSetVolumeCompute the area or volume of the region inside or outside of a level set contour.

## Problem*input*

- Level Set App
- LevelSetProblemA specilized problem class that adds a custom call to MultiAppTransfer execution to transfer adaptivity for the level set reinitialization.
- LevelSetReinitializationProblemA specialied problem that has a method for resetting time for level set reinitialization execution.

## Transfers*input*

- Level Set App
- LevelSetMeshRefinementTransferTransfers the mesh from the master application to the sub application for the purposes of level set reinitialization problems with mesh adaptivity.

## UserObjects*input*

- Level Set App
- LevelSetOlssonTerminatorTool for terminating the reinitialization of the level set equation based on the criteria defined by Olsson et. al. (2007).

## Level Set Module Tasks

The following additional tasks should be completed to make the level set module more useful and robust for real-world applications:

Develop automated techniques for setting the various re-initialization tuning parameters (, , etc.), see the Theory page for more details.

Implement a signed-distance-preserving re-initialization scheme based on established methods, e.g. Min (2010).

Implement additional stabilization techniques such as the Galerkin Least Squares Hughes et al. (1989) method and "shock/discontinuity capturing" schemes Hughes and Mallet (1986) and Shakib et al. (1991).

Create module-specific input file syntax for level set problems to simplify input file generation and usage.

Solve additional benchmark problems with various stabilization and re-initialization schemes, and investigate different mesh refinement and adaptivity strategies for said problems.

## Objects, Actions, and, Syntax

### Functions*input*

- Level Set App
- LevelSetOlssonBubbleImplementation of 'bubble' ranging from 0 to 1.
- LevelSetOlssonVortexA function for creating vortex velocity fields for level set equation benchmark problems.

### Kernels*input*

- Level Set App
- LevelSetAdvectionImplements the level set advection equation: , where the weak form is .
- LevelSetAdvectionSUPGSUPG stablization term for the advection portion of the level set equation.
- LevelSetForcingFunctionSUPGThe SUPG stablization term for a forcing function.
- LevelSetOlssonReinitializationThe re-initialization equation defined by Olsson et. al. (2007).
- LevelSetTimeDerivativeSUPGSUPG stablization terms for the time derivative of the level set equation.

### MultiApps*input*

- Level Set App
- LevelSetReinitializationMultiAppMultiApp capable of performing repeated complete solves for level set reinitialization.

### Postprocessors*input*

- Level Set App
- LevelSetCFLConditionCompute the minimum timestep from the Courant-Friedrichs-Lewy (CFL) condition for the level-set equation.
- LevelSetVolumeCompute the area or volume of the region inside or outside of a level set contour.

### Problem*input*

- Level Set App
- LevelSetProblemA specilized problem class that adds a custom call to MultiAppTransfer execution to transfer adaptivity for the level set reinitialization.
- LevelSetReinitializationProblemA specialied problem that has a method for resetting time for level set reinitialization execution.

### Transfers*input*

- Level Set App
- LevelSetMeshRefinementTransferTransfers the mesh from the master application to the sub application for the purposes of level set reinitialization problems with mesh adaptivity.

### UserObjects*input*

- Level Set App
- LevelSetOlssonTerminatorTool for terminating the reinitialization of the level set equation based on the criteria defined by Olsson et. al. (2007).

## References

- T. J. R. Hughes, L. P. Franca, and G. M. Hullbert.
A new finite element formulation for computational fluid dynamics: VIII. The Galerkin/least--squares method advective–diffusive equations.
*Computer Methods in Applied Mechanics and Engineering*, 73:173–189, 1989.[BibTeX] - T. J. R. Hughes and M. Mallet.
A new finite element formulation for computational fluid dynamics: II. Beyond SUPG.
*Computer Methods in Applied Mechanics and Engineering*, 54:341–355, 1986.[BibTeX] - C. Min.
On reinitializing level set functions.
*Journal of Computational Physics*, 229(8):2764–2772, April 2010. URL: http://dx.doi.org/10.1016/j.jcp.2009.12.032.[BibTeX] - F. Shakib, T. J. R. Hughes, and Z. Johan.
A new finite element formulation for computational fluid dynamics: X. The compressible Euler and Navier–Stokes equations.
*Computer Methods in Applied Mechanics and Engineering*, 89:141–219, 1991.[BibTeX]