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
10 #pragma once
12 // MOOSE
13 #include "MooseObject.h"
14 #include "SetupInterface.h"
15 #include "ParallelUniqueId.h"
16 #include "FunctionInterface.h"
17 #include "DistributionInterface.h"
18 #include "UserObjectInterface.h"
19 #include "TransientInterface.h"
20 #include "PostprocessorInterface.h"
24 #include "Restartable.h"
25 #include "MeshChangedInterface.h"
26 #include "TaggingInterface.h"
28 // Forward declerations
29 template <typename>
33 class MooseMesh;
34 class Problem;
35 class SubProblem;
36 class SystemBase;
37 class BoundaryCondition;
38 class Assembly;
40 template <>
48  public SetupInterface,
49  public FunctionInterface,
50  public DistributionInterface,
51  public UserObjectInterface,
52  public TransientInterface,
56  public Restartable,
57  public MeshChangedInterface,
58  public TaggingInterface
59 {
60 public:
66  BoundaryCondition(const InputParameters & parameters, bool nodal);
72  virtual MooseVariableFEBase & variable() = 0;
91  virtual bool shouldApply();
93 protected:
111 };
MooseVariableFE< Real > MooseVariable
SubProblem & _subproblem
Reference to SubProblem.
A class for requiring an object to be boundary restricted.
SubProblem & subProblem()
Get a reference to the subproblem.
A class for creating restricted objects.
Definition: Restartable.h:29
virtual bool shouldApply()
Hook for turning the boundary condition on and off.
Keeps track of stuff related to assembling.
Definition: Assembly.h:62
Class for stuff related to variables.
Definition: Adaptivity.h:29
FEProblemBase & _fe_problem
Reference to FEProblemBase.
Class that hold the whole problem being solved.
Definition: Problem.h:24
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
Base class for a system (of equations)
Definition: SystemBase.h:92
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual MooseVariableFEBase & variable()=0
Get a reference to the MooseVariableFE.
Interface for objects that needs transient capabilities.
Interface for notifications that the mesh has changed.
Every object that can be built by the factory should be derived from this class.
Definition: MooseObject.h:42
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:65
Interface for objects that need to use distributions.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
Assembly & _assembly
Reference to assembly.
Interface for objects that need to use UserObjects.
Base class for creating new types of boundary conditions.
MooseVariableFE< VectorValue< Real > > VectorMooseVariable
Generic class for solving transient nonlinear problems.
Definition: SubProblem.h:59
SystemBase & _sys
Reference to SystemBase.
Interface for objects that need to use functions.
Thread id.
InputParameters validParams< BoundaryCondition >()
Interface class for classes which interact with Postprocessors.
unsigned int THREAD_ID
Definition: MooseTypes.h:161
MooseMesh & _mesh
Mesh this BC is defined on.
BoundaryCondition(const InputParameters &parameters, bool nodal)
Class constructor.