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

Dof distribution methods #378

Closed
termi-official opened this issue Oct 5, 2021 · 1 comment
Closed

Dof distribution methods #378

termi-official opened this issue Oct 5, 2021 · 1 comment

Comments

@termi-official
Copy link
Member

The DofHandler can be improved for multi-field problems. Currently only one distribution mode is implemented. For example taking two scalar fields a and b the call to close! yields the discrete algebraic vector (a_1, b_1, a_2, b_2, ..., a_N, b_N). However, this form is not always preferable, because it yields a locally blocked system matrix. For problems like for example the steady state incompressible Navier-Stokes flows some preconditioners need globally blocked system - see deal ii example 57 for a concise description. The corresponding algebraic vector then becomes (a_1, a_2, ... , a_N, b_1, b_2, ... , b_N). This can be achieved by either calling renumber! with a properly constructed permutation vector or by modifying __close!. Block preconditioners can then be constructed via BlockArrays.jl

This requires to add corresponding tests and a small example to showcase the usage.

@fredrikekre
Copy link
Member

Fixed by #545 I think. You have to explicitly renumber after close!, but I don't think things would be more efficient if we let users pass the order to close! and it would simply call renumber! after distributing dofs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants