Cardinal
CardinalProblem.h
Go to the documentation of this file.
1 /********************************************************************/
2 /* SOFTWARE COPYRIGHT NOTIFICATION */
3 /* Cardinal */
4 /* */
5 /* (c) 2021 UChicago Argonne, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by UChicago Argonne, LLC */
9 /* Under Contract No. DE-AC02-06CH11357 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* Prepared by Battelle Energy Alliance, LLC */
13 /* Under Contract No. DE-AC07-05ID14517 */
14 /* With the U. S. Department of Energy */
15 /* */
16 /* See LICENSE for full restrictions */
17 /********************************************************************/
18 
19 #pragma once
20 
21 #include "ExternalProblem.h"
22 
26 class CardinalProblem : public ExternalProblem
27 {
28 public:
29  CardinalProblem(const InputParameters & params);
30 
31  static InputParameters validParams();
32 
38  template <typename T>
39  void checkDuplicateEntries(const std::vector<T> & var, const std::string & name) const
40  {
41  std::set<T> set_var;
42  for (const auto & v : var)
43  {
44  if (set_var.count(v))
45  mooseError("Entries cannot be repeated in '" + name + "'!");
46  set_var.insert(v);
47  }
48  }
49 
55  void checkDuplicateVariableName(const std::string & name) const;
56 
63  bool stringHasEnding(std::string const & full, std::string const & ending) const;
64 };
void checkDuplicateVariableName(const std::string &name) const
Definition: CardinalProblem.C:56
void checkDuplicateEntries(const std::vector< T > &var, const std::string &name) const
Definition: CardinalProblem.h:39
static InputParameters validParams()
Definition: CardinalProblem.C:23
CardinalProblem(const InputParameters &params)
Definition: CardinalProblem.C:50
Definition: CardinalProblem.h:26
bool stringHasEnding(std::string const &full, std::string const &ending) const
Definition: CardinalProblem.C:79