Celeritas 0.6.0-92+develop.2b343e9f
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::SurfaceModel Class Referenceabstract

Physics to be applied during a surface crossing. More...

#include <SurfaceModel.hh>

Inheritance diagram for celeritas::SurfaceModel:
Inheritance graph
[legend]

Public Types

Type aliases
using SurfaceLayer = SurfaceId
 Eventually to be a pair of surface+layer.
 
using VecSurfaceLayer = std::vector< SurfaceLayer >
 Vector of surfaces.
 
using ModelSurfaceId = OpaqueId< struct ModelSurface_ >
 Opaque index of surface data in the list for a particular surface model.
 

Public Member Functions

virtual VecSurfaceLayer get_surfaces () const =0
 
- Public Member Functions inherited from celeritas::ActionInterface
virtual ~ActionInterface () noexcept=0
 Default destructor.
 
virtual ActionId action_id () const =0
 ID of this action for verification and ordering.
 
virtual std::string_view label () const =0
 Short unique label of the action.
 
virtual std::string_view description () const =0
 Description of the action.
 

Additional Inherited Members

- Protected Member Functions inherited from celeritas::ActionInterface
 CELER_DEFAULT_COPY_MOVE (ActionInterface)
 

Detailed Description

Physics to be applied during a surface crossing.

Each surface model is constructed independently given some inp data. It internally maps a sequence of "global" SurfaceId to a "local" ModelSurfaceId. If a SurfaceModel with action ID 10 returns a list of surfaces {3, 1, 5} and another with ID 11 returns {0, 4}, then the SurfacePhysicsMap class will store

[{11, 0}, {10, 1}, <null>, {10, 0}, {11, 1}, {10, 2}]

Since neither model specified surface 2, it is null.

With this setup, Collection data can be accessed locally by indexing on ModelSurfaceId .

This is currently only used by optical physics classes. Daughters will also inherit from OpticalStepActionInterface, ConcreteAction .


The documentation for this class was generated from the following file: