aboutsummaryrefslogtreecommitdiff
path: root/Source/Utils/RelativeCellPosition.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Utils/RelativeCellPosition.cpp')
-rw-r--r--Source/Utils/RelativeCellPosition.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/Source/Utils/RelativeCellPosition.cpp b/Source/Utils/RelativeCellPosition.cpp
new file mode 100644
index 000000000..58c35fa52
--- /dev/null
+++ b/Source/Utils/RelativeCellPosition.cpp
@@ -0,0 +1,29 @@
+/* Copyright 2020 Axel Huebl
+ *
+ * This file is part of WarpX.
+ *
+ * License: BSD-3-Clause-LBNL
+ */
+#include "RelativeCellPosition.H"
+
+#include <AMReX_IndexType.H>
+
+
+std::vector< double >
+utils::getRelativeCellPosition(amrex::MultiFab const& mf)
+{
+ amrex::IndexType const idx_type = mf.ixType();
+
+ std::vector< double > relative_position(AMREX_SPACEDIM, 0.0);
+
+ // amrex::CellIndex::CELL means: 0.5 from lower corner for that index/direction
+ // amrex::CellIndex::NODE means: at corner for that index/direction
+ // WarpX::do_nodal means: all indices/directions on CellIndex::NODE
+ for (int d = 0; d < AMREX_SPACEDIM; d++)
+ {
+ if (idx_type.cellCentered(d))
+ relative_position.at(d) = 0.5;
+ }
+
+ return relative_position;
+}