aboutsummaryrefslogtreecommitdiff
path: root/Source/Parallelization/GuardCellManager.cpp
diff options
context:
space:
mode:
authorGravatar Weiqun Zhang <WeiqunZhang@lbl.gov> 2021-01-26 23:40:30 -0800
committerGravatar GitHub <noreply@github.com> 2021-01-26 23:40:30 -0800
commit75931e8a5527f77515657260883f1ad9767210fa (patch)
tree030efad0a9b17a79c185c54b00d241c5609b1461 /Source/Parallelization/GuardCellManager.cpp
parenta54fdb407d1f9171c7e0c71350f31bba55552d2c (diff)
downloadWarpX-75931e8a5527f77515657260883f1ad9767210fa.tar.gz
WarpX-75931e8a5527f77515657260883f1ad9767210fa.tar.zst
WarpX-75931e8a5527f77515657260883f1ad9767210fa.zip
Start Embedded Boundary development (#1641)
* Start Embedded Boundary development Modify the build system for embedded boundary (EB) support. Currently EB is a compile time option that must be explicitly enabled. For GNU Make, one can enable it with `USE_EB=TRUE`, whereas for CMake, `-DAMReX_EB=ON`. Later we could decide to enable EB by default with all regular geometry. Add a simple geometry initialization function, WarpX::InitEB. By default, the geometry is all regular. A few basic types such as box, cylinder, plane, sphere, etc. are supported via ParmParse runtime parameters. See `amrex/Src/EB/AMReX_EB2.cpp` for more details. Later, we could build more complex geometry using constructive solid geometry (CSG). ( https://en.wikipedia.org/wiki/Constructive_solid_geometry ) See `amrex/Tutorials/EB/GeometryGeneration` for an example of CSG. There is also a STL ( https://en.wikipedia.org/wiki/STL_(file_format) ) approach under development in AMReX. Add a new member, m_factory, to WarpX class. This object can be used to obtain geometry information such as whether a cell is cut, edge centroids, etc. Currently we are not using these factories to build MultiFabs for field data to embed the geometry information into the data containers. We could do that later if it is needed or it makes things more convenient. Nevertheless, this should be sufficient to start the EB development of the field solver. It's not clear to me yet how many ghost cells are needed for the geometry information. It's currently one, and can be adjusted. In the future, when particle and embedded boundary interaction is considered, we can use `amrex::FillSignedDistance` function to obtain signed distance function on the nodes. With that information, one should be able to determine where and when a particle collides with the embedded boundary. * resize factory vector * CMake: Require AMReX_EB for embedded boundaries * Add AMReX_Config.H et al. Explicit includes are most robust to make sure defines are set with future refactorings. * rename Factory fieldFactory Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Diffstat (limited to 'Source/Parallelization/GuardCellManager.cpp')
0 files changed, 0 insertions, 0 deletions