aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/PsatdSolver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/PsatdSolver.cpp')
-rw-r--r--Source/FieldSolver/SpectralSolver/PsatdSolver.cpp35
1 files changed, 24 insertions, 11 deletions
diff --git a/Source/FieldSolver/SpectralSolver/PsatdSolver.cpp b/Source/FieldSolver/SpectralSolver/PsatdSolver.cpp
index 66409ca33..f8a3f7c6e 100644
--- a/Source/FieldSolver/SpectralSolver/PsatdSolver.cpp
+++ b/Source/FieldSolver/SpectralSolver/PsatdSolver.cpp
@@ -4,20 +4,33 @@
using namespace amrex;
-/*
- * ba: BoxArray for spectral space
- * dm: DistributionMapping for spectral space
- */
+
PsatdSolver::PsatdSolver(const SpectralKSpace& spectral_kspace,
- const DistributionMapping& dm, const Real dt)
+ const DistributionMapping& dm,
+ const int norder_x, const int norder_y,
+ const int norder_z, const Real dt)
{
+ const BoxArray& ba = spectral_kspace.spectralspace_ba;
+
// Allocate the 1D vectors
- modified_kx_vec = spectral_kspace.getModifiedKVector( 0 );
- modified_ky_vec = spectral_kspace.getModifiedKVector( 1 );
- modified_kz_vec = spectral_kspace.getModifiedKVector( 2 );
+ modified_kx_vec = SpectralKVector( ba, dm );
+ modified_ky_vec = SpectralKVector( ba, dm );
+ modified_kz_vec = SpectralKVector( ba, dm );
+ // Allocate and fill them by computing the modified vector
+ for ( MFIter mfi(ba, dm); mfi.isValid(); ++mfi ){
+ Box bx = ba[mfi];
+ ComputeModifiedKVector(
+ modified_kx_vec[mfi], spectral_kspace.kx_vec[mfi],
+ bx, spectral_kspace.dx[0], norder_x );
+ ComputeModifiedKVector(
+ modified_ky_vec[mfi], spectral_kspace.ky_vec[mfi],
+ bx, spectral_kspace.dx[1], norder_y );
+ ComputeModifiedKVector(
+ modified_kz_vec[mfi], spectral_kspace.kz_vec[mfi],
+ bx, spectral_kspace.dx[2], norder_z );
+ }
// Allocate the arrays of coefficients
- const BoxArray& ba = spectral_kspace.spectralspace_ba;
C_coef = SpectralCoefficients( ba, dm, 1, 0 );
S_ck_coef = SpectralCoefficients( ba, dm, 1, 0 );
X1_coef = SpectralCoefficients( ba, dm, 1, 0 );
@@ -69,7 +82,7 @@ PsatdSolver::PsatdSolver(const SpectralKSpace& spectral_kspace,
}
});
}
-}
+};
void
PsatdSolver::pushSpectralFields( SpectralData& f ) const{
@@ -155,4 +168,4 @@ PsatdSolver::pushSpectralFields( SpectralData& f ) const{
+ X1*I*(kx*Jy - ky*Jx );
});
}
-}
+};