From 45ef533c39a55d05afbb9872659963d19b79f463 Mon Sep 17 00:00:00 2001 From: Prabhat Kumar <89051199+prkkumar@users.noreply.github.com> Date: Fri, 19 Nov 2021 00:31:18 -0800 Subject: 1D3V Cartesian Support (#2307) * Build System: Add 1D Geometry * test PR * test PR * 1D cartesian yee algorithm * fixed typo * Fixes for PML * 1D support related multiple changes * Fix compilation * change 1D to 1D_Z * 1D Field Gather and typo fix * 1D Charge Deposition * Particle Pusher * multiple changes related to 1D * 1D diagnostics and initialization * PlasmaInjector and PEC fixes for 1D * clean-up delete diags file * mobility 1D laser particle and bilinear filter * deleted diags files * update laser particle weight formula * delete diags files * Azure: Add 1D Cartesian Runner * 1D fixes for FieldProbe * Update Docs/source/developers/dimensionality.rst Co-authored-by: Remi Lehe * 1d laser injection and langmuir test input files * 1d tests * clean up : delete print statements * analyse simulation result for laser injection and Langmuir tests * EOL * delete input files for which there are no automated tests * delete input files for which there are no automated tests * add ignore_unused to remove warnings * remove space * Fix compilation issues * fix error : macro name must be an identifier * Small bug fix * cleanup Python script for analysis * bug fix * bug fix * Update ParticleProbe: Check 1D in-domain * Update Source/Make.WarpX * Update .azure-pipelines.yml * Add USE_OPENPMD=FALSE to .azure-pipeline.yml * resolve conflict * resolve conflict * fix typo * Correct out-of-bound access * Fix Particle BC in WarpXParticleContainer and correct path to checksumAPI in python analysis scripts * EOL * Fix bug : accessing out of bound index of cell in 1D * remove 1d test for cartesian3d * Fix CI check * Slight style change * Address review comments * Fix GPU compilation Filter.cpp * Fix CI * Fix Indentation * Address review comments * More consistent ifdef for dimension bigger than 1 * Update Examples/Tests/Langmuir/analysis_langmuir_multi_1d.py Co-authored-by: Axel Huebl * Update GNUmakefile Co-authored-by: Axel Huebl * Update Regression/prepare_file_ci.py Co-authored-by: Axel Huebl * Update Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H Co-authored-by: Axel Huebl * Update Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianNodalAlgorithm.H Co-authored-by: Axel Huebl * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl * Update Source/Initialization/PlasmaInjector.cpp Co-authored-by: Axel Huebl * Update Source/Initialization/PlasmaInjector.cpp Co-authored-by: Axel Huebl * add comment inline to explain twice push_back * Add amrex::Abort for NCIGodfreyFilter Co-authored-by: Axel Huebl Co-authored-by: Prabhat Kumar Co-authored-by: Remi Lehe Co-authored-by: Remi Lehe --- Source/Utils/WarpXUtil.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'Source/Utils/WarpXUtil.cpp') diff --git a/Source/Utils/WarpXUtil.cpp b/Source/Utils/WarpXUtil.cpp index 06f0a7da5..d77a35b3a 100644 --- a/Source/Utils/WarpXUtil.cpp +++ b/Source/Utils/WarpXUtil.cpp @@ -170,8 +170,10 @@ void ConvertLabParamsToBoost() #if (AMREX_SPACEDIM == 3) Vector dim_map {0, 1, 2}; -#else +#elif (AMREX_SPACEDIM == 2) Vector dim_map {0, 2}; +#else + Vector dim_map {2}; #endif for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) @@ -219,6 +221,8 @@ void NullifyMF(amrex::MultiFab& mf, int lev, amrex::Real zmin, amrex::Real zmax) amrex::Array galilean_shift = { 0., 0., 0., }; #elif (AMREX_SPACEDIM == 2) amrex::Array galilean_shift = { 0., std::numeric_limits::quiet_NaN(), 0., } ; +#elif (AMREX_SPACEDIM == 1) + amrex::Array galilean_shift = {std::numeric_limits::quiet_NaN(), std::numeric_limits::quiet_NaN(), 0., } ; #endif const amrex::Real zmin_box = WarpX::LowerCorner(bx, galilean_shift, lev)[2]; const amrex::Real zmax_box = WarpX::UpperCorner(bx, lev)[2]; @@ -226,8 +230,10 @@ void NullifyMF(amrex::MultiFab& mf, int lev, amrex::Real zmin, amrex::Real zmax) // Get box lower index in the z direction #if (AMREX_SPACEDIM==3) const int lo_ind = bx.loVect()[2]; -#else +#elif (AMREX_SPACEDIM==2) const int lo_ind = bx.loVect()[1]; +#else + const int lo_ind = bx.loVect()[0]; #endif // Check if box intersect with [zmin, zmax] if ( (zmax>zmin_box && zmin<=zmax_box) ){ @@ -237,8 +243,10 @@ void NullifyMF(amrex::MultiFab& mf, int lev, amrex::Real zmin, amrex::Real zmax) [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept{ #if (AMREX_SPACEDIM==3) const Real z_gridpoint = zmin_box+(k-lo_ind)*dz; -#else +#elif (AMREX_SPACEDIM==2) const Real z_gridpoint = zmin_box+(j-lo_ind)*dz; +#else + const Real z_gridpoint = zmin_box+(i-lo_ind)*dz; #endif if ( (z_gridpoint >= zmin) && (z_gridpoint < zmax) ) { arr(i,j,k) = 0.; -- cgit v1.2.3