10#ifndef IMPACTX_ELEMENTS_MIXIN_LINEAR_TRANSPORT_H
11#define IMPACTX_ELEMENTS_MIXIN_LINEAR_TRANSPORT_H
27 template<
typename T_Element>
53 std::is_base_of_v<LinearTransport, T_Element>,
54 "LinearTransport can only be used as a mixin class!"
59 T_Element
const & element = *
static_cast<T_Element const*
>(
this);
60 cm = element.transport_map(ref) * cm * element.transport_map(ref).transpose();
#define AMREX_FORCE_INLINE
Definition alignment.H:23
amrex::SmallMatrix< amrex::ParticleReal, 6, 6, amrex::Order::F, 1 > Map6x6
Definition CovarianceMatrix.H:20
Definition ReferenceParticle.H:31
LinearTransport & operator=(LinearTransport const &)=default
LinearTransport(LinearTransport const &)=default
LinearTransport()=default
LinearTransport(LinearTransport &&)=default
AMREX_GPU_HOST AMREX_FORCE_INLINE void operator()(Map6x6 &AMREX_RESTRICT cm, RefPart const &AMREX_RESTRICT ref) const
Definition lineartransport.H:47
~LinearTransport()=default