diff options
Diffstat (limited to 'Source/FieldSolver')
22 files changed, 121 insertions, 64 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp b/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp index 16227febc..aeaae4530 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp +++ b/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp @@ -5,7 +5,7 @@ * License: BSD-3-Clause-LBNL */ -#include "WarpXAlgorithmSelection.H" +#include "Utils/WarpXAlgorithmSelection.H" #include "FiniteDifferenceSolver.H" #ifdef WARPX_DIM_RZ # include "FiniteDifferenceAlgorithms/CylindricalYeeAlgorithm.H" diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp index ea7af6677..9676710b5 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp @@ -5,7 +5,7 @@ * License: BSD-3-Clause-LBNL */ -#include "WarpXAlgorithmSelection.H" +#include "Utils/WarpXAlgorithmSelection.H" #ifdef WARPX_DIM_RZ # include "FiniteDifferenceAlgorithms/CylindricalYeeAlgorithm.H" #else diff --git a/Source/FieldSolver/Make.package b/Source/FieldSolver/Make.package index 32f4675a0..a48a94b42 100644 --- a/Source/FieldSolver/Make.package +++ b/Source/FieldSolver/Make.package @@ -2,6 +2,7 @@ CEXE_headers += WarpX_K.H CEXE_headers += WarpX_FDTD.H CEXE_sources += WarpXPushFieldsEM.cpp CEXE_sources += ElectrostaticSolver.cpp +CEXE_sources += WarpX_QED_Field_Pushers.cpp ifeq ($(USE_PSATD),TRUE) include $(WARPX_HOME)/Source/FieldSolver/SpectralSolver/Make.package ifeq ($(USE_PSATD_PICSAR),TRUE) diff --git a/Source/FieldSolver/PicsarHybridSpectralSolver/PicsarHybridFFTData.H b/Source/FieldSolver/PicsarHybridSpectralSolver/PicsarHybridFFTData.H index 44bb42982..7e037cf8d 100644 --- a/Source/FieldSolver/PicsarHybridSpectralSolver/PicsarHybridFFTData.H +++ b/Source/FieldSolver/PicsarHybridSpectralSolver/PicsarHybridFFTData.H @@ -7,6 +7,10 @@ #ifndef WARPX_PICSAR_HYBRID_FFTDATA_H_ #define WARPX_PICSAR_HYBRID_FFTDATA_H_ +#ifdef WARPX_USE_PSATD +# include <fftw3.h> + + // FFTData is a stuct containing a 22 pointers to auxiliary arrays // 1-11: padded arrays in real space (required by FFTW); 12-22: arrays in spectral space struct FFTData @@ -35,4 +39,5 @@ struct FFTData void operator= (FFTData&&) = delete; }; -#endif // WARPX_PICSAR_HYBRID_FFTDATA_H_
\ No newline at end of file +#endif // WARPX_USE_PSATD +#endif // WARPX_PICSAR_HYBRID_FFTDATA_H_ diff --git a/Source/FieldSolver/PicsarHybridSpectralSolver/PicsarHybridSpectralSolver.cpp b/Source/FieldSolver/PicsarHybridSpectralSolver/PicsarHybridSpectralSolver.cpp index 978129cf2..80220da5a 100644 --- a/Source/FieldSolver/PicsarHybridSpectralSolver/PicsarHybridSpectralSolver.cpp +++ b/Source/FieldSolver/PicsarHybridSpectralSolver/PicsarHybridSpectralSolver.cpp @@ -5,10 +5,13 @@ * * License: BSD-3-Clause-LBNL */ - -#include <WarpX.H> +#include "PicsarHybridFFTData.H" +#include "WarpX.H" #include <AMReX_iMultiFab.H> + +#ifdef WARPX_USE_PSATD + using namespace amrex; constexpr int FFTData::N; @@ -451,3 +454,5 @@ WarpX::PushPSATD_hybridFFT (int lev, amrex::Real /* dt */) amrex::Abort("WarpX::PushPSATD: TODO"); } } + +#endif // WARPX_USE_PSATD diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanAlgorithm.H b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanAlgorithm.H index e59b1902c..192c453ad 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanAlgorithm.H +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanAlgorithm.H @@ -1,8 +1,9 @@ #ifndef WARPX_GALILEAN_ALGORITHM_H_ #define WARPX_GALILEAN_ALGORITHM_H_ -#include <SpectralBaseAlgorithm.H> +#include "SpectralBaseAlgorithm.H" +#if WARPX_USE_PSATD /* \brief Class that updates the field in spectral space * and stores the coefficients of the corresponding update equation. */ @@ -29,5 +30,5 @@ class GalileanAlgorithm : public SpectralBaseAlgorithm SpectralRealCoefficients C_coef, S_ck_coef; SpectralComplexCoefficients Theta2_coef, X1_coef, X2_coef, X3_coef, X4_coef; }; - +#endif // WARPX_USE_PSATD #endif // WARPX_GALILEAN_ALGORITHM_H_ diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanAlgorithm.cpp b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanAlgorithm.cpp index f869da90c..ea0f14db9 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanAlgorithm.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanAlgorithm.cpp @@ -1,7 +1,11 @@ -#include <GalileanAlgorithm.H> -#include <WarpXConst.H> +#include "GalileanAlgorithm.H" +#include "Utils/WarpXConst.H" + #include <cmath> + +#if WARPX_USE_PSATD + using namespace amrex; /* \brief Initialize coefficients for the update equation */ @@ -237,3 +241,4 @@ void GalileanAlgorithm::InitializeSpectralCoefficients(const SpectralKSpace& spe }); } } +#endif // WARPX_USE_PSATD diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PMLPsatdAlgorithm.H b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PMLPsatdAlgorithm.H index a2b85262d..ef12ff12e 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PMLPsatdAlgorithm.H +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PMLPsatdAlgorithm.H @@ -7,7 +7,9 @@ #ifndef WARPX_PML_PSATD_ALGORITHM_H_ #define WARPX_PML_PSATD_ALGORITHM_H_ -#include <SpectralBaseAlgorithm.H> +#include "SpectralBaseAlgorithm.H" + +#if WARPX_USE_PSATD /* \brief Class that updates the field in spectral space * and stores the coefficients of the corresponding update equation. @@ -37,4 +39,5 @@ class PMLPsatdAlgorithm : public SpectralBaseAlgorithm }; +#endif // WARPX_USE_PSATD #endif // WARPX_PML_PSATD_ALGORITHM_H_ diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PMLPsatdAlgorithm.cpp b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PMLPsatdAlgorithm.cpp index 0c4c4d41a..b3f2aa93d 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PMLPsatdAlgorithm.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PMLPsatdAlgorithm.cpp @@ -4,10 +4,14 @@ * * License: BSD-3-Clause-LBNL */ -#include <PMLPsatdAlgorithm.H> -#include <WarpXConst.H> +#include "PMLPsatdAlgorithm.H" +#include "Utils/WarpXConst.H" + #include <cmath> + +#if WARPX_USE_PSATD + using namespace amrex; /* \brief Initialize coefficients for the update equation */ @@ -150,3 +154,4 @@ void PMLPsatdAlgorithm::InitializeSpectralCoefficients ( }); } }; +#endif // WARPX_USE_PSATD diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithm.H b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithm.H index 5e9b3e7bf..d71c0ab18 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithm.H +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithm.H @@ -8,7 +8,10 @@ #ifndef WARPX_PSATD_ALGORITHM_H_ #define WARPX_PSATD_ALGORITHM_H_ -#include <SpectralBaseAlgorithm.H> +#include "SpectralBaseAlgorithm.H" + + +#if WARPX_USE_PSATD /** * \brief Class that updates the field in spectral space @@ -37,4 +40,5 @@ class PsatdAlgorithm : public SpectralBaseAlgorithm SpectralRealCoefficients C_coef, S_ck_coef, X1_coef, X2_coef, X3_coef; }; +#endif // WARPX_USE_PSATD #endif // WARPX_PSATD_ALGORITHM_H_ diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithm.cpp b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithm.cpp index b2675ff91..8fee0967d 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithm.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithm.cpp @@ -4,10 +4,13 @@ * * License: BSD-3-Clause-LBNL */ -#include <PsatdAlgorithm.H> -#include <WarpXConst.H> +#include "PsatdAlgorithm.H" +#include "Utils/WarpXConst.H" + #include <cmath> + +#if WARPX_USE_PSATD using namespace amrex; /* \brief Initialize coefficients for the update equation */ @@ -176,3 +179,4 @@ void PsatdAlgorithm::InitializeSpectralCoefficients(const SpectralKSpace& spectr }); } } +#endif // WARPX_USE_PSATD diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H index ed5b98183..2487eae78 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H @@ -7,8 +7,11 @@ #ifndef WARPX_SPECTRAL_BASE_ALGORITHM_H_ #define WARPX_SPECTRAL_BASE_ALGORITHM_H_ -#include <SpectralKSpace.H> -#include <SpectralFieldData.H> +#include "FieldSolver/SpectralSolver/SpectralKSpace.H" +#include "FieldSolver/SpectralSolver/SpectralFieldData.H" + + +#if WARPX_USE_PSATD /* \brief Class that updates the field in spectral space * and stores the coefficients of the corresponding update equation. @@ -57,4 +60,5 @@ class SpectralBaseAlgorithm #endif }; +#endif // WARPX_USE_PSATD #endif // WARPX_SPECTRAL_BASE_ALGORITHM_H_ diff --git a/Source/FieldSolver/SpectralSolver/SpectralFieldData.H b/Source/FieldSolver/SpectralSolver/SpectralFieldData.H index 3088c9867..2c5a45faa 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralFieldData.H +++ b/Source/FieldSolver/SpectralSolver/SpectralFieldData.H @@ -8,12 +8,15 @@ #ifndef WARPX_SPECTRAL_FIELD_DATA_H_ #define WARPX_SPECTRAL_FIELD_DATA_H_ -#include <WarpX_ComplexForFFT.H> -#include <SpectralKSpace.H> +#include "WarpX_ComplexForFFT.H" +#include "SpectralKSpace.H" #include <AMReX_MultiFab.H> #include <string> +#ifdef WARPX_USE_PSATD +# include <fftw3.h> + // Declare type for spectral fields using SpectralField = amrex::FabArray< amrex::BaseFab <Complex> >; @@ -85,4 +88,5 @@ class SpectralFieldData #endif }; +#endif // WARPX_USE_PSATD #endif // WARPX_SPECTRAL_FIELD_DATA_H_ diff --git a/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp b/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp index 5604285ea..3c8ded86e 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp @@ -5,10 +5,13 @@ * * License: BSD-3-Clause-LBNL */ -#include <SpectralFieldData.H> +#include "SpectralFieldData.H" #include <map> + +#if WARPX_USE_PSATD + using namespace amrex; /* \brief Initialize fields in spectral space, and FFT plans */ @@ -351,3 +354,4 @@ SpectralFieldData::cufftErrorToString (const cufftResult& err) } } #endif +#endif // WARPX_USE_PSATD diff --git a/Source/FieldSolver/SpectralSolver/SpectralKSpace.H b/Source/FieldSolver/SpectralSolver/SpectralKSpace.H index c8b4f49eb..a736f4163 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralKSpace.H +++ b/Source/FieldSolver/SpectralSolver/SpectralKSpace.H @@ -8,10 +8,12 @@ #ifndef WARPX_SPECTRAL_K_SPACE_H_ #define WARPX_SPECTRAL_K_SPACE_H_ -#include <WarpX_ComplexForFFT.H> +#include "WarpX_ComplexForFFT.H" + #include <AMReX_BoxArray.H> #include <AMReX_LayoutData.H> + // `KVectorComponent` and `SpectralShiftFactor` hold one 1D array // ("ManagedVector") for each box ("LayoutData"). The arrays are // only allocated if the corresponding box is owned by the local MPI rank. diff --git a/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp b/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp index d0355fc1e..9f4e9b7c8 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp @@ -5,10 +5,12 @@ * * License: BSD-3-Clause-LBNL */ -#include <WarpXConst.H> -#include <SpectralKSpace.H> +#include "Utils/WarpXConst.H" +#include "SpectralKSpace.H" + #include <cmath> + using namespace amrex; using namespace Gpu; diff --git a/Source/FieldSolver/SpectralSolver/SpectralSolver.H b/Source/FieldSolver/SpectralSolver/SpectralSolver.H index 2f6428fc6..6685e489c 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralSolver.H +++ b/Source/FieldSolver/SpectralSolver/SpectralSolver.H @@ -7,9 +7,11 @@ #ifndef WARPX_SPECTRAL_SOLVER_H_ #define WARPX_SPECTRAL_SOLVER_H_ -#include <SpectralBaseAlgorithm.H> -#include <SpectralFieldData.H> +#include "SpectralAlgorithms/SpectralBaseAlgorithm.H" +#include "SpectralFieldData.H" + +#ifdef WARPX_USE_PSATD /** * \brief Top-level class for the electromagnetic spectral solver * @@ -64,5 +66,5 @@ class SpectralSolver // SpectralBaseAlgorithm is a base class ; this pointer is meant // to point an instance of a *sub-class* defining a specific algorithm }; - +#endif // WARPX_USE_PSATD #endif // WARPX_SPECTRAL_SOLVER_H_ diff --git a/Source/FieldSolver/SpectralSolver/SpectralSolver.cpp b/Source/FieldSolver/SpectralSolver/SpectralSolver.cpp index 9df981528..9b79bc525 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralSolver.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralSolver.cpp @@ -4,13 +4,16 @@ * * License: BSD-3-Clause-LBNL */ -#include <SpectralKSpace.H> -#include <SpectralSolver.H> -#include <PsatdAlgorithm.H> -#include <GalileanAlgorithm.H> -#include <PMLPsatdAlgorithm.H> +#include "SpectralKSpace.H" +#include "SpectralSolver.H" +#include "SpectralAlgorithms/PsatdAlgorithm.H" +#include "SpectralAlgorithms/GalileanAlgorithm.H" +#include "SpectralAlgorithms/PMLPsatdAlgorithm.H" #include "WarpX.H" -#include "WarpXProfilerWrapper.H" +#include "Utils/WarpXProfilerWrapper.H" + + +#if WARPX_USE_PSATD /* \brief Initialize the spectral Maxwell solver * @@ -91,3 +94,4 @@ SpectralSolver::pushSpectralFields(){ // initialized in the constructor of `SpectralSolver` algorithm->pushSpectralFields( field_data ); } +#endif // WARPX_USE_PSATD diff --git a/Source/FieldSolver/SpectralSolver/WarpX_ComplexForFFT.H b/Source/FieldSolver/SpectralSolver/WarpX_ComplexForFFT.H index f75c9b19a..0b48268fe 100644 --- a/Source/FieldSolver/SpectralSolver/WarpX_ComplexForFFT.H +++ b/Source/FieldSolver/SpectralSolver/WarpX_ComplexForFFT.H @@ -7,7 +7,8 @@ #ifndef WARPX_COMPLEXFORFFT_H_ #define WARPX_COMPLEXFORFFT_H_ -#include <WarpX_Complex.H> +#include "Utils/WarpX_Complex.H" + // Check the complex type on GPU/CPU #ifdef AMREX_USE_GPU @@ -17,10 +18,11 @@ static_assert( sizeof(Complex) == sizeof(cuDoubleComplex), "The complex types in WarpX and cuFFT do not match."); #else - -#include <fftw3.h> +# ifdef WARPX_USE_PSATD +# include <fftw3.h> static_assert( sizeof(Complex) == sizeof(fftw_complex), "The complex types in WarpX and FFTW do not match."); +# endif // WARPX_USE_PSATD #endif diff --git a/Source/FieldSolver/WarpXPushFieldsEM.cpp b/Source/FieldSolver/WarpXPushFieldsEM.cpp index dd9a41254..71e378f98 100644 --- a/Source/FieldSolver/WarpXPushFieldsEM.cpp +++ b/Source/FieldSolver/WarpXPushFieldsEM.cpp @@ -6,25 +6,24 @@ * * License: BSD-3-Clause-LBNL */ - -#include <cmath> -#include <limits> - -#include <WarpX.H> -#include <WarpXConst.H> -#include <WarpX_K.H> -#include <WarpX_PML_kernels.H> -#include <WarpX_FDTD.H> +#include "WarpX.H" +#include "Utils/WarpXConst.H" +#include "WarpX_K.H" +#include "BoundaryConditions/WarpX_PML_kernels.H" +#include "BoundaryConditions/PML_current.H" +#include "WarpX_FDTD.H" #ifdef WARPX_USE_PY -#include <WarpX_py.H> +# include "Python/WarpX_py.H" #endif -#include <PML_current.H> - #ifdef BL_USE_SENSEI_INSITU -#include <AMReX_AmrMeshInSituBridge.H> +# include <AMReX_AmrMeshInSituBridge.H> #endif +#include <cmath> +#include <limits> + + using namespace amrex; #ifdef WARPX_USE_PSATD diff --git a/Source/FieldSolver/WarpX_QED_Field_Pushers.cpp b/Source/FieldSolver/WarpX_QED_Field_Pushers.cpp index 3e1034c99..bea4943a7 100644 --- a/Source/FieldSolver/WarpX_QED_Field_Pushers.cpp +++ b/Source/FieldSolver/WarpX_QED_Field_Pushers.cpp @@ -4,26 +4,25 @@ * * License: BSD-3-Clause-LBNL */ -#include <cmath> -#include <limits> - -#include <WarpX.H> -#include <WarpXConst.H> -#include <WarpX_K.H> -#include <WarpX_PML_kernels.H> -#include <WarpX_FDTD.H> +#include "WarpX.H" +#include "Utils/WarpXConst.H" +#include "WarpX_K.H" +#include "WarpX_QED_K.H" +#include "BoundaryConditions/WarpX_PML_kernels.H" +#include "BoundaryConditions/PML_current.H" +#include "WarpX_FDTD.H" #ifdef WARPX_USE_PY -#include <WarpX_py.H> +# include "Python/WarpX_py.H" #endif -#include <WarpX_QED_K.H> - -#include <PML_current.H> - #ifdef BL_USE_SENSEI_INSITU -#include <AMReX_AmrMeshInSituBridge.H> +# include <AMReX_AmrMeshInSituBridge.H> #endif +#include <cmath> +#include <limits> + + using namespace amrex; diff --git a/Source/FieldSolver/WarpX_QED_K.H b/Source/FieldSolver/WarpX_QED_K.H index e8e8ad8c7..600ea7e5f 100644 --- a/Source/FieldSolver/WarpX_QED_K.H +++ b/Source/FieldSolver/WarpX_QED_K.H @@ -7,10 +7,12 @@ #ifndef WarpX_QED_K_h #define WarpX_QED_K_h +#include "Utils/WarpXConst.H" #include <AMReX_FArrayBox.H> -#include <WarpXConst.H> + #include <cmath> + using namespace amrex; /** @@ -33,7 +35,7 @@ void calc_M(Real arr [], Real ex, Real ey, Real ez, Real bx, Real by, Real bz, R arr[0] = -2._rt*xi_c2*( 2._rt*bx*(ee-bb_c2) - 7._rt*ex*eb ); arr[1] = -2._rt*xi_c2*( 2._rt*by*(ee-bb_c2) - 7._rt*ey*eb ); arr[2] = -2._rt*xi_c2*( 2._rt*bz*(ee-bb_c2) - 7._rt*ez*eb ); -}; +} /** |