https://mooseframework.inl.gov
MFEMBoundaryRestrictable.h
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 
10 #ifdef MOOSE_MFEM_ENABLED
11 
12 #pragma once
13 
14 #include "GeneralUserObject.h"
15 #include "libmesh/ignore_warnings.h"
16 #include "mfem/miniapps/common/mfem-common.hpp"
17 #include "libmesh/restore_warnings.h"
18 
24 {
25 public:
27 
28  MFEMBoundaryRestrictable(const InputParameters & parameters, const mfem::ParMesh & mfem_mesh);
29 
30  mfem::Array<int> boundariesToAttributes();
31  std::vector<std::string> boundariesToStrings();
32 
34  bool isBoundaryRestricted() const
35  {
36  return !(_boundary_attributes.Size() == 1 && _boundary_attributes[0] == -1);
37  }
38 
39  const mfem::Array<int> & getBoundaryAttributes() { return _boundary_attributes; }
40  mfem::Array<int> & getBoundaryMarkers() { return _boundary_markers; }
41  const mfem::ParMesh & getMesh() { return _mfem_mesh; }
42 
43 protected:
45  const mfem::ParMesh & _mfem_mesh;
47  std::vector<BoundaryName> _boundary_names;
49  mfem::Array<int> _boundary_attributes;
51  mfem::Array<int> _boundary_markers;
52 };
53 
54 #endif
const mfem::Array< int > & getBoundaryAttributes()
const mfem::ParMesh & getMesh()
static InputParameters validParams()
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
mfem::Array< int > boundariesToAttributes()
mfem::Array< int > _boundary_markers
Boolean array indicating which boundaries are active in this object.
mfem::Array< int > & getBoundaryMarkers()
Base class for construction of an object that is restricted to a subset of boundaries of the problem ...
std::vector< BoundaryName > _boundary_names
Stores the names of the boundaries.
const mfem::ParMesh & _mfem_mesh
Stores the names of the boundaries.
std::vector< std::string > boundariesToStrings()
MFEMBoundaryRestrictable(const InputParameters &parameters, const mfem::ParMesh &mfem_mesh)
mfem::Array< int > _boundary_attributes
Array storing boundary attribute IDs for this object.
bool isBoundaryRestricted() const
Returns a bool indicating if the object is restricted to a subset of boundaries.