https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ConvergenceIterationTypes.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 "MooseUtils.h"
12
13namespace moose
14{
15namespace internal
16{
17
18ConvergenceIterationTypeRegistry &
20{
21 static ConvergenceIterationTypeRegistry conv_iter_type_registry;
22 return conv_iter_type_registry;
23}
24
27{
28 const auto name_upper = MooseUtils::toUpper(name);
29
30 const auto type_iter = _types.find(name_upper);
31 if (type_iter != _types.items().end())
32 {
33 // Assume that this is not a duplicate name, but a "double registration" due
34 // to the dynamic load functionality.
35 return *type_iter;
36 }
37 else
38 return _types.addConvergenceIterationType(name_upper);
39}
40
41} // internal
42} // moose
43
45{
47registerType(const std::string & it_type)
48{
50}
51}
const MooseEnumItem & addConvergenceIterationType(const std::string &raw_name)
Add a new Convergence iteration type.
std::set< MooseEnumItem >::const_iterator find(const MooseEnumItem &other) const
Locate an item.
const std::set< MooseEnumItem > & items() const
Return the complete set of available flags.
Class for containing MooseEnum item information.
static ConvergenceIterationTypeRegistry & getRegistry()
Return Singleton instance.
ConvergenceIterationTypeEnum _types
The registered types.
const Convergence::IterationType & registerType(const std::string &name)
Registers a Convergence iteration type.
const Convergence::IterationType & registerType(const std::string &it_type)
Registers a Convergence iteration type to the registry.
std::string toUpper(std::string name)
Convert supplied string to upper case.