From eb5ee68612afe016afd47a621937ee57006c135c Mon Sep 17 00:00:00 2001 From: Remi Lehe Date: Mon, 22 Apr 2019 11:28:08 -0700 Subject: Use Fonberg coefficients to calculate the modified k --- .../FieldSolver/SpectralSolver/SpectralKSpace.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp') diff --git a/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp b/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp index 77aa7342f..111643197 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp @@ -101,8 +101,13 @@ SpectralKSpace::getModifiedKComponent( { // Initialize an empty ManagedVector in each box KVectorComponent modified_k_comp = KVectorComponent( spectralspace_ba, dm ); + + // Compute real-space stencil coefficients + Vector stencil_coef = getFonbergStencilCoefficients(n_order, nodal); + // Loop over boxes for ( MFIter mfi(spectralspace_ba, dm); mfi.isValid(); ++mfi ){ + Real delta_x = dx[i_dim]; const ManagedVector& k = k_vec[i_dim][mfi]; ManagedVector& modified_k = modified_k_comp[mfi]; @@ -111,9 +116,15 @@ SpectralKSpace::getModifiedKComponent( // Fill the modified k vector for (int i=0; i +Vector getFonbergStencilCoefficients( const int n_order, const bool nodal ) { AMREX_ALWAYS_ASSERT_WITH_MESSAGE( n_order%2 == 0, "n_order should be even."); const int m = n_order/2; - Array stencil_coef; + Vector stencil_coef; stencil_coef.resize( m+1 ); // Coefficients for nodal (a.k.a. centered) finite-difference -- cgit v1.2.3