Celeritas 0.6.0-dev.116+3fbab5e0
Loading...
Searching...
No Matches
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 >
CELER_FUNCTION decltype(auto) celeritas::make_mag_field_stepper (FieldT &&field, units::ElementaryCharge charge)
 Create a stepper for a charge in a magnetic field.
 
template<class StepperT , class GTV >
CELER_FUNCTION decltype(auto) celeritas::make_field_propagator (StepperT &&stepper, FieldDriverOptions const &options, ParticleTrackView const &particle, GTV &&geometry)
 Create a field propagator from an existing stepper.
 
template<template< class EquationT > class StepperT, class FieldT , class GTV >
CELER_FUNCTION decltype(auto) celeritas::make_mag_field_propagator (FieldT &&field, FieldDriverOptions const &options, ParticleTrackView const &particle, GTV &&geometry)
 Create a magnetic field propagator.
 

Function Documentation

◆ make_field_propagator()

template<class StepperT , class GTV >
CELER_FUNCTION decltype(auto) 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);

◆ make_mag_field_propagator()

template<template< class EquationT > class StepperT, class FieldT , class GTV >
CELER_FUNCTION decltype(auto) 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 >
CELER_FUNCTION decltype(auto) 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());