aboutsummaryrefslogtreecommitdiff
path: root/Source/Initialization/PlasmaInjector.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2019-11-12 15:00:02 -0800
committerGravatar GitHub <noreply@github.com> 2019-11-12 15:00:02 -0800
commit68c60b51b342d8b7e1ef9b2a916e20edfa82d1fd (patch)
treedf4f26d34d2b8fee5682524cbfce5770c3d4c1b9 /Source/Initialization/PlasmaInjector.cpp
parent484c04d3d6d473e46cda3021e4895c73bbc16bb7 (diff)
parent2b01303bc3183a70358cd2e668f31157bbe82bf4 (diff)
downloadWarpX-68c60b51b342d8b7e1ef9b2a916e20edfa82d1fd.tar.gz
WarpX-68c60b51b342d8b7e1ef9b2a916e20edfa82d1fd.tar.zst
WarpX-68c60b51b342d8b7e1ef9b2a916e20edfa82d1fd.zip
Merge pull request #516 from cameronjy/maxwell_juttner
Maxwell-Juttner Distribution
Diffstat (limited to 'Source/Initialization/PlasmaInjector.cpp')
-rw-r--r--Source/Initialization/PlasmaInjector.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/Initialization/PlasmaInjector.cpp b/Source/Initialization/PlasmaInjector.cpp
index af04c6b31..32711cd31 100644
--- a/Source/Initialization/PlasmaInjector.cpp
+++ b/Source/Initialization/PlasmaInjector.cpp
@@ -269,6 +269,28 @@ void PlasmaInjector::parseMomentum (ParmParse& pp)
// Construct InjectorMomentum with InjectorMomentumGaussian.
inj_mom.reset(new InjectorMomentum((InjectorMomentumGaussian*)nullptr,
ux_m, uy_m, uz_m, ux_th, uy_th, uz_th));
+ } else if (mom_dist_s == "maxwell_juttner"){
+ Real beta = 0.;
+ Real theta = 10.;
+ int dir = 0;
+ std::string direction = "x";
+ pp.query("beta", beta);
+ pp.query("theta", theta);
+ pp.query("direction", direction);
+ if(direction == "x" || direction == "X"){
+ dir = 0;
+ } else if (direction == "y" || direction == "Y"){
+ dir = 1;
+ } else if (direction == "z" || direction == "Z"){
+ dir = 2;
+ } else{
+ std::stringstream stringstream;
+ stringstream << "Direction " << direction << " is not recognzied. Please enter x, y, or z.";
+ direction = stringstream.str();
+ amrex::Abort(direction.c_str());
+ }
+ // Construct InjectorMomentum with InjectorMomentumJuttner.
+ inj_mom.reset(new InjectorMomentum((InjectorMomentumJuttner*)nullptr, theta, beta, dir));
} else if (mom_dist_s == "radial_expansion") {
Real u_over_r = 0.;
pp.query("u_over_r", u_over_r);