Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include "particles/traits/GetAtomicNumbers.hpp"
#include "traits/attribute/GetChargeState.hpp"

/** @file AlgorithmBSIHydrogenLike.hpp
/** @file AlgorithmBSI.hpp
*
* IONIZATION ALGORITHM for the BSI model
*
Expand All @@ -42,7 +42,7 @@ namespace ionization

/** Calculation for the Barrier Suppression Ionization model
*/
struct AlgorithmBSIHydrogenLike
struct AlgorithmBSI
{

/** Functor implementation
Expand Down Expand Up @@ -72,8 +72,12 @@ namespace ionization
uint32_t cs = math::float2int_rd(chargeState);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be uint32_t const cs = ...

/* ionization potential in atomic units */
const float_X iEnergy = GetIonizationEnergies<ParticleType>::type()[cs];
/* the charge that attracts the electron that is to be ionized:
+ * equals `protonNumber - #allInnerElectrons`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OPTIONAL:
perhaps just write number instead of #

Copy link
Member

@ax3l ax3l May 8, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or no. for number of

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that would be fine too

*/
+ float_X effectiveCharge = chargeState + float_X(1.0);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • this should be a float_X const
  • there is a + in front of this line

/* critical field strength in atomic units */
float_X critField = iEnergy*iEnergy / (float_X(4.0) * protonNumber);
float_X critField = iEnergy*iEnergy / (float_X(4.0) * effectiveCharge);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be a float_X const

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is a + in front of this line

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oO where the hell did that come from?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

copied from a diff?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mmh, must be it 🤕

/* ionization condition */
if (math::abs(eField) / ATOMIC_UNIT_EFIELD >= critField)
{
Expand Down
20 changes: 11 additions & 9 deletions src/picongpu/include/particles/ionization/byField/BSI/BSI.def
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ namespace particles
{
namespace ionization
{
/** arrier Suppression Ionization - Implementation
/** Barrier Suppression Ionization - Implementation
*
* \tparam T_DestSpecies electron species to be created
* \tparam T_SrcSpecies particle species that is ionized
Expand All @@ -48,9 +48,10 @@ namespace ionization
* "Tunneling and barrier-suppression ionization of atoms and ions in a laser radiation field"
* doi:10.1070/PU1998v041n05ABEH000393
*
* - This model assumes a hydrogenlike ion configuration,
* neglecting core shielding by other electrons and Stark upshifting
* of ionization energies according to strong external electric fields
* - This model accounts for naive ion charge shielding by inner electrons
* as it assumes that the charge the electron 'feels' is equal to
* `Z - #NumberOfBoundInnerShellElectrons`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUIRED:
you are using both # and number - please just use number

* - This model neglects the Stark upshift of ionization energies.
*
* \tparam T_DestSpecies electron species to be created
*
Expand All @@ -60,18 +61,18 @@ namespace ionization
* \see speciesDefinition.param
*/
template<typename T_DestSpecies>
struct BSIHydrogenLike
struct BSI
{
typedef particles::ionization::AlgorithmBSIHydrogenLike IonizationAlgorithm;
typedef particles::ionization::AlgorithmBSI IonizationAlgorithm;
typedef BSI_Impl<IonizationAlgorithm, T_DestSpecies> type;
};

/** Barrier Suppression Ionization - Effective Atomic Numbers
*
* - similar to BSIHydrogenLike
* - similar to BSI
*
* - tries to account for electron shielding by issuing a lookup table of
* effective atomic numbers for each electron shell @see ionizer.param
* effective atomic numbers for each filled electron shell @see ionizer.param
* - unvalidated and still in development
*
* \tparam T_DestSpecies electron species to be created
Expand All @@ -85,11 +86,12 @@ namespace ionization

/** Barrier Suppression Ionization - Ion. energies Stark-upshifted
*
* - similar to BSIHydrogenLike
* - similar to BSI
*
* - developed by Bauer and Mulser (book: High Power Laser Matter Interaction)
* - accounts for stark upshift of ionization energy but only covers the
* hydrogenlike ions originally
* - \todo needs to be extrapolated to arbitrary ions
*
* \tparam T_DestSpecies electron species to be created
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#include "fields/FieldE.hpp"

#include "particles/ionization/byField/BSI/BSI.def"
#include "particles/ionization/byField/BSI/AlgorithmBSIHydrogenLike.hpp"
#include "particles/ionization/byField/BSI/AlgorithmBSI.hpp"
#include "particles/ionization/byField/BSI/AlgorithmBSIEffectiveZ.hpp"
#include "particles/ionization/byField/BSI/AlgorithmBSIStarkShifted.hpp"
#include "particles/ionization/ionization.hpp"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ namespace ionization
template<bool T_polarizationType>
struct AlgorithmADK;

struct AlgorithmBSIHydrogenLike;
struct AlgorithmBSI;

struct AlgorithmBSIEffectiveZ;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#pragma once

#include "particles/ionization/byField/ADK/AlgorithmADK.hpp"
#include "particles/ionization/byField/BSI/AlgorithmBSIHydrogenLike.hpp"
#include "particles/ionization/byField/BSI/AlgorithmBSI.hpp"
#include "particles/ionization/byField/BSI/AlgorithmBSIEffectiveZ.hpp"
#include "particles/ionization/byField/BSI/AlgorithmBSIStarkShifted.hpp"
#include "particles/ionization/byField/Keldysh/AlgorithmKeldysh.hpp"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
*/
#include "particles/ionization/byField/ADK/ADK.def"
/** contains definitions for:
* - BSIHydrogenLike
* - BSI
* - BSIEffectiveZ
* - BSIStarkShifted
*/
Expand Down
2 changes: 1 addition & 1 deletion src/picongpu/include/particles/ionization/ionization.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ struct KernelIonizeParticles
* \tparam ParBoxIons container of the ions
* \tparam ParBoxElectrons container of the electrons
* \tparam Mapping class containing methods for acquiring info from the block
* \tparam FrameIonizer \see e.g. BSIHydrogenLike_Impl in BSIHydrogenLike_Impl.hpp
* \tparam FrameIonizer \see e.g. BSI_Impl in BSI_Impl.hpp
* instance of the ionization model functor
*/
template<class ParBoxIons, class ParBoxElectrons, class Mapping, class FrameIonizer>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ namespace picongpu
/** Ionization Model Configuration
*
* - None : no particle is ionized
* - BSIHydrogenLike : simple barrier suppression ionization
* - BSI : simple barrier suppression ionization
* - ADKLinPol : Ammosov-Delone-Krainov tunneling ionization (H-like)
* -> linearly polarized lasers
* - ADKCircPol : Ammosov-Delone-Krainov tunneling ionization (H-like)
Expand Down