diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/Particles/PhysicalParticleContainer.cpp | 14 | ||||
-rw-r--r-- | Source/WarpX.cpp | 11 |
2 files changed, 19 insertions, 6 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp index a4e6317e1..8f9ad2e7c 100644 --- a/Source/Particles/PhysicalParticleContainer.cpp +++ b/Source/Particles/PhysicalParticleContainer.cpp @@ -165,10 +165,16 @@ PhysicalParticleContainer::PhysicalParticleContainer (AmrCore* amr_core, int isp #endif - // Parse galilean velocity - ParmParse ppsatd("psatd"); - ppsatd.query("v_galilean", m_v_galilean); - // Scale the velocity by the speed of light + // Get Galilean velocity + ParmParse pp_psatd("psatd"); + bool use_default_v_galilean = false; + pp_psatd.query("use_default_v_galilean", use_default_v_galilean); + if (use_default_v_galilean) { + m_v_galilean[2] = -std::sqrt(1._rt - 1._rt / (WarpX::gamma_boost * WarpX::gamma_boost)); + } else { + pp_psatd.query("v_galilean", m_v_galilean); + } + // Scale the Galilean velocity by the speed of light for (int i=0; i<3; i++) m_v_galilean[i] *= PhysConst::c; } diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp index 498e4d02d..2163a7c79 100644 --- a/Source/WarpX.cpp +++ b/Source/WarpX.cpp @@ -743,11 +743,18 @@ WarpX::ReadParameters () } pp.query("current_correction", current_correction); - pp.query("v_galilean", m_v_galilean); pp.query("v_comoving", m_v_comoving); pp.query("do_time_averaging", fft_do_time_averaging); - // Scale the velocity by the speed of light + // Check whether the default Galilean velocity should be used + bool use_default_v_galilean = false; + pp.query("use_default_v_galilean", use_default_v_galilean); + if (use_default_v_galilean) { + m_v_galilean[2] = -std::sqrt(1._rt - 1._rt / (gamma_boost * gamma_boost)); + } else { + pp.query("v_galilean", m_v_galilean); + } + // Scale the Galilean/comoving velocity by the speed of light for (int i=0; i<3; i++) m_v_galilean[i] *= PhysConst::c; for (int i=0; i<3; i++) m_v_comoving[i] *= PhysConst::c; |