aboutsummaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H9
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianNodalAlgorithm.H4
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianYeeAlgorithm.H4
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CylindricalYeeAlgorithm.H4
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H8
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp9
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,