... | ... | @@ -55,7 +55,7 @@ make clean |
|
|
|
|
|
This _adapter_ makes use of the _MBDyn_ function **external structural mapping**: for this reason a _FSI_ simulation needs to be set up on the _MBDyn_ side. You should refer to the _input manual_ (e.g. [here](https://www.mbdyn.org/userfiles/documents/mbdyn-input-1.7.3.pdf) for MBDyn version 1.7.3, section 8.8.11) for further details.
|
|
|
|
|
|
### Mesh preparation
|
|
|
### <a name="mesh">Mesh preparation
|
|
|
|
|
|
The first step consists in preparing a mesh of points. The same mesh is needed by:
|
|
|
- _MBDyn_: in order to map the model **structural nodes** to the interface mesh (so that _forces_ and _displacements_ can be computed)
|
... | ... | @@ -161,38 +161,54 @@ The adapter requires a json file for configuration purposes. The structural part |
|
|
mbdyn-esm-adapter -f config.json
|
|
|
```
|
|
|
|
|
|
The configuration files must ocntain the following informations:
|
|
|
The configuration files must contain the following information:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
```
|
|
|
1) information regarding the __coupling__ : those name must be equal to the ones contained in the preCICE configuration file:
|
|
|
1) information regarding the __coupling__ : those name must be equal to the ones contained in the preCICE configuration file (i.e. name of the participant, name of the mesh, name of data to be read and written, location of the preCICE configuration file):
|
|
|
|
|
|
```json
|
|
|
"readDataName": "Displacements0",
|
|
|
"writeDataName" : "Forces0",
|
|
|
"participantName" : "Solid",
|
|
|
"meshName": "Solid-Mesh",
|
|
|
"participantName" : "Solid"
|
|
|
"meshName": "Solid-Mesh"
|
|
|
"readDataName": "Displacements0"
|
|
|
"writeDataName" : "Forces0"
|
|
|
"precice-config": "./precice-config.xml"
|
|
|
```
|
|
|
|
|
|
2) information regarding the __mbdyn simulation__:
|
|
|
|
|
|
- location and name of the [mesh](#mesh) file, the coordinates of the origin to compute the resultant moment on the structure, name and location of the file containing the resultant
|
|
|
|
|
|
```json
|
|
|
"mesh": "/MBDyn/mesh/root0.dat", # ddd
|
|
|
"root-coords": [0.0, 0.0, 0.0],
|
|
|
"mbdyn-input": "./MBDyn/map_4n_3x_9j.mbd",
|
|
|
"mbdyn-output": "./MBDyn/out_mbd",
|
|
|
"mbdyn-log-location": "./MBDyn/mbd/",
|
|
|
"vtk-output": "./MBDyn/output/MBDyn-OF_",
|
|
|
"precice-config": "./precice-config.xml",
|
|
|
"displacement-delta": false,
|
|
|
"write-interval": 1,
|
|
|
"mesh": "/MBDyn/mesh/root0.dat"
|
|
|
"root-coords": [0.0, 0.0, 0.0]
|
|
|
"resultant-file": "./MBDyn/output/resultant.txt"
|
|
|
```
|
|
|
- name and location of the MBDyn configuration file, name of the socket for the `external structural` force (must coincide with the name in the MBDyn configuration file), location and prefix for MBDyn _output_ files, _log_ and _VTU_ files and its output frequency (in # of iterations)
|
|
|
|
|
|
```json
|
|
|
"mbdyn-input": "./MBDyn/map_4n_3x_9j.mbd"
|
|
|
"node-socket": "/tmp/mbdyn2.node.sock"
|
|
|
"mbdyn-output": "./MBDyn/out_mbd"
|
|
|
"mbdyn-log-location": "./MBDyn/mbd/"
|
|
|
"vtk-output": "./MBDyn/output/MBDyn-OF_"
|
|
|
"write-interval": 1
|
|
|
```
|
|
|
|
|
|
- flag to set if $\Delta$ displacements must be passed to preCICE
|
|
|
|
|
|
```json
|
|
|
"displacement-delta": false
|
|
|
```
|
|
|
|
|
|
- parameters to define the __progressive loading__ of the structure: an initial coefficient (coeff0) is applied to the forces coming from the interface for the first cycles (iterstart), then the structure is progressively loaded up to 100% for the next iterations (period) with a _linear_ (`"linear"`) or $\frac{1}{2}\left(1 \cos \right)$ (`"cos"`) law. The keyword `"none"` avoids progressive loading
|
|
|
|
|
|
```json
|
|
|
"coeff0": 0.01
|
|
|
"iterstart": 202
|
|
|
"period": 198
|
|
|
"ramp-type": "linear"
|
|
|
}
|
|
|
```
|
|
|
|
... | ... | |