diff options
author | 2019-05-06 16:01:34 -0700 | |
---|---|---|
committer | 2019-05-06 16:01:34 -0700 | |
commit | 03209c288464d252fe08b946a460d702fd4dcf32 (patch) | |
tree | 6d7227d90889c61b5114d16d9578016df7ec12f3 /Source/Initialization/PlasmaProfiles.cpp | |
parent | 06abf352f00ccfd6942938d085c3bca672061049 (diff) | |
parent | 5df205b7b7001da40f0f0e0d3cf56726d98964f6 (diff) | |
download | WarpX-03209c288464d252fe08b946a460d702fd4dcf32.tar.gz WarpX-03209c288464d252fe08b946a460d702fd4dcf32.tar.zst WarpX-03209c288464d252fe08b946a460d702fd4dcf32.zip |
Merge pull request #121 from ECP-WarpX/parab_profile
add parameter z_start for parabolic chanel profile
Diffstat (limited to 'Source/Initialization/PlasmaProfiles.cpp')
-rw-r--r-- | Source/Initialization/PlasmaProfiles.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/Source/Initialization/PlasmaProfiles.cpp b/Source/Initialization/PlasmaProfiles.cpp index e3382db06..d9d207f7e 100644 --- a/Source/Initialization/PlasmaProfiles.cpp +++ b/Source/Initialization/PlasmaProfiles.cpp @@ -17,21 +17,22 @@ Real PredefinedDensityProfile::getDensity(Real x, Real y, Real z) const { /// plateau between linear upramp and downramp, and parab transverse profile /// Real PredefinedDensityProfile::ParabolicChannel(Real x, Real y, Real z) const { - // params = [ramp_up plateau ramp_down rc n0] - Real ramp_up = params[0]; - Real plateau = params[1]; - Real ramp_down = params[2]; - Real rc = params[3]; - Real n0 = params[4]; + // params = [z_start ramp_up plateau ramp_down rc n0] + Real z_start = params[0]; + Real ramp_up = params[1]; + Real plateau = params[2]; + Real ramp_down = params[3]; + Real rc = params[4]; + Real n0 = params[5]; Real n; Real kp = PhysConst::q_e/PhysConst::c*sqrt( n0/(PhysConst::m_e*PhysConst::ep0) ); - if (z>=0 and z<ramp_up ) { - n = z/ramp_up; - } else if (z>=ramp_up and z<ramp_up+plateau ) { + if ((z-z_start)>=0 and (z-z_start)<ramp_up ) { + n = (z-z_start)/ramp_up; + } else if ((z-z_start)>=ramp_up and (z-z_start)<ramp_up+plateau ) { n = 1; - } else if (z>=ramp_up+plateau and z<ramp_up+plateau+ramp_down) { - n = 1-(z-ramp_up-plateau)/ramp_down; + } else if ((z-z_start)>=ramp_up+plateau and (z-z_start)<ramp_up+plateau+ramp_down) { + n = 1-((z-z_start)-ramp_up-plateau)/ramp_down; } else { n = 0; } |