Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-15 08:54:44

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/inp/FrameworkInput.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include <functional>
0010 #include <optional>
0011 
0012 #include "Import.hh"
0013 #include "System.hh"
0014 
0015 namespace celeritas
0016 {
0017 namespace inp
0018 {
0019 struct Problem;
0020 
0021 //---------------------------------------------------------------------------//
0022 /*!
0023  * Describe how to import data into celeritas via an \c Input data structure.
0024  *
0025  * The order of initialization and loading follows the member declarations:
0026  * - System attributes (GPU activation etc.) are set
0027  * - Geant4 data is imported
0028  * - External Geant4 data files (such as EM LOW) are loaded
0029  * - Optional control/diagnostic overrides are loaded
0030  * - Optional framework-defined adjustments are applied
0031  *
0032  * \todo Add an input option for kill_offload/disable
0033  */
0034 struct FrameworkInput
0035 {
0036     //! Base system configuration
0037     System system;
0038 
0039     //! Configure what data to load from Geant4
0040     GeantImport geant;
0041     //! Load external data files (NOT YET IMPLEMENTED)
0042     GeantDataImport geant_data;
0043     //! Optionally add diagnostics and control parameters from an external file
0044     std::optional<UpdateImport> update;
0045 
0046     //! User application/framework-defined adjustments
0047     std::function<void(Problem&)> adjust;
0048 };
0049 
0050 //---------------------------------------------------------------------------//
0051 }  // namespace inp
0052 }  // namespace celeritas