![]() |
|
|||
File indexing completed on 2025-02-22 10:31:19
0001 //----------------------------------*-C++-*----------------------------------// 0002 // Copyright 2024 UT-Battelle, LLC, and other Celeritas developers. 0003 // See the top-level COPYRIGHT file for details. 0004 // SPDX-License-Identifier: (Apache-2.0 OR MIT) 0005 //---------------------------------------------------------------------------// 0006 //! \file celeritas/em/params/WentzelVIMscParams.hh 0007 //---------------------------------------------------------------------------// 0008 #pragma once 0009 0010 #include <memory> 0011 0012 #include "corecel/data/CollectionMirror.hh" 0013 #include "corecel/data/ParamsDataInterface.hh" 0014 #include "celeritas/em/data/WentzelVIMscData.hh" 0015 0016 namespace celeritas 0017 { 0018 //---------------------------------------------------------------------------// 0019 class ParticleParams; 0020 struct ImportData; 0021 struct ImportMscModel; 0022 0023 //---------------------------------------------------------------------------// 0024 /*! 0025 * Construct and store data for Wentzel VI multiple scattering. 0026 * 0027 * Multiple scattering is used by the along-step kernel(s). 0028 */ 0029 class WentzelVIMscParams final : public ParamsDataInterface<WentzelVIMscData> 0030 { 0031 public: 0032 //!@{ 0033 //! \name Type aliases 0034 using VecImportMscModel = std::vector<ImportMscModel>; 0035 //!@} 0036 0037 public: 0038 // Construct if MSC process data is present, else return nullptr 0039 static std::shared_ptr<WentzelVIMscParams> 0040 from_import(ParticleParams const& particles, ImportData const& data); 0041 0042 // Construct from process data 0043 WentzelVIMscParams(ParticleParams const& particles, 0044 VecImportMscModel const& mdata); 0045 0046 //! Access Wentzel VI data on the host 0047 HostRef const& host_ref() const final { return data_.host_ref(); } 0048 0049 //! Access Wentzel VI data on the device 0050 DeviceRef const& device_ref() const final { return data_.device_ref(); } 0051 0052 private: 0053 // Host/device storage and reference 0054 CollectionMirror<WentzelVIMscData> data_; 0055 }; 0056 0057 //---------------------------------------------------------------------------// 0058 } // 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 |
![]() ![]() |