|
|
|||
File indexing completed on 2025-12-15 10:11:00
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/optical/Model.hh 0006 //---------------------------------------------------------------------------// 0007 #pragma once 0008 0009 #include "celeritas/Types.hh" 0010 0011 #include "action/ActionInterface.hh" 0012 0013 namespace celeritas 0014 { 0015 namespace optical 0016 { 0017 //---------------------------------------------------------------------------// 0018 class MfpBuilder; 0019 0020 //---------------------------------------------------------------------------// 0021 /*! 0022 * Base class for discrete, volumetric optical models. 0023 * 0024 * For optical physics, there is precisely one particle (optical photons) 0025 * and one energy range (optical wavelengths), so only models and no processes 0026 * are used in optical physics. 0027 */ 0028 class Model : public OpticalStepActionInterface, public ConcreteAction 0029 { 0030 public: 0031 //!@{ 0032 //! \name Type aliases 0033 0034 //! Function to build optical models with a given action id 0035 using ModelBuilder = std::function<std::shared_ptr<Model>(ActionId)>; 0036 0037 //!@} 0038 0039 public: 0040 using ConcreteAction::ConcreteAction; 0041 0042 //! Action order for optical models is always post-step 0043 StepActionOrder order() const override { return StepActionOrder::post; } 0044 0045 //! Build mean free path grids for all optical materials 0046 virtual void build_mfps(OptMatId mat, MfpBuilder& build) const = 0; 0047 }; 0048 0049 //---------------------------------------------------------------------------// 0050 } // namespace optical 0051 } // 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 |
|