Skip to content

Commit

Permalink
Distributions: Cleaning (#492)
Browse files Browse the repository at this point in the history
Clean type qualifiers for initial particle distributions.
  • Loading branch information
ax3l authored Jan 2, 2024
1 parent b256f37 commit be4e8d6
Show file tree
Hide file tree
Showing 7 changed files with 207 additions and 159 deletions.
54 changes: 31 additions & 23 deletions src/particles/distribution/Gaussian.H
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
#ifndef IMPACTX_DISTRIBUTION_GAUSSIAN
#define IMPACTX_DISTRIBUTION_GAUSSIAN

#include <ablastr/constant.H>

#include <AMReX_Random.H>
#include <AMReX_REAL.H>

Expand All @@ -29,16 +31,21 @@ namespace impactx::distribution
* @param sigpx,sigpy,sigpt RMS momentum
* @param muxpx,muypy,mutpt correlation length-momentum
*/
Gaussian(amrex::ParticleReal const sigx, amrex::ParticleReal const sigy,
amrex::ParticleReal const sigt,amrex::ParticleReal const sigpx,
amrex::ParticleReal const sigpy,amrex::ParticleReal const sigpt,
amrex::ParticleReal const muxpx=0.0, amrex::ParticleReal const muypy=0.0,
amrex::ParticleReal const mutpt=0.0
)
: m_sigmaX(sigx),m_sigmaY(sigy),m_sigmaT(sigt),m_sigmaPx(sigpx),m_sigmaPy(sigpy),
m_sigmaPt(sigpt),m_muxpx(muxpx),m_muypy(muypy),m_mutpt(mutpt)
{
}
Gaussian (
amrex::ParticleReal sigx,
amrex::ParticleReal sigy,
amrex::ParticleReal sigt,
amrex::ParticleReal sigpx,
amrex::ParticleReal sigpy,
amrex::ParticleReal sigpt,
amrex::ParticleReal muxpx=0.0,
amrex::ParticleReal muypy=0.0,
amrex::ParticleReal mutpt=0.0
)
: m_sigmaX(sigx), m_sigmaY(sigy), m_sigmaT(sigt), m_sigmaPx(sigpx), m_sigmaPy(sigpy),
m_sigmaPt(sigpt), m_muxpx(muxpx), m_muypy(muypy), m_mutpt(mutpt)
{
}

/** Return 1 6D particle coordinate
*
Expand All @@ -52,21 +59,21 @@ namespace impactx::distribution
*/
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
void operator() (
amrex::ParticleReal & x,
amrex::ParticleReal & y,
amrex::ParticleReal & t,
amrex::ParticleReal & px,
amrex::ParticleReal & py,
amrex::ParticleReal & pt,
amrex::RandomEngine const& engine) const {

amrex::ParticleReal & AMREX_RESTRICT x,
amrex::ParticleReal & AMREX_RESTRICT y,
amrex::ParticleReal & AMREX_RESTRICT t,
amrex::ParticleReal & AMREX_RESTRICT px,
amrex::ParticleReal & AMREX_RESTRICT py,
amrex::ParticleReal & AMREX_RESTRICT pt,
amrex::RandomEngine const & engine
) const
{
using namespace amrex::literals;
using ablastr::constant::math::pi;

amrex::ParticleReal ln1,u1,u2;
amrex::ParticleReal root,a1,a2;

constexpr amrex::ParticleReal pi = 3.14159265358979_prt;

// Generate six standard normal random variables using Box-Muller:

u1 = amrex::Random(engine);
Expand Down Expand Up @@ -104,10 +111,11 @@ namespace impactx::distribution
t = a1;
pt = a2;
}

private:
amrex::ParticleReal m_sigmaX,m_sigmaY,m_sigmaT; //! related RMS sizes (length)
amrex::ParticleReal m_sigmaPx,m_sigmaPy,m_sigmaPt; //! RMS momentum
amrex::ParticleReal m_muxpx,m_muypy,m_mutpt; //! correlation length-momentum
amrex::ParticleReal m_sigmaX, m_sigmaY, m_sigmaT; //! related RMS sizes (length)
amrex::ParticleReal m_sigmaPx, m_sigmaPy, m_sigmaPt; //! RMS momentum
amrex::ParticleReal m_muxpx, m_muypy, m_mutpt; //! correlation length-momentum
};

} // namespace impactx::distribution
Expand Down
54 changes: 31 additions & 23 deletions src/particles/distribution/KVdist.H
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
#ifndef IMPACTX_DISTRIBUTION_KVDIST
#define IMPACTX_DISTRIBUTION_KVDIST

#include <ablastr/constant.H>

#include <AMReX_Random.H>
#include <AMReX_REAL.H>

Expand All @@ -30,16 +32,21 @@ namespace impactx::distribution
* @param sigpx,sigpy,sigpt RMS momentum
* @param muxpx,muypy,mutpt correlation length-momentum
*/
KVdist(amrex::ParticleReal const sigx, amrex::ParticleReal const sigy,
amrex::ParticleReal const sigt,amrex::ParticleReal const sigpx,
amrex::ParticleReal const sigpy,amrex::ParticleReal const sigpt,
amrex::ParticleReal const muxpx=0.0, amrex::ParticleReal const muypy=0.0,
amrex::ParticleReal const mutpt=0.0
)
: m_sigmaX(sigx),m_sigmaY(sigy),m_sigmaT(sigt),m_sigmaPx(sigpx),m_sigmaPy(sigpy),
m_sigmaPt(sigpt),m_muxpx(muxpx),m_muypy(muypy),m_mutpt(mutpt)
{
}
KVdist (
amrex::ParticleReal sigx,
amrex::ParticleReal sigy,
amrex::ParticleReal sigt,
amrex::ParticleReal sigpx,
amrex::ParticleReal sigpy,
amrex::ParticleReal sigpt,
amrex::ParticleReal muxpx=0.0,
amrex::ParticleReal muypy=0.0,
amrex::ParticleReal mutpt=0.0
)
: m_sigmaX(sigx), m_sigmaY(sigy), m_sigmaT(sigt), m_sigmaPx(sigpx), m_sigmaPy(sigpy),
m_sigmaPt(sigpt), m_muxpx(muxpx), m_muypy(muypy), m_mutpt(mutpt)
{
}

/** Return 1 6D particle coordinate
*
Expand All @@ -53,21 +60,21 @@ namespace impactx::distribution
*/
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
void operator() (
amrex::ParticleReal & x,
amrex::ParticleReal & y,
amrex::ParticleReal & t,
amrex::ParticleReal & px,
amrex::ParticleReal & py,
amrex::ParticleReal & pt,
amrex::RandomEngine const& engine) const {

amrex::ParticleReal & AMREX_RESTRICT x,
amrex::ParticleReal & AMREX_RESTRICT y,
amrex::ParticleReal & AMREX_RESTRICT t,
amrex::ParticleReal & AMREX_RESTRICT px,
amrex::ParticleReal & AMREX_RESTRICT py,
amrex::ParticleReal & AMREX_RESTRICT pt,
amrex::RandomEngine const & engine
) const
{
using namespace amrex::literals;
using ablastr::constant::math::pi;

amrex::ParticleReal v,phi,r,beta,p,u1,u2,ln1;
amrex::ParticleReal root,a1,a2;

constexpr amrex::ParticleReal pi = 3.14159265358979_prt;

// Sample and transform to define (x,y):
v = amrex::Random(engine);
phi = amrex::Random(engine);
Expand Down Expand Up @@ -117,10 +124,11 @@ namespace impactx::distribution
t = a1;
pt = a2;
}

private:
amrex::ParticleReal m_sigmaX,m_sigmaY,m_sigmaT; //! related RMS sizes (length)
amrex::ParticleReal m_sigmaPx,m_sigmaPy,m_sigmaPt; //! RMS momentum
amrex::ParticleReal m_muxpx,m_muypy,m_mutpt; //! correlation length-momentum
amrex::ParticleReal m_sigmaX, m_sigmaY, m_sigmaT; //! related RMS sizes (length)
amrex::ParticleReal m_sigmaPx, m_sigmaPy, m_sigmaPt; //! RMS momentum
amrex::ParticleReal m_muxpx, m_muypy, m_mutpt; //! correlation length-momentum
};

} // namespace impactx::distribution
Expand Down
54 changes: 31 additions & 23 deletions src/particles/distribution/Kurth4D.H
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
#ifndef IMPACTX_DISTRIBUTION_KURTH4D
#define IMPACTX_DISTRIBUTION_KURTH4D

#include <ablastr/constant.H>

#include <AMReX_Random.H>
#include <AMReX_REAL.H>

Expand All @@ -30,16 +32,21 @@ namespace impactx::distribution
* @param sigpx,sigpy,sigpt RMS momentum
* @param muxpx,muypy,mutpt correlation length-momentum
*/
Kurth4D(amrex::ParticleReal const sigx, amrex::ParticleReal const sigy,
amrex::ParticleReal const sigt,amrex::ParticleReal const sigpx,
amrex::ParticleReal const sigpy,amrex::ParticleReal const sigpt,
amrex::ParticleReal const muxpx=0.0, amrex::ParticleReal const muypy=0.0,
amrex::ParticleReal const mutpt=0.0
)
: m_sigmaX(sigx),m_sigmaY(sigy),m_sigmaT(sigt),m_sigmaPx(sigpx),m_sigmaPy(sigpy),
m_sigmaPt(sigpt),m_muxpx(muxpx),m_muypy(muypy),m_mutpt(mutpt)
{
}
Kurth4D (
amrex::ParticleReal sigx,
amrex::ParticleReal sigy,
amrex::ParticleReal sigt,
amrex::ParticleReal sigpx,
amrex::ParticleReal sigpy,
amrex::ParticleReal sigpt,
amrex::ParticleReal muxpx=0.0,
amrex::ParticleReal muypy=0.0,
amrex::ParticleReal mutpt=0.0
)
: m_sigmaX(sigx), m_sigmaY(sigy), m_sigmaT(sigt), m_sigmaPx(sigpx), m_sigmaPy(sigpy),
m_sigmaPt(sigpt), m_muxpx(muxpx), m_muypy(muypy), m_mutpt(mutpt)
{
}

/** Return 1 6D particle coordinate
*
Expand All @@ -53,22 +60,22 @@ namespace impactx::distribution
*/
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
void operator() (
amrex::ParticleReal & x,
amrex::ParticleReal & y,
amrex::ParticleReal & t,
amrex::ParticleReal & px,
amrex::ParticleReal & py,
amrex::ParticleReal & pt,
amrex::RandomEngine const& engine) const {

amrex::ParticleReal & AMREX_RESTRICT x,
amrex::ParticleReal & AMREX_RESTRICT y,
amrex::ParticleReal & AMREX_RESTRICT t,
amrex::ParticleReal & AMREX_RESTRICT px,
amrex::ParticleReal & AMREX_RESTRICT py,
amrex::ParticleReal & AMREX_RESTRICT pt,
amrex::RandomEngine const & engine
) const
{
using namespace amrex::literals;
using ablastr::constant::math::pi;

amrex::ParticleReal v,phi,r,u1,u2,ln1;
amrex::ParticleReal alpha,u,Lz,pmax,pr,pphi;
amrex::ParticleReal root,a1,a2;

constexpr amrex::ParticleReal pi = 3.14159265358979_prt;

// Sample and transform to define (x,y):
v = amrex::Random(engine);
phi = amrex::Random(engine);
Expand Down Expand Up @@ -127,10 +134,11 @@ namespace impactx::distribution
t = a1;
pt = a2;
}

private:
amrex::ParticleReal m_sigmaX,m_sigmaY,m_sigmaT; //! related RMS sizes (length)
amrex::ParticleReal m_sigmaPx,m_sigmaPy,m_sigmaPt; //! RMS momentum
amrex::ParticleReal m_muxpx,m_muypy,m_mutpt; //! correlation length-momentum
amrex::ParticleReal m_sigmaX, m_sigmaY, m_sigmaT; //! related RMS sizes (length)
amrex::ParticleReal m_sigmaPx, m_sigmaPy, m_sigmaPt; //! RMS momentum
amrex::ParticleReal m_muxpx, m_muypy, m_mutpt; //! correlation length-momentum
};

} // namespace impactx::distribution
Expand Down
54 changes: 31 additions & 23 deletions src/particles/distribution/Kurth6D.H
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
#ifndef IMPACTX_DISTRIBUTION_KURTH6D
#define IMPACTX_DISTRIBUTION_KURTH6D

#include <ablastr/constant.H>

#include <AMReX_Random.H>
#include <AMReX_REAL.H>

Expand All @@ -32,16 +34,21 @@ namespace impactx::distribution
* @param sigpx,sigpy,sigpt RMS momentum
* @param muxpx,muypy,mutpt correlation length-momentum
*/
Kurth6D(amrex::ParticleReal const sigx, amrex::ParticleReal const sigy,
amrex::ParticleReal const sigt,amrex::ParticleReal const sigpx,
amrex::ParticleReal const sigpy,amrex::ParticleReal const sigpt,
amrex::ParticleReal const muxpx=0.0, amrex::ParticleReal const muypy=0.0,
amrex::ParticleReal const mutpt=0.0
)
: m_sigmaX(sigx),m_sigmaY(sigy),m_sigmaT(sigt),m_sigmaPx(sigpx),m_sigmaPy(sigpy),
m_sigmaPt(sigpt),m_muxpx(muxpx),m_muypy(muypy),m_mutpt(mutpt)
{
}
Kurth6D (
amrex::ParticleReal sigx,
amrex::ParticleReal sigy,
amrex::ParticleReal sigt,
amrex::ParticleReal sigpx,
amrex::ParticleReal sigpy,
amrex::ParticleReal sigpt,
amrex::ParticleReal muxpx=0.0,
amrex::ParticleReal muypy=0.0,
amrex::ParticleReal mutpt=0.0
)
: m_sigmaX(sigx), m_sigmaY(sigy), m_sigmaT(sigt), m_sigmaPx(sigpx), m_sigmaPy(sigpy),
m_sigmaPt(sigpt), m_muxpx(muxpx), m_muypy(muypy), m_mutpt(mutpt)
{
}

/** Return 1 6D particle coordinate
*
Expand All @@ -55,22 +62,22 @@ namespace impactx::distribution
*/
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
void operator() (
amrex::ParticleReal & x,
amrex::ParticleReal & y,
amrex::ParticleReal & t,
amrex::ParticleReal & px,
amrex::ParticleReal & py,
amrex::ParticleReal & pt,
amrex::RandomEngine const& engine) const {

amrex::ParticleReal & AMREX_RESTRICT x,
amrex::ParticleReal & AMREX_RESTRICT y,
amrex::ParticleReal & AMREX_RESTRICT t,
amrex::ParticleReal & AMREX_RESTRICT px,
amrex::ParticleReal & AMREX_RESTRICT py,
amrex::ParticleReal & AMREX_RESTRICT pt,
amrex::RandomEngine const & engine
) const
{
using namespace amrex::literals;
using ablastr::constant::math::pi;

amrex::ParticleReal v,costheta,sintheta,phi,r;
amrex::ParticleReal L,alpha,pmax,pr,beta,p1,p2;
amrex::ParticleReal root,a1,a2;

constexpr amrex::ParticleReal pi = 3.14159265358979_prt;

// Random samples used to define (x,y,z):
v = amrex::Random(engine);
costheta = amrex::Random(engine);
Expand Down Expand Up @@ -133,10 +140,11 @@ namespace impactx::distribution
t = a1;
pt = a2;
}

private:
amrex::ParticleReal m_sigmaX,m_sigmaY,m_sigmaT; //! related RMS sizes (length)
amrex::ParticleReal m_sigmaPx,m_sigmaPy,m_sigmaPt; //! RMS momentum
amrex::ParticleReal m_muxpx,m_muypy,m_mutpt; //! correlation length-momentum
amrex::ParticleReal m_sigmaX, m_sigmaY, m_sigmaT; //! related RMS sizes (length)
amrex::ParticleReal m_sigmaPx, m_sigmaPy, m_sigmaPt; //! RMS momentum
amrex::ParticleReal m_muxpx, m_muypy, m_mutpt; //! correlation length-momentum
};

} // namespace impactx::distribution
Expand Down
Loading

0 comments on commit be4e8d6

Please sign in to comment.