aboutsummaryrefslogtreecommitdiff
path: root/Source/Initialization/WarpXInitData.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Initialization/WarpXInitData.cpp')
-rw-r--r--Source/Initialization/WarpXInitData.cpp77
1 files changed, 41 insertions, 36 deletions
diff --git a/Source/Initialization/WarpXInitData.cpp b/Source/Initialization/WarpXInitData.cpp
index 59b7d1f25..41fda5567 100644
--- a/Source/Initialization/WarpXInitData.cpp
+++ b/Source/Initialization/WarpXInitData.cpp
@@ -485,42 +485,7 @@ WarpX::InitLevelData (int lev, Real /*time*/)
}
#ifdef AMREX_USE_EB
- if(lev==maxLevel()) {
- if (WarpX::maxwell_solver_id == MaxwellSolverAlgo::Yee ||
- WarpX::maxwell_solver_id == MaxwellSolverAlgo::CKC ||
- WarpX::maxwell_solver_id == MaxwellSolverAlgo::ECT) {
-
- ComputeEdgeLengths();
- ComputeFaceAreas();
- ScaleEdges();
- ScaleAreas();
-
- const auto &period = Geom(lev).periodicity();
- WarpXCommUtil::FillBoundary(*m_edge_lengths[lev][0], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_edge_lengths[lev][1], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_edge_lengths[lev][2], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_face_areas[lev][0], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_face_areas[lev][1], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_face_areas[lev][2], guard_cells.ng_alloc_EB, period);
-
- if (WarpX::maxwell_solver_id == MaxwellSolverAlgo::ECT) {
- WarpXCommUtil::FillBoundary(*m_area_mod[lev][0], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_area_mod[lev][1], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_area_mod[lev][2], guard_cells.ng_alloc_EB, period);
- MarkCells();
- WarpXCommUtil::FillBoundary(*m_flag_info_face[lev][0], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_flag_info_face[lev][1], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_flag_info_face[lev][2], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_flag_ext_face[lev][0], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_flag_ext_face[lev][1], guard_cells.ng_alloc_EB, period);
- WarpXCommUtil::FillBoundary(*m_flag_ext_face[lev][2], guard_cells.ng_alloc_EB, period);
- ComputeFaceExtensions();
- }
- }
-
- ComputeDistanceToEB();
-
- }
+ InitializeEBGridData(lev);
#endif
// if the input string for the B-field is "parse_b_ext_grid_function",
@@ -869,3 +834,43 @@ void WarpX::CheckGuardCells(amrex::MultiFab const& mf)
}
}
}
+
+void WarpX::InitializeEBGridData(int lev)
+{
+ if(lev==maxLevel()) {
+ if (WarpX::maxwell_solver_id == MaxwellSolverAlgo::Yee ||
+ WarpX::maxwell_solver_id == MaxwellSolverAlgo::CKC ||
+ WarpX::maxwell_solver_id == MaxwellSolverAlgo::ECT) {
+
+ ComputeEdgeLengths();
+ ComputeFaceAreas();
+ ScaleEdges();
+ ScaleAreas();
+
+ const auto &period = Geom(lev).periodicity();
+ WarpXCommUtil::FillBoundary(*m_edge_lengths[lev][0], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_edge_lengths[lev][1], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_edge_lengths[lev][2], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_face_areas[lev][0], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_face_areas[lev][1], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_face_areas[lev][2], guard_cells.ng_alloc_EB, period);
+
+ if (WarpX::maxwell_solver_id == MaxwellSolverAlgo::ECT) {
+ WarpXCommUtil::FillBoundary(*m_area_mod[lev][0], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_area_mod[lev][1], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_area_mod[lev][2], guard_cells.ng_alloc_EB, period);
+ MarkCells();
+ WarpXCommUtil::FillBoundary(*m_flag_info_face[lev][0], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_flag_info_face[lev][1], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_flag_info_face[lev][2], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_flag_ext_face[lev][0], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_flag_ext_face[lev][1], guard_cells.ng_alloc_EB, period);
+ WarpXCommUtil::FillBoundary(*m_flag_ext_face[lev][2], guard_cells.ng_alloc_EB, period);
+ ComputeFaceExtensions();
+ }
+ }
+
+ ComputeDistanceToEB();
+
+ }
+}