https://mooseframework.inl.gov
ProblemOperatorInterface.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 "ProblemOperatorBase.h"
15 
16 namespace Moose::MFEM
17 {
24 {
25 public:
26  ProblemOperatorInterface() = default;
27  virtual ~ProblemOperatorInterface() = default;
28 
30  virtual std::vector<std::shared_ptr<ProblemOperatorBase>> & getProblemOperators()
31  {
32  return _problem_operators;
33  }
34 
36  virtual void addProblemOperator(std::shared_ptr<ProblemOperatorBase> problem_operator)
37  {
38  _problem_operators.push_back(std::move(problem_operator));
39  }
40 
41 private:
42  std::vector<std::shared_ptr<ProblemOperatorBase>> _problem_operators;
43 };
44 }
45 
46 #endif
virtual std::vector< std::shared_ptr< ProblemOperatorBase > > & getProblemOperators()
Returns a pointer to the operator&#39;s equation system.
std::vector< std::shared_ptr< ProblemOperatorBase > > _problem_operators
virtual ~ProblemOperatorInterface()=default
virtual void addProblemOperator(std::shared_ptr< ProblemOperatorBase > problem_operator)
Add an MFEM problem operator. Takes ownership.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).
Interface required for MFEM executioners to add and get ProblemOperators: