amrex icon indicating copy to clipboard operation
amrex copied to clipboard

Block structured AMR in higher dimensions?

Open kurtsansom opened this issue 3 years ago • 9 comments

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 avatar Mar 29 '21 19:03 kurtsansom

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

eschnett avatar Apr 12 '21 18:04 eschnett

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?

drummerdoc avatar Apr 12 '21 18:04 drummerdoc

Of course, that would work.

eschnett avatar Apr 12 '21 20:04 eschnett

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.

dwillcox avatar Apr 12 '21 22:04 dwillcox

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 avatar Apr 13 '21 17:04 kurtsansom

@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 avatar Apr 17 '21 18:04 eschnett

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

kurtsansom avatar Apr 19 '21 18:04 kurtsansom

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

eschnett avatar Apr 19 '21 18:04 eschnett

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.

DUGKS avatar Jun 12 '21 12:06 DUGKS