Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Ghost Zone #29

Closed
17 tasks done
cindytsai opened this issue Oct 8, 2021 · 1 comment · Fixed by #33
Closed
17 tasks done

Support Ghost Zone #29

cindytsai opened this issue Oct 8, 2021 · 1 comment · Fixed by #33
Assignees
Labels
new-feature New feature. pri-low Priority: low

Comments

@cindytsai
Copy link
Collaborator

cindytsai commented Oct 8, 2021

Support Ghost Zone

Definitions and Terms

  • Ghost cell are defined inside yt_field struct.
    • We assume that different fields can have different ghost cell in each dimension of the data array.
    • Field in different grids must have the same number of ghost cell.
    • short field_ghost_cell[6] is defined as number of cells to ignore at the beginning and the end of the data in each dimensions. Which means field_ghost_cell[0] is number of cells to ignore at the beginning of 0-dim of the data, and field_ghost_cell[1] is number of cells to ignore at the end of 0-dim.
  • We don't pass ghost cell in hierarchy.
  • We load them to python along with loading field_list dictionary.
  • grid_dimensions and data_dim:
    • Ghost cell does not include in grid_dimension, they are just dimensions read by yt.
    • data_dim define in yt_data are the actual data dimension of the data_ptr to be wrapped, it contains ghost cell.
    • API:
      • grid_dimensions: [x][y][z] dimension read by yt. (yt_getGridInfo_Dimensions API)
      • data_dim: The actual data dimension of the pointer. (yt_getGridInfo_FieldData API)

TODOs

  • Define ghost cell inside yt_field.
    • Each side can have different number of ghost zone.
    • Update yt_type_field.h.
  • Remove redundant assignment, since new call for constructor on initialization.
  • Wrap the data array correctly. (append_grid.cpp)
  • Pass in ghost cell in field_list in libyt.param_yt dictionary.
  • For derived_func, they should only generate grid without ghost zone.
    • No need to update yt_getGridInfo, since we define grid_dimension and data_dim in yt_data separately.
      • grid_dimensions: [x][y][z] dimension read by yt. (yt_getGridInfo_Dimensions API)
      • data_dim: The actual data dimension of the pointer. (yt_getGridInfo_FieldData API)
    • Check gamer derived function. (No need to change, but still ...)
  • yt_rma_field transfer full grid, including ghost zone.
    • yt_rma_grid_info should change as well.
    • Be aware of yt_rma_field::prepare_data, the data dimension should include ghost cell.
  • Add MPI_PATH to Makefile.
  • Update libyt yt frontend.

Test Run

  • libyt/example
    • ProjectionPlot
    • SlicePlot

Related Issue

@cindytsai cindytsai self-assigned this Oct 8, 2021
@cindytsai cindytsai added new-feature New feature. pri-low Priority: low labels Oct 8, 2021
@cindytsai
Copy link
Collaborator Author

Done 🎉 !
I'll start the PR when libyt Documents are done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature New feature. pri-low Priority: low
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant