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

Support 3D cases #1

Closed
BenjaminRodenberg opened this issue Sep 26, 2018 · 2 comments · Fixed by #133
Closed

Support 3D cases #1

BenjaminRodenberg opened this issue Sep 26, 2018 · 2 comments · Fixed by #133
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@BenjaminRodenberg
Copy link
Member

BenjaminRodenberg commented Sep 26, 2018

Current handling of Quasi 2D - 3D cases:

To be able to support the 2D/3D coupling in the example tutorials/CHT/flow-over-plate/buoyantPimpleFoam-fenics we have to allow simulations, where the dimensionality is 3, even though there is no proper support for 3D simulations in the fenics adapter yet. See, for example

elif self._dimensions == 3:
return np.stack([vertices_x, vertices_y, vertices_z]), n

and

if self._dimensions == 3:
vertices_z = vertices[2, :]

If someone wants to run a "real" 3D simulation, the adapter does not work. We should either throw an exception in this case or implement a proper 3D treatment.

Update:

  • Support 3D cases with the new modular design of the adapter.
@BenjaminRodenberg BenjaminRodenberg added the help wanted Extra attention is needed label Feb 15, 2019
@IshaanDesai IshaanDesai changed the title Add proper 3D support / implement proper exception handling Support 3D cases Jul 13, 2020
@IshaanDesai IshaanDesai self-assigned this Jul 13, 2020
@IshaanDesai IshaanDesai added enhancement New feature or request and removed help wanted Extra attention is needed labels Jul 13, 2020
@IshaanDesai IshaanDesai added this to the v1.0.0 milestone Jul 13, 2020
@BenjaminRodenberg
Copy link
Member Author

We are more and more getting into the situation that not supporting 3D leads to lots of corner cases that we have to catch. Example:

assert (self._fenics_dimensions == 2), \
"Only 2D FEniCS solvers are supported. See https://github.com/precice/fenics-adapter/issues/1."

This becomes especially painful in the context of 2d/3d coupling. The many ifs and elses in this example are a nightmare.

I think that creating a real 3d case for the sake of validating our 3d implementation is probably a major task. However, we can already verify many of the required generalizations to go from 2d to 3d via tests (which do not harm in any case).

Therefore, I would suggest the following approach:

  • Add tests for the different cases, where a special treatment of a 3d solver is necessary.
  • Don't try to come up with a real 3d case (future work).
  • Generalize the adapter to 3d.

@BenjaminRodenberg BenjaminRodenberg removed this from the v1.0.0 milestone Dec 10, 2020
@precice-bot
Copy link

This issue has been mentioned on preCICE Forum on Discourse. There might be relevant details there:

https://precice.discourse.group/t/openfoam-fenics-for-fsi-on-3d/404/3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants