Skip to content

Turek & Hron FSI3 with CalculiX and OpenFOAM #304

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

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions turek-hron-fsi3-calculix/allrun.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
echo "START FLUID"

cd fluid-openfoam/
./run.sh -parallel > log-fluid &
cd ..

echo "START SOLID"

cd solid-calculix/
./run.sh > log-solid &
cd ..

wait


echo "FINISHED"
8 changes: 8 additions & 0 deletions turek-hron-fsi3-calculix/cleanAll.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/sh

cd fluid-openfoam/
./clean.sh
cd ../solid-calculix/
./clean.sh
cd ..
rm -rf precice-run
59 changes: 59 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/0.orig/U
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}

dimensions [0 1 -1 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{

cylinder
{
type noSlip;
}

flap
{
type movingWallVelocity;
value uniform (0 0 0);
}

top
{
type noSlip;
}

bottom
{
type noSlip;
}

inlet
{

type groovyBC;
variables "yp=pts().y;minY=min(yp);maxY=max(yp);para=-1.5*(maxY-pos().y)*(pos().y-minY)/(0.25*pow(maxY-minY,2))*normal();";
valueExpression "2*para";
value uniform (2 0 0);
}

outlet
{
type zeroGradient;
}

front
{
type empty;
}
back
{
type empty;
}
}
54 changes: 54 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/0.orig/p
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}

dimensions [0 2 -2 0 0 0 0];

internalField uniform 0;

boundaryField
{
cylinder
{
type zeroGradient;
}

flap
{
type zeroGradient;
}

top
{
type zeroGradient;
}

bottom
{
type zeroGradient;
}

inlet
{
type zeroGradient;
}

outlet
{
type fixedValue;
value uniform 0;
}

front
{
type empty;
}
back
{
type empty;
}
}
56 changes: 56 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/0.orig/pointDisplacement
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
FoamFile
{
version 2.0;
format ascii;
class pointVectorField;
object pointDisplacement;
}

dimensions [0 1 0 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0 0);
}

outlet
{
type fixedValue;
value uniform (0 0 0);
}

cylinder
{
type fixedValue;
value $internalField;
}
flap
{
type fixedValue;
value $internalField;
}

top
{
type slip;
}

bottom
{
type slip;
}
front
{
type empty;
}
back
{
type empty;
}
}

60 changes: 60 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/0.orig/vorticity
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object vorticity;
}

dimensions [0 0 -1 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{
cylinder
{
type calculated;
value uniform (0 0 0);
}

flap
{
type calculated;
value uniform (0 0 0);
}

inlet
{
type calculated;
value uniform (0 0 0);
}

outlet
{
type calculated;
value uniform (0 0 0);
}

top
{
type calculated;
value uniform (0 0 0);
}

bottom
{
type calculated;
value uniform (0 0 0);
}

front
{
type empty;
}
back
{
type empty;
}
}
7 changes: 7 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/clean.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh
set -e -u

. ../../tools/cleaning-tools.sh

clean_openfoam .
rm -f *.log
20 changes: 20 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/constant/dynamicMeshDict
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object dynamicMeshDict;
}

dynamicFvMesh dynamicMotionSolverFvMesh;

motionSolverLibs ("libfvMotionSolvers.so");

solver displacementLaplacian;

displacementLaplacianCoeffs {

diffusivity quadratic inverseDistance (flap);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location constant;
object transportProperties;
}

transportModel Newtonian;

rho rho [1 -3 0 0 0 0 0 ] 1000.0;
nu nu [0 2 -1 0 0 0 0 ] 0.001;
pRef pRef [1 -1 -2 0 0 0 0 ] 0.0;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location constant;
object turbulenceProperties;
}

simulationType laminar;
13 changes: 13 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh
set -e -u

rm -rfv 0/
cp -r 0.orig/ 0/

blockMesh
checkMesh > Fluid_checkMesh.log
potentialFoam > Fluid_potentialFoam.log
touch fluid-openfoam.foam

../../tools/run-openfoam.sh "$@"
. ../../tools/openfoam-remove-empty-dirs.sh && openfoam_remove_empty_dirs
342 changes: 342 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/system/blockMeshDict
Original file line number Diff line number Diff line change
@@ -0,0 +1,342 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}

convertToMeters 1;

// Geometry parameters
f -0.005; // z-front
b 0.005; // z-back

// Grid refinement parameters
H1 13; // Nx first block
H2 17; // Nx second block
H3 34; // Nx third block
H4 65; // Nx last block
H5 9; // amount of cells above/below flap

V1 13; // Ny first inlet/outlet block
V2 17; // Ny second inlet block
V3 10; // Amount of cells in radius
V4 9; // Ny above/blow flap to back
V5 14; // Ny top inlet/outlet block
V6 2; // Ny after flap

GR 2.5; // Circular mesh gradient
GO 8; // Outlet grading

vertices
(
// Block 0
(0 0 $f) // vertex 0
(0.119526 0 $f)
(0.119526 0.119526 $f)
(0 0.119526 $f) // vertex 3

(0 0 $b) // vertex 4
(0.119526 0 $b)
(0.119526 0.119526 $b)
(0 0.119526 $b) // vertex 7

// Block 1
(0.280474 0 $f) // vertex 8
(0.280474 0.119526 $f)

(0.280474 0 $b) // vertex 10
(0.280474 0.119526 $b)

// Block 2
(0.6 0 $f) // vertex 12
(0.6 0.119526 $f)

(0.6 0 $b) // vertex 14
(0.6 0.119526 $b)

// Block 3
(2.5 0 $f) // vertex 16
(2.5 0.119526 $f)

(2.5 0 $b) // vertex 18
(2.5 0.119526 $b)

// Block 4
(0.119526 0.280474 $f) // vertex 20
(0 0.280474 $f)

(0.119526 0.280474 $b) // vertex 22
(0 0.280474 $b)

// Block 5
(0.164645 0.164645 $f) // vertex 24
(0.164656 0.235355 $f)

(0.164645 0.164645 $b) // vertex 26
(0.164656 0.235355 $b)

// Block 6
(0.231623 0.16127 $f) // vertex 28
(0.231623 0.16127 $b)

// Block 7
(0.299528 0.19 $f) // vertex 30
(0.24899 0.19 $f)

(0.299528 0.19 $b) // vertex 32
(0.24899 0.19 $b)

// Block 8
(0.6 0.19 $f) // vertex 34
(0.6 0.19 $b)

// Block 9
(2.5 0.19 $f) // vertex 36
(2.5 0.19 $b)

// Block 10
(0.280474 0.280474 $f) // vertex 38
(0.231623 0.238730 $f)

(0.280474 0.280474 $b) // vertex 40
(0.231623 0.238730 $b)

// Block 11
(0.299528 0.21 $f) // vertex 42
(0.24899 0.21 $f)

(0.299528 0.21 $b) // vertex 44
(0.24899 0.21 $b)

// Block 12
(0.6 0.21 $f) // vertex 46
(0.6 0.280474 $f)

(0.6 0.21 $b) // vertex 48
(0.6 0.280474 $b)

// Block 14
(2.5 0.21 $f) // vertex 50
(2.5 0.280474 $f)

(2.5 0.21 $b) // vertex 52
(2.5 0.280474 $b)

// Block 15
(0.119526 0.41 $f) // vertex 54
(0 0.41 $f)

(0.119526 0.41 $b) // vertex 56
(0 0.41 $b)

// Block 16
(0.280474 0.41 $f) // vertex 58
(0.280474 0.41 $b)

// Block 17
(0.6 0.41 $f) // vertex 60
(0.6 0.41 $b)

// Block 18
(2.5 0.41 $f) // vertex 62
(2.5 0.41 $b)
);


blocks
(
// Block 0 - 4
hex ( 0 1 2 3 4 5 6 7) ($H1 $V1 1) simpleGrading (1 1 1)
hex ( 1 8 9 2 5 10 11 6) ($H2 $V1 1) simpleGrading (1 1 1)
hex ( 8 12 13 9 10 14 15 11) ($H3 $V1 1) simpleGrading (1 1 1)
hex (12 16 17 13 14 18 19 15) ($H4 $V1 1) simpleGrading ($GO 1 1)
hex ( 3 2 20 21 7 6 22 23) ($H1 $V2 1) simpleGrading (1 1 1)

// Block 5 - 9
hex (24 25 20 2 26 27 22 6) ($H2 $V3 1) simpleGrading (1 $GR 1)
hex (28 24 2 9 29 26 6 11) ($H2 $V3 1) simpleGrading (1 $GR 1)
hex (31 28 9 30 33 29 11 32) ($H5 $V3 1) simpleGrading (1 $GR 1)
hex ( 9 13 34 30 11 15 35 32) ($H3 $V4 1) simpleGrading (1 1 1)
hex (13 17 36 34 15 19 37 35) ($H4 $V4 1) simpleGrading ($GO 1 1)

// Block 10 - 14
hex (25 39 38 20 27 41 40 22) ($H2 $V3 1) simpleGrading (1 $GR 1)
hex (39 43 42 38 41 45 44 40) ($H5 $V3 1) simpleGrading (1 $GR 1)
hex (42 46 47 38 44 48 49 40) ($H3 $V4 1) simpleGrading (1 1 1)
hex (34 36 50 46 35 37 52 48) ($H4 $V6 1) simpleGrading ($GO 1 1)
hex (46 50 51 47 48 52 53 49) ($H4 $V4 1) simpleGrading ($GO 1 1)

// Block 15 - 18
hex (21 20 54 55 23 22 56 57) ($H1 $V5 1) simpleGrading (1 1 1)
hex (20 38 58 54 22 40 59 56) ($H2 $V5 1) simpleGrading (1 1 1)
hex (38 47 60 58 40 49 61 59) ($H3 $V5 1) simpleGrading (1 1 1)
hex (47 51 62 60 49 53 63 61) ($H4 $V5 1) simpleGrading ($GO 1 1)
);

edges
(
arc 9 2 (0.2 0.1 $f) // Block 1
arc 11 6 (0.2 0.1 $b)

arc 2 20 (0.1 0.2 $f) // Block 4
arc 6 22 (0.1 0.2 $b)

arc 24 25 (0.15 0.2 $f) // Block 5
arc 26 27 (0.15 0.2 $b)

arc 24 28 (0.2 0.15 $f) // Block 6
arc 26 29 (0.2 0.15 $b)

arc 9 30 (0.293144 0.156475 $f) // Block 7
arc 28 31 (0.243369 0.175117 $f)
arc 11 32 (0.293144 0.156475 $b) // Block 7
arc 29 33 (0.243369 0.175117 $b)

arc 20 38 (0.2 0.3 $f) // Block 10
arc 25 39 (0.2 0.25 $f)
arc 22 40 (0.2 0.3 $b) // Block 10
arc 27 41 (0.2 0.25 $b)

arc 39 43 (0.24092 0.228733 $f) // Block 11
arc 41 45 (0.24092 0.228733 $b)
arc 38 42 (0.291756 0.248208 $f) // Block 11
arc 40 44 (0.291756 0.248208 $b)
);

boundary
(
front
{
type empty;
faces
(
(0 1 2 3)
(3 2 20 21)
(21 20 55 54)
(1 8 9 2)
(2 9 28 24)
(2 24 25 20)
(25 39 38 20)
(20 38 58 54)
(9 30 31 28)
(43 42 38 39)
(8 12 13 9)
(9 13 34 30)
(42 46 47 38)
(38 47 60 58)
(12 16 17 13)
(13 17 36 34)
(34 36 50 46)
(46 50 51 47)
(47 51 62 60)
);
}

back
{
type empty;
faces
(
(4 5 6 7)
(7 6 22 23)
(23 22 56 57)
(5 10 11 6)
(6 11 29 26)
(6 26 27 22)
(27 41 40 22)
(22 40 59 56)
(11 32 33 29)
(45 44 40 41)
(10 14 15 11)
(11 15 35 32)
(44 48 49 40)
(40 49 61 59)
(14 18 19 15)
(15 19 37 35)
(35 37 52 48)
(48 52 53 49)
(49 53 63 61)
);
}

inlet
{
type patch;
faces
(
( 0 4 7 3)
( 3 7 23 21)
(21 23 57 55)
);
}

outlet
{
type patch;
faces
(
(16 18 19 17)
(17 19 37 36)
(36 37 52 50)
(50 52 53 51)
(51 53 63 62)
);
}

top
{
type wall;
faces
(
(55 54 56 57)
(54 58 59 56)
(58 60 61 59)
(60 62 63 61)
);
}

bottom
{
type wall;
faces
(
(0 1 5 4)
(1 8 10 5)
(8 12 14 10)
(12 16 18 14)
);
}

flap
{
type wall;
faces
(
(31 30 32 33)
(30 34 35 32)
(34 35 48 46)
(42 46 48 44)
(43 42 44 45)
);
}

cylinder
{
type wall;
faces
(
(24 28 29 26)
(28 31 33 29)
(43 39 41 45)
(39 25 27 41)
(25 24 26 27)
);
}
);

mergePatchPairs
(
);

68 changes: 68 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/system/controlDict
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location system;
object controlDict;
}

application pimpleFoam; // OpenFOAM v1806, OpenFOAM 6, or newer
// application pimpleDyMFoam; // OpenFOAM v1712, OpenFOAM 5.x, or older



libs ( "libOpenFOAM.so" "libgroovyBC.so" ) ;

startFrom startTime;

startTime 0;

stopAt endTime;

endTime 20;

deltaT 0.0005;

writeControl adjustableRunTime;

writeInterval 0.1;

purgeWrite 0;

writeFormat ascii;

writePrecision 6;

writeCompression off;

timeFormat general;

timePrecision 6;

functions
{
preCICE_Adapter
{
type preciceAdapterFunctionObject;
libs ("libpreciceAdapterFunctionObject.so");
}


Forces

{
type forces;
libs ("libforces.so");
writeControl timeStep;
writeInterval 1;
patches ( flap cylinder );
pName p;
UName U;
rho rhoInf;
log true;
rhoInf 1;
CofR (0 0 0);
}

}
17 changes: 17 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/system/decomposeParDict
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location system;
object decomposeParDict;
}

numberOfSubdomains 3;

method scotch;
scotchCoeffs
{
}


41 changes: 41 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/system/fvSchemes
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}

ddtSchemes
{
default Euler;
}

gradSchemes
{
default Gauss linear;
}

divSchemes
{
default none;
div(phi,U) Gauss limitedLinear 1;
div((nuEff*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
default Gauss linear corrected;
}

interpolationSchemes
{
default linear;
}

snGradSchemes
{
default corrected;
}

80 changes: 80 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/system/fvSolution
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}

solvers
{

p
{

solver GAMG;
preconditioner DIC;
smoother DICGaussSeidel;
tolerance 1e-6;
relTol 1.0e-3;
}

pFinal
{
$p;
relTol 1.0e-3;
}

pcorr
{
$p;
relTol 1.0e-3;
}

pcorrFinal
{
$pcorr;
relTol 1.0e-3;
}

Phi
{
$p;
relTol 1.0e-3;
}

"(U|cellDisplacement)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-6;
relTol 1e-3;
minIter 2;
}

"(U|cellDisplacement)Final"
{
$U;
relTol 1.0e-3;
}
}

PIMPLE
{
nCorrectors 4;
nNonOrthogonalCorrectors 4;
tolerance 1.0e-6;
relTol 5e-3;
consistent true;
correctPhi true;
momentumPredictor true;
nOuterCorrectors 1;
}


potentialFlow
{
nNonOrthogonalCorrectors 10;
}

55 changes: 55 additions & 0 deletions turek-hron-fsi3-calculix/fluid-openfoam/system/preciceDict
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object preciceDict;
}

preciceConfig "../precice-config.xml";

participant Fluid;

modules (FSI);

interfaces
{
Interface1
{
mesh Fluid-Mesh-Faces;
patches (flap);
locations faceCenters;

readData
(
);

writeData
(
Force
);
};

Interface2
{
mesh Fluid-Mesh-Nodes;
patches (flap);
locations faceNodes;

readData
(
Displacement
);

writeData
(
);
};
};

FSI
{
rho rho [1 -3 0 0 0 0 0] 1000;
}


21 changes: 21 additions & 0 deletions turek-hron-fsi3-calculix/plot-displacement.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/sh

if [ "${1:-}" = "" ]; then
echo "No target directory specified. Please specify the directory of the solid participant containing the watchpoint, e.g. ./plot-displacement.sh solid-calculix."
exit 1
fi

FILE="$1/precice-Solid-watchpoint-flaptip.log"

if [ ! -f "$FILE" ]; then
echo "Unable to locate the watchpoint file (precice-Solid-watchpoint-flaptip.log) in the specified solid directory '${1}'. Make sure the specified directory matches the solid participant you used for the calculations."
exit 1
fi

gnuplot -p << EOF
set grid
set title 'x-displacement of the flap tip'
set xlabel 'time [s]'
set ylabel 'x-displacement [m]'
plot "$1/precice-Solid-watchpoint-flaptip.log" using 1:9 with lines title "$1"
EOF
78 changes: 78 additions & 0 deletions turek-hron-fsi3-calculix/precice-config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version="1.0" ?>
<precice-configuration>

<log>
<sink type="stream"
output="stdout"
filter= "(%Severity% > trace and %Rank% = 0)"
format="(%Rank%) [%Module%]:%Line% in %Function%: %Severity% %Message%"
enabled="true" />
</log>

<solver-interface dimensions="3">
<data:vector name="Force"/>
<data:vector name="Displacement"/>

<mesh name="Fluid-Mesh-Faces">
<use-data name="Force"/>
</mesh>

<mesh name="Fluid-Mesh-Nodes">
<use-data name="Displacement"/>
</mesh>

<mesh name="Solid-Mesh">
<use-data name="Force"/>
<use-data name="Displacement"/>
</mesh>

<participant name="Fluid">
<use-mesh name="Fluid-Mesh-Faces" provide="yes"/>
<use-mesh name="Fluid-Mesh-Nodes" provide="yes"/>
<use-mesh name="Solid-Mesh" from="Solid"/>
<write-data name="Force" mesh="Fluid-Mesh-Faces"/>
<read-data name="Displacement" mesh="Fluid-Mesh-Nodes"/>
<mapping:rbf-thin-plate-splines
direction="write"
from="Fluid-Mesh-Faces"
to="Solid-Mesh"
constraint="conservative"
z-dead="true" />
<mapping:rbf-thin-plate-splines
direction="read"
from="Solid-Mesh"
to="Fluid-Mesh-Nodes"
constraint="consistent" />
</participant>

<participant name="Solid">
<use-mesh name="Solid-Mesh" provide="yes"/>
<read-data name="Force" mesh="Solid-Mesh"/>
<write-data name="Displacement" mesh="Solid-Mesh"/>
<watch-point mesh="Solid-Mesh" name="flaptip" coordinate="0.6;0.2;0.0" />
</participant>

<m2n:sockets from="Fluid" to="Solid" exchange-directory="../" />

<coupling-scheme:serial-implicit>
<time-window-size value="0.0005" />
<max-time value="20"/>
<participants first="Fluid" second="Solid"/>
<exchange data="Force" mesh="Solid-Mesh" from="Fluid" to="Solid"/>
<exchange data="Displacement" mesh="Solid-Mesh" from="Solid" to="Fluid" initialize="1" />

<max-iterations value="100"/>
<relative-convergence-measure limit="1e-6" data="Displacement" mesh="Solid-Mesh"/>
<relative-convergence-measure limit="1e-2" data="Force" mesh="Solid-Mesh"/>

<acceleration:IQN-ILS>
<data name="Displacement" mesh="Solid-Mesh"/>
<preconditioner type="residual-sum"/>
<filter type="QR1" limit="1e-6"/>
<initial-relaxation value="0.1"/>
<max-used-iterations value="100"/>
<time-windows-reused value="10"/>
</acceleration:IQN-ILS>
</coupling-scheme:serial-implicit>
</solver-interface>
</precice-configuration>
7 changes: 7 additions & 0 deletions turek-hron-fsi3-calculix/solid-calculix/clean.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh
set -e -u

. ../../tools/cleaning-tools.sh

clean_calculix .
rm log-solid
10 changes: 10 additions & 0 deletions turek-hron-fsi3-calculix/solid-calculix/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
participants:

Solid:
interfaces:
- nodes-mesh: Solid-Mesh
patch: surface
read-data: [Force]
write-data: [Displacement]

precice-config-file: ../precice-config.xml
16 changes: 16 additions & 0 deletions turek-hron-fsi3-calculix/solid-calculix/fix.nam
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
** Names based on fix
*NSET,NSET=Nfix
1,
3,
5,
7,
9,
10,
11,
246,
248,
249,
250,
331,
524,

406 changes: 406 additions & 0 deletions turek-hron-fsi3-calculix/solid-calculix/interface.nam

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions turek-hron-fsi3-calculix/solid-calculix/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh
set -e -u

/home/woody/iwpa/iwpa070h/CalculiX/calculix-adapter-master/bin/ccx_preCICE -i turekflap -precice-participant Solid
31 changes: 31 additions & 0 deletions turek-hron-fsi3-calculix/solid-calculix/turekflap.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
*INCLUDE, INPUT=turekflap.msh
*INCLUDE, INPUT=fix.nam
*INCLUDE, INPUT=interface.nam
*MATERIAL, Name=EL
*ELASTIC
5600000, 0.4
*DENSITY
1000
*SOLID SECTION, MATERIAL=EL, ELSET=Eall
*STEP, NLGEOM, INC=100000000
**RESTART, WRITE, FREQUENCY=1
*DYNAMIC, DIRECT
0.0005, 20.0
*BOUNDARY
Nfix, 1, 6
*BOUNDARY
Nall, 3, 5
*BOUNDARY
Nall, 3, 3, 0
Nall, 4, 4, 0
Nall, 5, 5, 0
*CLOAD
Nsurface, 1, 0.0
Nsurface, 2, 0.0
Nsurface, 3, 0.0
*NODE FILE
U, RF
*EL FILE
S, E
*END STEP

912 changes: 912 additions & 0 deletions turek-hron-fsi3-calculix/solid-calculix/turekflap.msh

Large diffs are not rendered by default.