https://mooseframework.inl.gov
InterfaceUserObjectBase.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 
11 #include "SubProblem.h"
12 #include "MooseTypes.h"
13 #include "Assembly.h"
14 
15 #include "libmesh/remote_elem.h"
16 
19 {
24  params.addClassDescription("Basic UO class to perform computation across an interface");
25 
26  // Need one layer of ghosting
27  params.addRelationshipManager("ElementSideNeighborLayers",
30  return params;
31 }
32 
34  : UserObject(parameters),
35  BoundaryRestrictableRequired(this, false), // false for applying to sidesets
36  TwoMaterialPropertyInterface(this, Moose::EMPTY_BLOCK_IDS, boundaryIDs()),
38  TransientInterface(this),
39  ElementIDInterface(this),
40  _mesh(_subproblem.mesh()),
41  _q_point(_assembly.qPointsFace()),
42  _qrule(_assembly.qRuleFace()),
43  _JxW(_assembly.JxWFace()),
44  _coord(_assembly.coordTransformation()),
45  _normals(_assembly.normals()),
46  _current_elem(_assembly.elem()),
47  _current_elem_volume(_assembly.elemVolume()),
48  _current_side(_assembly.side()),
49  _current_side_elem(_assembly.sideElem()),
50  _current_side_volume(_assembly.sideElemVolume()),
51  _neighbor_elem(_assembly.neighbor()),
52  _current_neighbor_volume(_assembly.neighborVolume())
53 {
54 }
A class for requiring an object to be boundary restricted.
Intermediate base class that ties together all the interfaces for getting MooseVariables with the Moo...
MeshBase & mesh
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
static InputParameters validParams()
void addRelationshipManager(const std::string &name, Moose::RelationshipManagerType rm_type, Moose::RelationshipManagerInputParameterCallback input_parameter_callback=nullptr)
Tells MOOSE about a RelationshipManager that this object needs.
static InputParameters validParams()
Interface for objects that needs transient capabilities.
InterfaceUserObjectBase(const InputParameters &parameters)
const std::set< SubdomainID > EMPTY_BLOCK_IDS
Definition: MooseTypes.h:683
This interface is designed for DGKernel, InternalSideUserObject, InterfaceUserObject, where material properties on a side of both its primary side (face) and its secondary side (neighbor) all required.
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
Base class for user-specific data.
Definition: UserObject.h:40
static InputParameters validParams()
Definition: UserObject.C:18