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

Honor transmissibilities when loadbalancing as edge weights #195

Merged
merged 1 commit into from
Nov 30, 2015

Conversation

blattms
Copy link
Member

@blattms blattms commented Nov 24, 2015

It tells Zoltan to cut at faces with low transmissibilities rather than with high ones. For the latter we expect that the is better for the linear solvers to have them in one subdomain.

Note that this PR is mainly for information purposes and for people that want to try out the parallel version of flow (PR upcoming).
In the long run it might to turn out that we must change the weights. Neverthless this PR in itself is harmless and does not change sequential runs.


double transmissibility(int face_index) const
{
return transmissibilities_ ? (1.0e18*transmissibilities_[face_index]) : 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I understand the current code, the weights are 1 for the faces, which will be replaced by this expression. The well weights are std::numeric_limits<float>::max, which makes me wonder: how is this dealt with in terms of scaling? Will it notice at all if one transmissibility is twice as large as another? Is the 1e18 factor something you have experimented with?

@andlaus
Copy link
Contributor

andlaus commented Nov 26, 2015

the idea is good, but a question springs to my mind: isn't it better to use the face area as edge weights? They are already included in the transmissibilities, but has the advantage that thin cells (which lead to very large transmissibilities) do not stick together too much....

@atgeirr
Copy link
Member

atgeirr commented Nov 26, 2015

has the advantage that thin cells (which lead to very large transmissibilities) do not stick together too much

Why would thin cells (assuming you mean in the z-direction) have large transmissibilities? Also, if the transmissibilities are large they should stick together.

@bska
Copy link
Member

bska commented Nov 26, 2015

Why would thin cells (assuming you mean in the z-direction) have large transmissibilities?

Transmissibility scales with connection area.

@atgeirr
Copy link
Member

atgeirr commented Nov 26, 2015

Transmissibility scales with connection area.

Yes, I assumed he meant that they would stick in the thin dimension, but I guess I misunderstood: @andlaus did you mean to say that a (z-)stack of thin cells would stick together too much?

@andlaus
Copy link
Contributor

andlaus commented Nov 26, 2015

Yes, I assumed he meant that they would stick in the thin dimension, but I guess I misunderstood: @andlaus did you mean to say that a (z-)stack of thin cells would stick together too much?

yes: my point was that transmissibilities are proportional to both the phase area and the distance of the cell centers to the phase centers and that I thus considered it possible that thin cells make the partitioning worse than it would be if just the face area was considered. (note that I'm actually not too sure what works better, it could be transmissibilities.)

atgeirr added a commit that referenced this pull request Nov 30, 2015
Honor transmissibilities when loadbalancing as edge weights
@atgeirr atgeirr merged commit a7aa8aa into OPM:master Nov 30, 2015
@blattms blattms deleted the transmissibilities-loadbalance branch December 2, 2015 15:08
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.

4 participants