www.mooseframework.org
GuaranteeProvider.C
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 #include "GuaranteeProvider.h"
11 #include "MooseObject.h"
12 
14 
15 bool
16 GuaranteeProvider::hasGuarantee(const MaterialPropertyName & prop_name, Guarantee guarantee)
17 {
18  auto it = _guarantees.find(prop_name);
19  if (it == _guarantees.end())
20  return false;
21 
22  auto it2 = it->second.find(guarantee);
23  return it2 != it->second.end();
24 }
25 
26 void
27 GuaranteeProvider::issueGuarantee(const MaterialPropertyName & prop_name, Guarantee guarantee)
28 {
29  // intentional insertion
30  _guarantees[prop_name].insert(guarantee);
31 }
32 
33 void
34 GuaranteeProvider::revokeGuarantee(const MaterialPropertyName & prop_name, Guarantee guarantee)
35 {
36  auto it = _guarantees.find(prop_name);
37  if (it != _guarantees.end())
38  it->second.erase(guarantee);
39 }
GuaranteeProvider(const MooseObject *moose_object)
void issueGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
std::map< MaterialPropertyName, std::set< Guarantee > > _guarantees
bool hasGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
void revokeGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
Guarantee
Enum values for guarantees that can be demanded for material properties.
Definition: Guarantee.h:16