CELIA3D  1.0 Fluid-structure interaction using cut-cells
CELIA3D Documentation

# Introduction

Simulation code for 3D fluid-structure interaction (CELIA3D).
The numerical coupling method uses a Finite Volume cut-cell approach for fluid-structure interaction.
The solid is modeled with a Discrete Element Method type formulation (Mka3d).
The fluid is handled with a Finite Volume method. The numerical flux scheme is scheme OSMP.

The code is available on github

# Description of the project

Using the software:

• install library CGAL-4.0
• cgal_creat_cmake_script
• cmake .
• make: compile
• ./main: execute

Parameters to be filled in before launching a simulation:

• parametres.hpp: define the parameters of the problem;
• parametres.cpp: define the initial state of the fluid: density, pressure, velocity;
• create file "maillage.dat" to define the solid mesh.

Creation of file "maillage.dat":

• First line: key word "POINTS" and the number of solid vertices.
• Following lines: vertices coordinates. one line for one vertex.
• Key word "SOLIDE" and the number of solid particles.
• Characteristics for each particle:
• Key word "PARTICULE" followed by the number of faces and a flag indicating whether the particle is free to move (0) or fixed to its initial position (1).
• Key word "POSITION" and coordinates of the center of mass of the particle.
• Key word "VITESSE" and components of the initial velocity of the particle.
• Key word "VITROT" and components of the initial angular momentum of the particle.
• Geometric description of each particle face:
• Number of face vertices, list of indices of the vertices following direct orientation with regard to the exterior normal vector to the face, and index of the particle sharing the face (in case no particle shares the face and the face is a fluid interface, this number is set to -1).
Remarks
Vertex indices start at 0 as in C++.
Example for a cube:
POINTS 8
0.4 0.4 0.4
0.9 0.4 0.4
0.9 0.6 0.4
0.4 0.6 0.4
0.4 0.4 0.6
0.9 0.4 0.6
0.9 0.6 0.6
0.4 0.6 0.6
SOLIDE 1
PARTICULE 6 0
POSITION 1 1 1
VITESSE 1. 0. 0.
VITROT 0. 0. 0.
4 0 3 2 1 -1
4 7 4 5 6 -1
4 0 4 7 3 -1
4 1 2 6 5 -1
4 4 0 1 5 -1
4 3 7 6 2 -1

The results are written in directory resultats. Some files are updated at each time-step: files energie.dat and temps_reprise.dat give respectively the evolution of energy and the simulation time. Files fluide*.vtk and solide*.vtk are written a limited number of times in the span of the simulation. fluide*.vtk and solide*.vtk give respectively the state of the fluid and the position of the solid. They can be read using Paraview. File temps.dat gives the cpu cost at the end of the simulation.
It is possible to restart interrupted simulations from recovery files fluide*.vtk and solide*.vtk. It suffices to change recovery flag bool rep = false to bool rep=true in file parametres.h and indicate the recovery point with int numrep.

Remarks
Procedures dealing with the fluid are in files fluide.hpp and fluide.cpp. Procedures dealing with the solid are in fildes solide.hpp and solide.cpp. Coupling procedures are gathered in files couplage.cpp, intersections.hpp and intersections.cpp. FIles parametres.hpp and parametres.cpp are dedicated to definitions of problem parameters.