|
|
|||
File indexing completed on 2025-12-15 10:10:57
0001 //------------------------------- -*- C++ -*- -------------------------------// 0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details 0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT) 0004 //---------------------------------------------------------------------------// 0005 //! \file celeritas/io/ImportedElementalMapLoader.hh 0006 //---------------------------------------------------------------------------// 0007 #pragma once 0008 0009 #include <map> 0010 0011 #include "corecel/Assert.hh" 0012 #include "celeritas/phys/AtomicNumber.hh" 0013 0014 namespace celeritas 0015 { 0016 //---------------------------------------------------------------------------// 0017 /*! 0018 * Load ImportT data, mapped by integers for each element. 0019 * 0020 * This is used for Seltzer-Berger, LivermorePE, and other data stored by 0021 * element in \c ImportData. 0022 */ 0023 template<class T> 0024 struct ImportedElementalMapLoader 0025 { 0026 std::map<int, T> const& tables; 0027 0028 inline T operator()(AtomicNumber z) const; 0029 }; 0030 0031 //---------------------------------------------------------------------------// 0032 // INLINE HELPER FUNCTIONS 0033 //---------------------------------------------------------------------------// 0034 /*! 0035 * Helper function to construct an ImportedElementalMapLoader. 0036 */ 0037 template<class T> 0038 inline ImportedElementalMapLoader<T> 0039 make_imported_element_loader(std::map<int, T> const& data) 0040 { 0041 return {data}; 0042 } 0043 0044 //---------------------------------------------------------------------------// 0045 // INLINE DEFINITIONS 0046 //---------------------------------------------------------------------------// 0047 /*! 0048 * Construct with defaults. 0049 */ 0050 template<class T> 0051 T ImportedElementalMapLoader<T>::operator()(AtomicNumber z) const 0052 { 0053 CELER_EXPECT(z); 0054 auto iter = tables.find(z.unchecked_get()); 0055 CELER_VALIDATE(iter != tables.end(), 0056 << "missing imported data for Z=" << z.get()); 0057 return iter->second; 0058 } 0059 0060 //---------------------------------------------------------------------------// 0061 } // namespace celeritas
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|