aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/SpectralSolver')
-rw-r--r--Source/FieldSolver/SpectralSolver/PsatdAlgorithm.cpp7
-rw-r--r--Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp8
-rw-r--r--Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp5
3 files changed, 14 insertions, 6 deletions
diff --git a/Source/FieldSolver/SpectralSolver/PsatdAlgorithm.cpp b/Source/FieldSolver/SpectralSolver/PsatdAlgorithm.cpp
index 17414c4bf..ada7506c3 100644
--- a/Source/FieldSolver/SpectralSolver/PsatdAlgorithm.cpp
+++ b/Source/FieldSolver/SpectralSolver/PsatdAlgorithm.cpp
@@ -56,8 +56,10 @@ PsatdAlgorithm::PsatdAlgorithm(const SpectralKSpace& spectral_kspace,
std::pow(modified_kx[i], 2) +
#if (AMREX_SPACEDIM==3)
std::pow(modified_ky[j], 2) +
-#endif
std::pow(modified_kz[k], 2));
+#else
+ std::pow(modified_kz[j], 2));
+#endif
// Calculate coefficients
constexpr Real c = PhysConst::c;
@@ -126,10 +128,11 @@ PsatdAlgorithm::pushSpectralFields(SpectralFieldData& f) const{
const Real kx = modified_kx_arr[i];
#if (AMREX_SPACEDIM==3)
const Real ky = modified_ky_arr[j];
+ const Real kz = modified_kz_arr[k];
#else
constexpr Real ky = 0;
+ const Real kz = modified_kz_arr[j];
#endif
- const Real kz = modified_kz_arr[k];
constexpr Real c2 = PhysConst::c*PhysConst::c;
constexpr Real inv_ep0 = 1./PhysConst::ep0;
constexpr Complex I = Complex{0,1};
diff --git a/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp b/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp
index 844ac97a7..6e6cc124f 100644
--- a/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp
+++ b/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp
@@ -159,8 +159,10 @@ SpectralFieldData::ForwardTransform( const MultiFab& mf,
if (is_nodal_x==false) spectral_field_value *= xshift_arr[i];
#if (AMREX_SPACEDIM == 3)
if (is_nodal_y==false) spectral_field_value *= yshift_arr[j];
-#endif
if (is_nodal_z==false) spectral_field_value *= zshift_arr[k];
+#elif (AMREX_SPACEDIM == 2)
+ if (is_nodal_z==false) spectral_field_value *= zshift_arr[j];
+#endif
// Copy field into the right index
fields_arr(i,j,k,field_index) = spectral_field_value;
});
@@ -212,8 +214,10 @@ SpectralFieldData::BackwardTransform( MultiFab& mf,
if (is_nodal_x==false) spectral_field_value *= xshift_arr[i];
#if (AMREX_SPACEDIM == 3)
if (is_nodal_y==false) spectral_field_value *= yshift_arr[j];
-#endif
if (is_nodal_z==false) spectral_field_value *= zshift_arr[k];
+#elif (AMREX_SPACEDIM == 2)
+ if (is_nodal_z==false) spectral_field_value *= zshift_arr[j];
+#endif
// Copy field into temporary array (after normalization)
tmp_arr(i,j,k) = inv_N*spectral_field_value;
});
diff --git a/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp b/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp
index d91891a30..ddb2020d8 100644
--- a/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp
+++ b/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp
@@ -161,12 +161,13 @@ SpectralKSpace::getModifiedKComponent( const DistributionMapping& dm,
// Fill the modified k vector
for (int i=0; i<k.size(); i++ ){
+ modified_k[i] = 0;
for (int n=1; n<stencil_coef.size(); n++){
if (nodal){
- modified_k[i] = stencil_coef[n]* \
+ modified_k[i] += stencil_coef[n]* \
std::sin( k[i]*n*delta_x )/( n*delta_x );
} else {
- modified_k[i] = stencil_coef[n]* \
+ modified_k[i] += stencil_coef[n]* \
std::sin( k[i]*(n-0.5)*delta_x )/( (n-0.5)*delta_x );
}
}