www.mooseframework.org
BoundaryCondition.h
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 #pragma once
11 
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"
27 
28 // Forward declerations
29 template <typename>
33 class MooseMesh;
34 class Problem;
35 class SubProblem;
36 class SystemBase;
37 class BoundaryCondition;
38 class Assembly;
39 
40 template <>
42 
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);
67 
69 
74  virtual MooseVariableFEBase & variable() = 0;
75 
81 
93  virtual bool shouldApply() { return true; }
94 
95 protected:
98 
101 
104 
107 
110 
113 };
BoundaryCondition
Base class for creating new types of boundary conditions.
Definition: BoundaryCondition.h:46
MooseVariableFEBase
Definition: MooseVariableFEBase.h:27
BoundaryCondition::validParams
static InputParameters validParams()
Definition: BoundaryCondition.C:23
THREAD_ID
unsigned int THREAD_ID
Definition: MooseTypes.h:196
SetupInterface
Definition: SetupInterface.h:28
BoundaryCondition::_fe_problem
FEProblemBase & _fe_problem
Reference to FEProblemBase.
Definition: BoundaryCondition.h:100
GeometricSearchInterface
Definition: GeometricSearchInterface.h:23
GeometricSearchInterface.h
MeshChangedInterface.h
UserObjectInterface.h
BoundaryRestrictableRequired
A class for requiring an object to be boundary restricted.
Definition: BoundaryRestrictableRequired.h:27
BoundaryCondition::BoundaryCondition
BoundaryCondition(const InputParameters &parameters, bool nodal)
Class constructor.
Definition: BoundaryCondition.C:48
VectorPostprocessorInterface.h
BoundaryRestrictableRequired.h
FunctionInterface
Interface for objects that need to use functions.
Definition: FunctionInterface.h:38
MooseObject::parameters
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:76
UserObjectInterface
Interface for objects that need to use UserObjects.
Definition: UserObjectInterface.h:28
BoundaryCondition::subProblem
SubProblem & subProblem()
Get a reference to the subproblem.
Definition: BoundaryCondition.h:80
SetupInterface.h
MooseVariable
MooseVariableFE< Real > MooseVariable
Definition: BoundaryCondition.h:30
BoundaryCondition::variable
virtual MooseVariableFEBase & variable()=0
Get a reference to the MooseVariableFE.
DistributionInterface.h
validParams< BoundaryCondition >
InputParameters validParams< BoundaryCondition >()
Definition: BoundaryCondition.C:17
MooseObject
Every object that can be built by the factory should be derived from this class.
Definition: MooseObject.h:50
InputParameters
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Definition: InputParameters.h:53
SubProblem
Generic class for solving transient nonlinear problems.
Definition: SubProblem.h:62
DistributionInterface
Interface for objects that need to use distributions.
Definition: DistributionInterface.h:28
VectorPostprocessorInterface
Definition: VectorPostprocessorInterface.h:20
TransientInterface.h
PostprocessorInterface
Interface class for classes which interact with Postprocessors.
Definition: PostprocessorInterface.h:34
Problem
Class that hold the whole problem being solved.
Definition: Problem.h:24
Restartable
A class for creating restricted objects.
Definition: Restartable.h:29
BoundaryCondition::_assembly
Assembly & _assembly
Reference to assembly.
Definition: BoundaryCondition.h:109
TransientInterface
Interface for objects that needs transient capabilities.
Definition: TransientInterface.h:35
FunctionInterface.h
BoundaryCondition::_sys
SystemBase & _sys
Reference to SystemBase.
Definition: BoundaryCondition.h:103
MeshChangedInterface
Interface for notifications that the mesh has changed.
Definition: MeshChangedInterface.h:28
MooseObject.h
Assembly
Keeps track of stuff related to assembling.
Definition: Assembly.h:62
Restartable.h
SystemBase
Base class for a system (of equations)
Definition: SystemBase.h:95
MooseMesh
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
VectorMooseVariable
MooseVariableFE< VectorValue< Real > > VectorMooseVariable
Definition: BoundaryCondition.h:32
BoundaryCondition::shouldApply
virtual bool shouldApply()
Hook for turning the boundary condition on and off.
Definition: BoundaryCondition.h:93
PostprocessorInterface.h
BoundaryCondition::_tid
THREAD_ID _tid
Thread id.
Definition: BoundaryCondition.h:106
BoundaryCondition::_mesh
MooseMesh & _mesh
Mesh this BC is defined on.
Definition: BoundaryCondition.h:112
TaggingInterface.h
FEProblemBase
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Definition: FEProblemBase.h:139
TaggingInterface
Definition: TaggingInterface.h:31
ParallelUniqueId.h
MooseVariableFE
Class for stuff related to variables.
Definition: Adaptivity.h:31
BoundaryCondition::_subproblem
SubProblem & _subproblem
Reference to SubProblem.
Definition: BoundaryCondition.h:97