-
Notifications
You must be signed in to change notification settings - Fork 42
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
Creating a FunctionSpace changes Mesh #6
Comments
There are a number of mesh::actions that need to be applied that may be required only when creating the At the point of mesh-creation you may not yet have the logic to what you want to do with it, as that may depend on a configurable numerical method chosen. One should use |
Maybe a function like atlas::functionspace::NodeColumns enableNodeColumns(mesh, [options]); would make it more obvious that the mesh changes.
Are there useful operations you could already do with the mesh, before you have a functionsspace on it? Why do you want to create the mesh before you have all required information on how you want to construct it? |
I have considered your proposed function The mesh should be seen as a more heavy mutable datastructure in support for various function spaces. The Finite Volume scheme e.g. requires 2 All this said, the |
There is a big difference:
I think I understand the concept of functionspace much better now. I was thinking of it as an object which just creates fields. But it is more, it also defines the iteration space on a mesh. In my use-case I don't want to create fields, just iterate over all nodes and access neighbors. This should be done via the function space, not the If that's right, maybe |
And what about the functions to get metric fields, like |
What's the design rationale for having the halo on the function space constructor and not on the mesh constructor, since it changes the mesh? It's quite unexpected.
My pattern is:
The text was updated successfully, but these errors were encountered: