# Strategies for inhomogeneous problems in walker

This page collects some notes and ideas on potential strategies for implementing Walker for inhomogeneous problems.

## Strategies for inhomogeneity

The implementation of spatial inhomogeneity can be approached using different strategies, two of which for particle codes are

- 3D-mesh-based, i.e., particle-in-cell-like (PIC) strategy, or
- Point-cloud-based, i.e., smoothed-particle-hydrodynamics-like (SPH) strategy.

Many variants exists of each, especially, considering various parallelization and optimization strategies, as well as code simplicity, usability, applicability, and maintenance issues. Either approach contains a large uncertainty since each requires significant research. What follows is a collection of thoughts, e.g., pros and cons, of different strategies derived from the above approaches. Either or both PIC-, and SPH-based approaches can and may be implemented, since depending on the problem different algorithms may be optimal. Thus what follows serves as a documentation which is not necessarily sufficient for making a decision.

## Potential advantages of a PIC-based strategy

- Can use all knowledge on mesh-based algorithms, e.g.,
- The 3D domain is already well-defined by the incoming mesh (i.e., existing mesh generators take care of fine and coarse areas
- Can use adaptive mesh refinement, etc.
- Can develop (and leverage existing) hybrid algorithms (e.g., PDF, plasma) that solve some quantities on the mesh, some others with particles
- Can use existing Eulerian-mesh-only algorithms for laminar (or turbulent) flows as the mesh-based part
- Can leverage well-developed existing shock hydrodynamics algorithms for the Eulerian-mesh based part

- Easier to generate particles into cells that prescribe fine and coarse areas of the domain (task is outsourced to mesh generators)
- Would not have to start from scratch, see Publications
- Less risky, would certainly work (at least for incompressible flow)
- Would potentially be easier to sell (e.g., in a proposal)

## Potential disadvantages of a PIC-based strategy

- Potentially more complex code and algorithm: need mesh-, as well as particle-algorithms – more maintenance, potentially less suitable for future architectures
- Requires a good mesh generator; generation is still a potentially expensive and complex operation
- Requires a mesh: loading, partitioning, and in general, dealing with a 3D mesh in parallel is a highly non-trivial task – lots of time spend on non-novel issues
- Need for large-scale linear algebra, expensive and hard-to-parallelize iterative solvers and preconditioners
- Potential need for large linear algebra packages like PETSc or Trilinos
- Meshes with particles need special strategies and algorithms for empty cells
- Needs particle tracking (i.e., which cell is a given particle in?)
- People will inevitably compare to what they are familiar with if they see a mesh, deeming a PIC-based particle method too expensive with a roughly 500-particles-per-cell requirement. Especially if the cost of solving the pressure Poisson equation is 2%, as they compare apples and oranges when comparing computing a single realization on a grid (with an Eulerian method) and the full PDF (with a particle method)
- Might potentially be harder to sell (in a proposal) due to PIC considered not novel
- Potentially less innovative

## Potential advantages of a SPH-based strategy

- Potentially simpler code and algorithm: only need particle-algorithms – shorter code, less maintenance, potentially more suitable for future architectures
- Can potentially leverage progress in computer graphics and geometry (i.e., robotics, movies, etc.)
- Can potentially leverage physics hardware developed for games, e.g., PhysX
- Requires only a boundary mesh from user (and optionally a description of fine and coarse areas descriptions, though that's not trivial)
- Requires no mesh or mesh generator
- Requires potentially less memory (as no mesh is required)
- No need to deal with a mesh, no complex I/O, no partitioning, no need for adaptive mesh refinement
- No need for large-scale linear algebra, expensive and hard-to-parallelize iterative solvers and preconditioners
- No need for large linear algebra packages like PETSc or Trilinos
- Easier to show that the method is fundamentally different than mesh-based ones
- Less explored, possibly more potential for research and publications
- There is no mesh in real life

## Potential disadvantages of a SPH-based strategy

- The details of the 3D domain (i.e., coarse and fine areas, boundary-layers) need detailed definition in code
- Harder to generate particles with prescribed fine and coarse areas (task is not outsourced to mesh generators)
- Need a consistent, stable, and conservative numerical method (these issues are less-researched and thus less mature for particle methods compared to mesh-based ones)
- Can only leverage on a body of knowledge that is smaller than for mesh-based methods: SPH, mesh-free methods, etc.
- Specific problems to particle methods need to be dealt with, e.g., tension instability