LCOV - code coverage report
Current view: top level - src/materials - MaterialPropertyRegistry.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 19 22 86.4 %
Date: 2025-07-17 01:28:37 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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             : #include "MaterialPropertyRegistry.h"
      11             : 
      12             : #include "MooseError.h"
      13             : 
      14             : unsigned int
      15      118873 : MaterialPropertyRegistry::addOrGetID(const std::string & name,
      16             :                                      const MaterialPropertyRegistry::WriteKey)
      17             : {
      18      118873 :   const auto it = _name_to_id.find(name);
      19      118873 :   if (it != _name_to_id.end())
      20      100736 :     return it->second;
      21             : 
      22       18137 :   const auto id = _id_to_name.size();
      23       18137 :   _name_to_id.emplace(name, id);
      24       18137 :   _id_to_name.push_back(name);
      25       18137 :   return id;
      26             : }
      27             : 
      28             : unsigned int
      29      169821 : MaterialPropertyRegistry::getID(const std::string & name) const
      30             : {
      31      169821 :   const auto id = queryID(name);
      32      169821 :   if (!id)
      33           0 :     mooseError("MaterialPropertyRegistry: Property '" + name + "' is not declared");
      34      169821 :   return *id;
      35             : }
      36             : 
      37             : std::optional<unsigned int>
      38      170049 : MaterialPropertyRegistry::queryID(const std::string & name) const
      39             : {
      40      170049 :   const auto it = _name_to_id.find(name);
      41      170049 :   if (it == _name_to_id.end())
      42           0 :     return {};
      43      170049 :   return it->second;
      44             : }
      45             : 
      46             : const std::string &
      47         852 : MaterialPropertyRegistry::getName(const unsigned int id) const
      48             : {
      49         852 :   if (!hasProperty(id))
      50           0 :     mooseError("MaterialPropertyRegistry: Property with ID ", id, " is not declared");
      51         852 :   return _id_to_name[id];
      52             : }

Generated by: LCOV version 1.14