www.mooseframework.org
LevelSetApp.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 #include "Moose.h"
9 #include "LevelSetApp.h"
10 #include "AppFactory.h"
11 #include "MooseSyntax.h"
12 
13 // Kernels
14 #include "LevelSetAdvection.h"
15 #include "LevelSetAdvectionSUPG.h"
19 
20 // Functions
21 #include "LevelSetOlssonBubble.h"
22 #include "LevelSetOlssonVortex.h"
23 
24 // Postprocessors
25 #include "LevelSetCFLCondition.h"
26 #include "LevelSetVolume.h"
28 
29 // Problems
30 #include "LevelSetProblem.h"
32 
33 // MultiApps
35 
36 // Transfers
38 
39 template <>
40 InputParameters
42 {
43  InputParameters params = validParams<MooseApp>();
44  params.addClassDescription(
45  "Application containing object necessary to solve the level set equation.");
46  return params;
47 }
48 
49 LevelSetApp::LevelSetApp(InputParameters parameters) : MooseApp(parameters)
50 {
51  srand(processor_id());
52 
53  Moose::registerObjects(_factory);
55 
56  Moose::associateSyntax(_syntax, _action_factory);
57  LevelSetApp::associateSyntax(_syntax, _action_factory);
58 }
59 
60 void
62 {
63  registerApp(LevelSetApp);
64 }
65 
66 void
67 LevelSetApp::registerObjects(Factory & factory)
68 {
69  // Kernels
70  registerKernel(LevelSetAdvection);
71  registerKernel(LevelSetAdvectionSUPG);
72  registerKernel(LevelSetTimeDerivativeSUPG);
73  registerKernel(LevelSetForcingFunctionSUPG);
74  registerKernel(LevelSetOlssonReinitialization);
75 
76  // Functions
77  registerFunction(LevelSetOlssonBubble);
78  registerFunction(LevelSetOlssonVortex);
79 
80  // Postprocessors
81  registerPostprocessor(LevelSetCFLCondition);
82  registerPostprocessor(LevelSetVolume);
83  registerPostprocessor(LevelSetOlssonTerminator);
84 
85  // Problems
86  registerProblem(LevelSetProblem);
87  registerProblem(LevelSetReinitializationProblem);
88 
89  // MultiApps
90  registerMultiApp(LevelSetReinitializationMultiApp);
91 
92  // Transfers
93  registerTransfer(LevelSetMeshRefinementTransfer);
94 }
95 
96 void
97 LevelSetApp::associateSyntax(Syntax & /*syntax*/, ActionFactory & /*action_factory*/)
98 {
99 }
InputParameters validParams< LevelSetApp >()
Definition: LevelSetApp.C:41
Implements the "bubble" function from Olsson and Kreiss (2005).
LevelSetApp(InputParameters parameters)
Definition: LevelSetApp.C:49
static void registerObjects(Factory &factory)
Definition: LevelSetApp.C:67
A Problem object to perform level set equation reinitialization implementation, mainly implementing a...
MultiApp that performs a time reset prior to solving, this enables the level set reinitialization to ...
SUPG stabilization term for a forcing function.
Computes the maximum timestep based on the CFL condition.
Terminates the solve based on the criteria defined in Olsson et.
Postprocessor to compute the area/volume inside and outside of a level set contour.
Implements the re-initialization equation proposed by Olsson et.
static void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
Definition: LevelSetApp.C:97
Defines a vortex velocity field in the x-y plane.
Copies the refinement marker from the master to the sub-application.
Applies SUPG stabilization to the time derivative.
SUPG stabilization for the advection portion of the level set equation.
Advection Kernel for the levelset equation.
static void registerApps()
Definition: LevelSetApp.C:61
Problem that defines a custom call to MultiAppTransfers to allow for adaptivity to be transferred fro...