Celeritas  0.5.0-86+4a8eea4
Functions
MakeMagFieldPropagator.hh File Reference
#include "corecel/Assert.hh"
#include "corecel/Macros.hh"
#include "corecel/math/Algorithms.hh"
#include "celeritas/Quantities.hh"
#include "celeritas/geo/GeoTrackView.hh"
#include "celeritas/phys/ParticleTrackView.hh"
#include "FieldDriver.hh"
#include "FieldDriverOptions.hh"
#include "FieldPropagator.hh"
#include "MagFieldEquation.hh"
This graph shows which files directly or indirectly include this file:

Functions

template<template< class EquationT > class StepperT, class FieldT >
decltype(auto) CELER_FUNCTION celeritas::make_mag_field_stepper (FieldT &&field, units::ElementaryCharge charge)
 Create a stepper for a charge in a magnetic field. More...
 
template<class StepperT , class GTV >
decltype(auto) CELER_FUNCTION celeritas::make_field_propagator (StepperT &&stepper, FieldDriverOptions const &options, ParticleTrackView const &particle, GTV &&geometry)
 Create a field propagator from an existing stepper. More...
 
template<template< class EquationT > class StepperT, class FieldT , class GTV >
decltype(auto) CELER_FUNCTION celeritas::make_mag_field_propagator (FieldT &&field, FieldDriverOptions const &options, ParticleTrackView const &particle, GTV &&geometry)
 Create a magnetic field propagator. More...
 

Function Documentation

◆ make_field_propagator()

template<class StepperT , class GTV >
decltype(auto) CELER_FUNCTION celeritas::make_field_propagator ( StepperT &&  stepper,
FieldDriverOptions const &  options,
ParticleTrackView const &  particle,
GTV &&  geometry 
)

Create a field propagator from an existing stepper.

Example:

FieldDriverOptions driver_options,
auto propagate = make_field_propagator(
stepper,
driver_options,
particle,
&geo);
propagate(0.123);
decltype(auto) CELER_FUNCTION make_field_propagator(StepperT &&stepper, FieldDriverOptions const &options, ParticleTrackView const &particle, GTV &&geometry)
Create a field propagator from an existing stepper.
Definition: MakeMagFieldPropagator.hh:61

◆ make_mag_field_propagator()

template<template< class EquationT > class StepperT, class FieldT , class GTV >
decltype(auto) CELER_FUNCTION celeritas::make_mag_field_propagator ( FieldT &&  field,
FieldDriverOptions const &  options,
ParticleTrackView const &  particle,
GTV &&  geometry 
)

Create a magnetic field propagator.

Example:

FieldDriverOptions driver_options,
auto propagate = make_mag_field_propagator<DormandPrinceStepper>(
UniformField{{1, 2, 3}},
driver_options,
particle,
&geo);
propagate(0.123);

◆ make_mag_field_stepper()

template<template< class EquationT > class StepperT, class FieldT >
decltype(auto) CELER_FUNCTION celeritas::make_mag_field_stepper ( FieldT &&  field,
units::ElementaryCharge  charge 
)

Create a stepper for a charge in a magnetic field.

Example:

auto step = make_stepper<DormandPrinceStepper>(
UniformField{{1, 2, 3}},
particle.charge());