Skip to content

Communicate FieldPerp consistently with other Fields#3321

Closed
ZedThree wants to merge 1 commit intonextfrom
communicate-fieldperp
Closed

Communicate FieldPerp consistently with other Fields#3321
ZedThree wants to merge 1 commit intonextfrom
communicate-fieldperp

Conversation

@ZedThree
Copy link
Member

This will help simplify the Z parallelisation by being able to reuse the existing Mesh::communicate infrastructure.

  • Store a variant in FieldGroup that can handle FieldPerp
  • Removes Mesh::communicate(FieldPerp&) overload

A couple of alternatives to this:

  • add is2D() and isPerp() virtual methods on FieldData, and implementations on all the Fields and Vectors
  • combination of the above and storing Field* instead of FieldData* in the FieldGroup
  • move Mesh::msg_len and BoutMesh::pack_data/unpack_data to virtual methods on FieldData

The latter is not great, because they're really details of the mesh, and I wasn't keen on adding more single-use virtual methods -- but now that I've implemented this method, they might've been simpler!

@bendudson Thoughts? This seems "cleaner" in some ways, but definitely also makes things more complicated and slows down compilation

- Store a `variant` in `FieldGroup` that can handle `FieldPerp`
- Removes `Mesh::communicate(FieldPerp&)` overload
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant