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

Bondary conditions coarse/fine? #1213

Open
pgrete opened this issue Nov 25, 2024 · 1 comment
Open

Bondary conditions coarse/fine? #1213

pgrete opened this issue Nov 25, 2024 · 1 comment
Labels
question Further information is requested

Comments

@pgrete
Copy link
Collaborator

pgrete commented Nov 25, 2024

I just noticed that AddBoundaryExchangeTasks set boundaries on fine and coarse cells:

  if (md->GetMeshPointer()->multilevel) {
    auto cbound = tl.AddTask(set, TF(ApplyBoundaryConditionsOnCoarseOrFineMD), md, true);
    pro = tl.AddTask(cbound, TF(ProlongateBounds<bounds>), md);
  }
  auto fbound = tl.AddTask(pro, TF(ApplyBoundaryConditionsOnCoarseOrFineMD), md, false)

whereas the manual functions (both MD and block)

TaskStatus ApplyBoundaryConditionsMD(std::shared_ptr<MeshData<Real>> &pmd) {
  for (int b = 0; b < pmd->NumBlocks(); ++b)
    ApplyBoundaryConditions(pmd->GetBlockData(b));
  return TaskStatus::complete;
}

inline TaskStatus ApplyBoundaryConditions(std::shared_ptr<MeshBlockData<Real>> &rc) {
  return ApplyBoundaryConditionsOnCoarseOrFine(rc, false);
}

only set boundaries on fine cells.

I don't think this is intentional, isn't it? And we should probably add the logic of the top block also the the bottom block, don't we? @Yurlungur @lroberts36

@pgrete pgrete added the question Further information is requested label Nov 25, 2024
@Yurlungur
Copy link
Collaborator

The standalone tasks should be setting bounds on both coarse and fine. I think this is a mistake.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants