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

Perpendicular flap (IGA solid participant G+Smo) #603

Draft
wants to merge 14 commits into
base: develop
Choose a base branch
from

Conversation

Crazy-Rich-Meghan
Copy link

Perpendicular Flap with G+Smo (IsoGeometric Analysis) and OpenFOAM

NOTE: Stress instead of Force.

This PR is still a draft, because the G+Smo adapter's documentation is still ongoing.

I have added a README.md file to guide users on running the tutorial with G+Smo. It includes detailed instructions for setup and execution.

@fsimonis fsimonis requested a review from uekerman December 9, 2024 12:50
Copy link
Member

@uekerman uekerman left a comment

Choose a reason for hiding this comment

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

Thanks for these great contributions!
I did not yet try it out, but wanted to give some initial tips already.

Guidelines worth checking out:

Comment on lines +23 to +56
### G+Smo and preCICE adapter (`gsPreCICE`) Installation
Since `gsPreCICE`is a submodule of G+Smo, you should download G+Smo first:

```
git clone https://github.com/gismo/gismo.git
```

Then, configure G+Smo with `-DGISMO_OPTIONAL=";gsPreCICE"`:

```
cd gismo
mkdir build
cd build
cmake .. -DGISMO_OPTIONAL="<other submodules>;gsPreCICE"
```

This will trigger a download of `gsPreCICE` from GitHub. Once `gsPreCICE` is downloaded, you can compile G+Smo with `gsPreCICE`:

```
make solid-gismo-elasticity -j<number of threads to use>
```

### Linking the Executable to the preCICE Tutorial Folder


1. Navigate to the directory of the preCICE tutorial (solid-gismo-elasticity).
```
cd <path to your precice tutorials directory>/perpendicular-flap-stress/solid-gismo-elasticity/
```

2. Create the symbolic link between the executable file and the preCICE tutorial folder
```
ln -sf <path to your G+Smo build folder>/bin/solid-gismo-elasticity ./solid-gismo-elasticity
```
Copy link
Member

Choose a reason for hiding this comment

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

If I remember correctly, the plan was to move these points to an adapter docs eventually, correct? This would be good.

ln -sf <path to your G+Smo build folder>/bin/solid-gismo-elasticity ./solid-gismo-elasticity
```

### Runnning the G+Smo Tutorial
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
### Runnning the G+Smo Tutorial
### Runnning the G+Smo Tutorial

see also the md linter

### Runnning the G+Smo Tutorial
Open two terminals and run:
```
cd solid-gismo-elasticity
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
cd solid-gismo-elasticity
cd solid-gismo

@@ -0,0 +1,76 @@
---
title: Perpendicular Flap (with IGA Solid Participant Communicating Stress Data)
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
title: Perpendicular Flap (with IGA Solid Participant Communicating Stress Data)
title: Perpendicular flap with stresses

There is nothing specifically IGA about the setup, right?

@@ -0,0 +1,76 @@
---
title: Perpendicular Flap (with IGA Solid Participant Communicating Stress Data)
keywords: G+Smo, perpendicular flap
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
keywords: G+Smo, perpendicular flap
keywords: G+Smo, fluid-structure interaction, FSI, OpenFOAM, IGA

---
title: Perpendicular Flap (with IGA Solid Participant Communicating Stress Data)
keywords: G+Smo, perpendicular flap
summary: This tutorial demonstrates the isogeometric analysis (IGA) solid solver version of the “Perpendicular Flap” tutorial. It focuses on using G+Smo to handle solid-structure interactions by exchanging stress data during simulations.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
summary: This tutorial demonstrates the isogeometric analysis (IGA) solid solver version of the “Perpendicular Flap” tutorial. It focuses on using G+Smo to handle solid-structure interactions by exchanging stress data during simulations.
summary: This tutorial is a modified version of the “perpendicular flap” tutorial using stresses instead of forces.


## Overview

This example demostrates how the Geometry + Simulation Modules (G+Smo) can be utilised through a module-type adapter to couple with other codes using preCICE. G+Smo offers a robust framework for isogeometric analysis (IGA), seamlessly integrating geometric representations with numerical solvers to enable advanced simulations and efficient code coupling.
Copy link
Member

Choose a reason for hiding this comment

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

Let's only describe the diff of this case to the original one here. As an example, you could look at https://precice.org/tutorials-partitioned-heat-conduction-direct.html


2. Create the symbolic link between the executable file and the preCICE tutorial folder
```
ln -sf <path to your G+Smo build folder>/bin/solid-gismo-elasticity ./solid-gismo-elasticity
Copy link
Member

Choose a reason for hiding this comment

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

Couldn't we install solid-gismo-elasticity instead?
How is this executable related to solid-gismo-elasticity/solid-gismo.cpp?

Copy link
Member

Choose a reason for hiding this comment

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

Compare how cleaning works in OpenFOAM. We could add a general clean_gismo function here: https://github.com/precice/tutorials/blob/develop/tools/cleaning-tools.sh

Copy link
Member

Choose a reason for hiding this comment

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

compare the OpenFOAM run-sh script. We could use the logging functionality from there.

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.

2 participants