AMReX-Codes / amrex

AMReX: Software Framework for Block Structured AMR
https://amrex-codes.github.io/amrex
Other
530 stars 343 forks source link

Block structured AMR in higher dimensions? #1909

Open kurtsansom opened 3 years ago

kurtsansom commented 3 years ago

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.

eschnett commented 3 years ago

@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.

drummerdoc commented 3 years ago

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?

eschnett commented 3 years ago

Of course, that would work.

dwillcox commented 3 years ago

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.

kurtsansom commented 3 years ago

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:

@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.

eschnett commented 3 years ago

@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.)

kurtsansom commented 3 years ago

@eschnett that sounds great. I am free in the morning until 10:30 EDT Tues, or between 10-11 EDT wednesday.

eschnett commented 3 years ago

Let's meet Wednesday at 10:00 EDT on Zoom. See https://gist.github.com/eschnett/6bcc13d7e08beedb90188492de87afb0 for details.

DUGKS commented 3 years ago

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.