www.mooseframework.org
XFEMApp.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "XFEMApp.h"
11 #include "XFEMAppTypes.h"
12 #include "SolidMechanicsApp.h"
13 #include "TensorMechanicsApp.h"
14 #include "Moose.h"
15 #include "AppFactory.h"
16 #include "MooseSyntax.h"
17 
18 template <>
19 InputParameters
21 {
22  InputParameters params = validParams<MooseApp>();
23 
24  params.set<bool>("automatic_automatic_scaling") = false;
25 
26  // Do not use legacy DirichletBC, that is, set DirichletBC default for preset = true
27  params.set<bool>("use_legacy_dirichlet_bc") = false;
28 
29  return params;
30 }
31 registerKnownLabel("XFEMApp");
32 
33 XFEMApp::XFEMApp(const InputParameters & parameters) : MooseApp(parameters)
34 {
35  srand(processor_id());
36  XFEMApp::registerAll(_factory, _action_factory, _syntax);
37 }
38 
40 
41 static void
42 associateSyntaxInner(Syntax & syntax, ActionFactory & /*action_factory*/)
43 {
44  registerTask("setup_xfem", false);
45  syntax.addDependency("setup_xfem", "setup_adaptivity");
46  registerSyntax("XFEMAction", "XFEM");
47 }
48 
49 void
50 XFEMApp::registerAll(Factory & f, ActionFactory & af, Syntax & s)
51 {
52  Registry::registerObjectsTo(f, {"XFEMApp"});
53  Registry::registerActionsTo(af, {"XFEMApp"});
54  associateSyntaxInner(s, af);
55 
58 
59  auto & factory = f; // for registerExecFlags macro
60  registerExecFlag(EXEC_XFEM_MARK);
61 }
62 
63 void
65 {
66  registerApp(XFEMApp);
67 }
68 
69 void
71 {
72  mooseDeprecated("use registerAll instead of registerObjectsDepends");
75 }
76 
77 void
78 XFEMApp::registerObjects(Factory & factory)
79 {
80  mooseDeprecated("use registerAll instead of registerObjects");
81  Registry::registerObjectsTo(factory, {"XFEMApp"});
82 }
83 
84 void
85 XFEMApp::associateSyntaxDepends(Syntax & syntax, ActionFactory & action_factory)
86 {
87  mooseDeprecated("use registerAll instead of associateSyntaxDepends");
88  SolidMechanicsApp::associateSyntax(syntax, action_factory);
89  TensorMechanicsApp::associateSyntax(syntax, action_factory);
90 }
91 
92 void
93 XFEMApp::associateSyntax(Syntax & syntax, ActionFactory & action_factory)
94 {
95  mooseDeprecated("use registerAll instead of associateSyntax");
96  Registry::registerActionsTo(action_factory, {"XFEMApp"});
97  associateSyntaxInner(syntax, action_factory);
98 }
99 
100 void
101 XFEMApp::registerExecFlags(Factory & factory)
102 {
103  mooseDeprecated("use registerAll instead of registerExecFlags");
104  registerExecFlag(EXEC_XFEM_MARK);
105 }
106 
107 extern "C" void
108 XFEMApp__registerAll(Factory & f, ActionFactory & af, Syntax & s)
109 {
110  XFEMApp::registerAll(f, af, s);
111 }
112 extern "C" void
114 {
116 }
TensorMechanicsApp::registerObjects
static void registerObjects(Factory &factory)
Definition: TensorMechanicsApp.C:95
XFEMApp::registerAll
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: XFEMApp.C:50
EXEC_XFEM_MARK
const ExecFlagType EXEC_XFEM_MARK
Exec flag used to execute MooseObjects while elements are being marked for cutting by XFEM.
XFEMApp.h
SolidMechanicsApp::registerAll
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: SolidMechanicsApp.C:46
XFEMAppTypes.h
XFEMApp::registerObjectDepends
static void registerObjectDepends(Factory &factory)
Definition: XFEMApp.C:70
SolidMechanicsApp::registerObjects
static void registerObjects(Factory &factory)
Definition: SolidMechanicsApp.C:69
XFEMApp::registerObjects
static void registerObjects(Factory &factory)
Definition: XFEMApp.C:78
TensorMechanicsApp.h
XFEMApp::registerApps
static void registerApps()
Definition: XFEMApp.C:64
TensorMechanicsApp::associateSyntax
static void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
Definition: TensorMechanicsApp.C:102
TensorMechanicsApp::registerAll
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: TensorMechanicsApp.C:81
SolidMechanicsApp.h
XFEMApp__registerAll
void XFEMApp__registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: XFEMApp.C:108
XFEMApp::associateSyntax
static void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
Definition: XFEMApp.C:93
XFEMApp::XFEMApp
XFEMApp(const InputParameters &parameters)
Definition: XFEMApp.C:33
XFEMApp::~XFEMApp
virtual ~XFEMApp()
Definition: XFEMApp.C:39
XFEMApp::registerExecFlags
static void registerExecFlags(Factory &factory)
Definition: XFEMApp.C:101
XFEMApp
Definition: XFEMApp.h:19
validParams< XFEMApp >
InputParameters validParams< XFEMApp >()
Definition: XFEMApp.C:20
XFEMApp::associateSyntaxDepends
static void associateSyntaxDepends(Syntax &syntax, ActionFactory &action_factory)
Definition: XFEMApp.C:85
SolidMechanicsApp::associateSyntax
static void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
Definition: SolidMechanicsApp.C:83
XFEMApp__registerApps
void XFEMApp__registerApps()
Definition: XFEMApp.C:113
registerKnownLabel
registerKnownLabel("XFEMApp")
associateSyntaxInner
static void associateSyntaxInner(Syntax &syntax, ActionFactory &)
Definition: XFEMApp.C:42