diff options
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver')
6 files changed, 28 insertions, 10 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H index 7c759cb35..fa5dd073d 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H @@ -12,6 +12,10 @@ #include <AMReX_Array4.H> #include <AMReX_Gpu.H> +/** + * This struct contains only static functions to initialize the stencil coefficients + * and to compute finite-difference derivatives for the Cartesian CKC algorithm. + */ struct CartesianCKCAlgorithm { static void InitializeStencilCoefficients ( @@ -50,8 +54,9 @@ struct CartesianCKCAlgorithm { Real const delta = std::max(inv_dx,inv_dz); Real const rx = (inv_dx/delta)*(inv_dx/delta); Real const rz = (inv_dz/delta)*(inv_dz/delta); - Real const betaxz = 0.125*rz*inv_dx; - Real const betazx = 0.125*rx*inv_dz; + Real const beta = 0.125; + Real const betaxz = beta*rz*inv_dx; + Real const betazx = beta*rx*inv_dz; Real const alphax = (1. - 2.*rz*beta)*inv_dx; Real const alphaz = (1. - 2.*rx*beta)*inv_dz; // Other coefficients are 0 in 2D Cartesian diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianNodalAlgorithm.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianNodalAlgorithm.H index ed75dedc1..69622c5fe 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianNodalAlgorithm.H +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianNodalAlgorithm.H @@ -12,6 +12,10 @@ #include <AMReX_Array4.H> #include <AMReX_Gpu.H> +/** + * This struct contains only static functions to initialize the stencil coefficients + * and to compute finite-difference derivatives for the Cartesian nodal algorithm. + */ struct CartesianNodalAlgorithm { static void InitializeStencilCoefficients ( diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianYeeAlgorithm.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianYeeAlgorithm.H index 838e3b0bb..268c5aa89 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianYeeAlgorithm.H +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianYeeAlgorithm.H @@ -12,6 +12,10 @@ #include <AMReX_Array4.H> #include <AMReX_Gpu.H> +/** + * This struct contains only static functions to initialize the stencil coefficients + * and to compute finite-difference derivatives for the Cartesian Yee algorithm. + */ struct CartesianYeeAlgorithm { static void InitializeStencilCoefficients ( diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CylindricalYeeAlgorithm.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CylindricalYeeAlgorithm.H index 28d159e08..ab32c8bcb 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CylindricalYeeAlgorithm.H +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CylindricalYeeAlgorithm.H @@ -12,6 +12,10 @@ #include <AMReX_Array4.H> #include <AMReX_Gpu.H> +/** + * This struct contains only static functions to initialize the stencil coefficients + * and to compute finite-difference derivatives for the Cartesian Yee algorithm. + */ struct CylindricalYeeAlgorithm { static void InitializeStencilCoefficients ( diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H index 0dbcea7ba..4bf88077f 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H @@ -21,6 +21,14 @@ class FiniteDifferenceSolver public: // Constructor + /** \brief Initialize the finite-difference Maxwell solver (for a given refinement level) + * + * This function initializes the stencil coefficients for the chosen finite-difference algorithm + * + * \param fdtd_algo Identifies the chosen algorithm, as defined in WarpXAlgorithmSelection.H + * \param cell_size Cell size along each dimension, for the chosen refinement level + * \param do_nodal Whether the solver is applied to a nodal or staggered grid + */ FiniteDifferenceSolver ( int const fdtd_algo, std::array<amrex::Real,3> cell_size, diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp index bb093af7b..ea7af6677 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp @@ -16,14 +16,7 @@ #include "FiniteDifferenceSolver.H" #include "WarpX.H" -/* \brief Initialize the finite-difference Maxwell solver (for a given refinement level) - * - * This function initializes the stencil coefficients for the chosen finite-difference algorithm - * - * \param fdtd_algo Identifies the chosen algorithm, as defined in WarpXAlgorithmSelection.H - * \param cell_size Cell size along each dimension, for the chosen refinement level - * \param do_nodal Whether the solver is applied to a nodal or staggered grid - */ +/* This function initializes the stencil coefficients for the chosen finite-difference algorithm */ FiniteDifferenceSolver::FiniteDifferenceSolver ( int const fdtd_algo, std::array<amrex::Real,3> cell_size, |