amrex
amrex copied to clipboard
Block structured AMR in higher dimensions?
I am working on project that has components using AMR techniques, but the physics is cast in 6D phase space (3 spatial, 3 velocity) components. Other than being unable to visualize 6D space what is the limitation to using block structured AMR techniques in higher dimensions?
If there is a better place for this question please let me know.
@kurtsansom High-dimensional problems require a lot of storage and CPU time. For example, a 64^3 grid would be considered very coarse for a 3d problem, and requires only about 2 MByte per variable. A 64^6 grid would already require 500 GByte, i.e. would already require running on a supercomputer using several nodes. If you add overhead from mesh refinement, then 6d problems are today basically impossible using standard AMR algorithms.
What people instead do is hand-craft discretization methods that make use of special properties that their model has. These might or might not involve using AMR in the 3 spatial dimensions.
If your problem is smooth, then using a spectral method might be a better way to go. If your problem is not smooth, then the algorithmic complexity of sparse grids (see references in the introduction of https://arxiv.org/abs/1710.09356) might well be worth the effort. I'd be happy to chat and explain.
Just a passing thought, is there any reason one couldn't be block-structured in the first 3 dimensions and totally sparse in the remaining dimensions?
Of course, that would work.
What people instead do is hand-craft discretization methods that make use of special properties that their model has. These might or might not involve using AMR in the 3 spatial dimensions.
An example of this possibly relevant for your use case may be discretizing the 3D velocity phase space using a distribution of Lagrangian particles initialized in every cell in your 3D spatial grid. In that case, the 3D spatial grid could use block structured AMR, and you would have to work out how you wanted to refine/derefine the velocity space with your particles.
Thank you @eschnett, the limitation is the x^6 problem size, rather than the algorithms itself. Unsurprisingly it boils down to coming up with a way to reduce the problem size to fit on a computer.
Interjecting my thoughts and reflecting what you said options include:
- exploit the PDE to reduce the dimension (niche representation of the physics)
- Maybe splitting method?
- exploit a custom discretization tailored to the physics or sparse grid
- Use specific numerical method ( spectral method)
@drummerdoc I like your idea about being sparse in the velocity space
@dwillcox that sounds like a Particle-In-Cell application?
I would be grateful to speak with @eschnett further on the topic.
@kurtsansom I'd be happy to set up a brief Zoom call. I'm in the EDT time zone, and I'm free Monday afternoon or Tuesday/Wednesday morning. Would either of these times work for you? (Other interested people would be welcome to join.)
@eschnett that sounds great. I am free in the morning until 10:30 EDT Tues, or between 10-11 EDT wednesday.
Let's meet Wednesday at 10:00 EDT on Zoom. See https://gist.github.com/eschnett/6bcc13d7e08beedb90188492de87afb0 for details.
Discrete Velocity Method?
Currently I define a MuitiFab f with N componets, where N is the discretized velocity number.
A typical drawback of this method is the huge communication cost when N is large.